private void writeNoteEffect(TGNoteEffect effect) {
    int header = 0;

    header = (effect.isBend()) ? header |= EFFECT_BEND : header;
    header = (effect.isTremoloBar()) ? header |= EFFECT_TREMOLO_BAR : header;
    header = (effect.isHarmonic()) ? header |= EFFECT_HARMONIC : header;
    header = (effect.isGrace()) ? header |= EFFECT_GRACE : header;
    header = (effect.isTrill()) ? header |= EFFECT_TRILL : header;
    header = (effect.isTremoloPicking()) ? header |= EFFECT_TREMOLO_PICKING : header;
    header = (effect.isVibrato()) ? header |= EFFECT_VIBRATO : header;
    header = (effect.isDeadNote()) ? header |= EFFECT_DEAD : header;
    header = (effect.isSlide()) ? header |= EFFECT_SLIDE : header;
    header = (effect.isHammer()) ? header |= EFFECT_HAMMER : header;
    header = (effect.isGhostNote()) ? header |= EFFECT_GHOST : header;
    header = (effect.isAccentuatedNote()) ? header |= EFFECT_ACCENTUATED : header;
    header = (effect.isHeavyAccentuatedNote()) ? header |= EFFECT_HEAVY_ACCENTUATED : header;
    header = (effect.isPalmMute()) ? header |= EFFECT_PALM_MUTE : header;
    header = (effect.isStaccato()) ? header |= EFFECT_STACCATO : header;
    header = (effect.isTapping()) ? header |= EFFECT_TAPPING : header;
    header = (effect.isSlapping()) ? header |= EFFECT_SLAPPING : header;
    header = (effect.isPopping()) ? header |= EFFECT_POPPING : header;
    header = (effect.isFadeIn()) ? header |= EFFECT_FADE_IN : header;

    writeHeader(header, 3);

    // escribo el bend
    if (((header & EFFECT_BEND) != 0)) {
      writeBendEffect(effect.getBend());
    }

    // leo el tremolo bar
    if (((header & EFFECT_TREMOLO_BAR) != 0)) {
      writeTremoloBarEffect(effect.getTremoloBar());
    }

    // leo el harmonic
    if (((header & EFFECT_HARMONIC) != 0)) {
      writeHarmonicEffect(effect.getHarmonic());
    }

    // leo el grace
    if (((header & EFFECT_GRACE) != 0)) {
      writeGraceEffect(effect.getGrace());
    }

    // leo el trill
    if (((header & EFFECT_TRILL) != 0)) {
      writeTrillEffect(effect.getTrill());
    }

    // leo el tremolo picking
    if (((header & EFFECT_TREMOLO_PICKING) != 0)) {
      writeTremoloPickingEffect(effect.getTremoloPicking());
    }
  }