2
* Created on 26-dic-2005
4
* TODO To change the template for this generated file go to
5
* Window - Preferences - Java - Code Style - Code Templates
7
package org.herac.tuxguitar.song.models;
9
import org.herac.tuxguitar.song.models.effects.BendEffect;
10
import org.herac.tuxguitar.song.models.effects.GraceEffect;
11
import org.herac.tuxguitar.song.models.effects.HarmonicEffect;
12
import org.herac.tuxguitar.song.models.effects.TremoloBarEffect;
13
import org.herac.tuxguitar.song.models.effects.TremoloPickingEffect;
14
import org.herac.tuxguitar.song.models.effects.TrillEffect;
19
* TODO To change the template for this generated type comment go to
20
* Window - Preferences - Java - Code Style - Code Templates
22
public class NoteEffect {
24
private BendEffect bend;
25
private TremoloBarEffect tremoloBar;
26
private HarmonicEffect harmonic;
27
private GraceEffect grace;
28
private TrillEffect trill;
29
private TremoloPickingEffect tremoloPicking;
30
private boolean vibrato;
31
private boolean deadNote;
32
private boolean slide;
33
private boolean hammer;
34
private boolean ghostNote;
35
private boolean accentuatedNote;
36
private boolean heavyAccentuatedNote;
37
private boolean palmMute;
38
private boolean staccato;
39
private boolean tapping;
40
private boolean slapping;
41
private boolean popping;
42
private boolean fadeIn;
44
private NoteEffect(BendEffect bend,
45
TremoloBarEffect tremoloBar,
46
HarmonicEffect harmonic,
49
TremoloPickingEffect tremoloPicking,
55
boolean accentuatedNote,
56
boolean heavyAccentuatedNote,
64
this.tremoloBar = tremoloBar;
65
this.harmonic = harmonic;
68
this.tremoloPicking = tremoloPicking;
69
this.vibrato = vibrato;
70
this.deadNote = deadNote;
73
this.ghostNote = ghostNote;
74
this.accentuatedNote = accentuatedNote;
75
this.heavyAccentuatedNote = heavyAccentuatedNote;
76
this.palmMute = palmMute;
77
this.staccato = staccato;
78
this.tapping = tapping;
79
this.slapping = slapping;
80
this.popping = popping;
85
this(null,null,null,null,null,null,false,false,false,false,false,false,false,false,false,false,false,false,false);
88
public boolean isDeadNote() {
92
public void setDeadNote(boolean deadNote) {
93
this.deadNote = deadNote;
94
//si es true, quito los efectos incompatibles
95
if(this.isDeadNote()){
96
this.tremoloBar = null;
104
public boolean isVibrato() {
107
public void setVibrato(boolean vibrato) {
108
this.vibrato = vibrato;
109
//si no es null quito los efectos incompatibles
110
if(this.isVibrato()){
115
public BendEffect getBend() {
119
public void setBend(BendEffect bend) {
121
//si no es null quito los efectos incompatibles
123
this.tremoloBar = null;
125
this.deadNote = false;
131
public boolean isBend() {
132
return (bend != null && !bend.getPoints().isEmpty());
135
public TremoloBarEffect getTremoloBar() {
139
public void setTremoloBar(TremoloBarEffect tremoloBar) {
140
this.tremoloBar = tremoloBar;
141
//si no es null quito los efectos incompatibles
142
if(this.isTremoloBar()){
145
this.deadNote = false;
151
public boolean isTremoloBar() {
152
return (tremoloBar != null);
156
public TrillEffect getTrill() {
160
public void setTrill(TrillEffect trill) {
162
//si es true, quito los efectos incompatibles
165
this.tremoloBar = null;
166
this.tremoloPicking = null;
169
this.deadNote = false;
170
this.vibrato = false;
174
public boolean isTrill() {
175
return (trill != null);
180
public TremoloPickingEffect getTremoloPicking() {
181
return tremoloPicking;
184
public void setTremoloPicking(TremoloPickingEffect tremoloPicking) {
185
this.tremoloPicking = tremoloPicking;
186
//si es true, quito los efectos incompatibles
187
if(this.isTremoloPicking()){
190
this.tremoloBar = null;
193
this.deadNote = false;
194
this.vibrato = false;
198
public boolean isTremoloPicking() {
199
return (tremoloPicking != null);
202
public boolean isHammer() {
206
public void setHammer(boolean hammer) {
207
this.hammer = hammer;
208
//si es true, quito los efectos incompatibles
211
this.tremoloBar = null;
213
this.deadNote = false;
218
public boolean isSlide() {
222
public void setSlide(boolean slide) {
224
//si es true, quito los efectos incompatibles
227
this.tremoloBar = null;
229
this.deadNote = false;
235
public boolean isGhostNote() {
239
public void setGhostNote(boolean ghostNote) {
240
this.ghostNote = ghostNote;
241
//si es true, quito los efectos incompatibles
242
if(this.isGhostNote()){
243
this.accentuatedNote = false;
244
this.heavyAccentuatedNote = false;
248
public boolean isAccentuatedNote() {
249
return accentuatedNote;
252
public void setAccentuatedNote(boolean accentuatedNote) {
253
this.accentuatedNote = accentuatedNote;
254
//si es true, quito los efectos incompatibles
255
if(this.isAccentuatedNote()){
256
this.ghostNote = false;
257
this.heavyAccentuatedNote = false;
262
public boolean isHeavyAccentuatedNote() {
263
return heavyAccentuatedNote;
266
public void setHeavyAccentuatedNote(boolean heavyAccentuatedNote) {
267
this.heavyAccentuatedNote = heavyAccentuatedNote;
268
//si es true, quito los efectos incompatibles
269
if(this.isHeavyAccentuatedNote()){
270
this.ghostNote = false;
271
this.accentuatedNote = false;
275
public void setHarmonic(HarmonicEffect harmonic) {
276
this.harmonic = harmonic;
279
public HarmonicEffect getHarmonic() {
280
return this.harmonic;
284
public boolean isHarmonic() {
285
return (harmonic != null);
288
public GraceEffect getGrace() {
292
public void setGrace(GraceEffect grace) {
296
public boolean isGrace() {
297
return (grace != null);
300
public boolean isPalmMute() {
304
public void setPalmMute(boolean palmMute) {
305
this.palmMute = palmMute;
306
//si es true, quito los efectos incompatibles
307
if(this.isPalmMute()){
308
this.staccato = false;
313
public boolean isStaccato() {
317
public void setStaccato(boolean staccato) {
318
this.staccato = staccato;
319
//si es true, quito los efectos incompatibles
320
if(this.isStaccato()){
321
this.palmMute = false;
327
public boolean isPopping() {
331
public void setPopping(boolean popping) {
332
this.popping = popping;
333
//si es true, quito los efectos incompatibles
334
if(this.isPopping()){
335
this.tapping = false;
336
this.slapping = false;
340
public boolean isSlapping() {
344
public void setSlapping(boolean slapping) {
345
this.slapping = slapping;
346
//si es true, quito los efectos incompatibles
347
if(this.isSlapping()){
348
this.tapping = false;
349
this.popping = false;
353
public boolean isTapping() {
357
public void setTapping(boolean tapping) {
358
this.tapping = tapping;
359
//si es true, quito los efectos incompatibles
360
if(this.isTapping()){
361
this.slapping = false;
362
this.popping = false;
368
public boolean isFadeIn() {
372
public void setFadeIn(boolean fadeIn) {
373
this.fadeIn = fadeIn;
378
public boolean hasAnyEffect(){
384
isTremoloPicking() ||
390
isAccentuatedNote() ||
391
isHeavyAccentuatedNote() ||
400
public Object clone(){
401
BendEffect bend = null;
403
bend = (BendEffect)this.bend.clone();
405
TremoloBarEffect tremoloBar = null;
407
tremoloBar = (TremoloBarEffect)this.tremoloBar.clone();
409
HarmonicEffect harmonic = null;
411
harmonic = (HarmonicEffect)this.harmonic.clone();
413
GraceEffect grace = null;
415
grace = (GraceEffect)this.grace.clone();
417
TrillEffect trill = null;
419
trill = (TrillEffect)this.trill.clone();
422
TremoloPickingEffect tremoloPicking = null;
423
if(isTremoloPicking()){
424
tremoloPicking = (TremoloPickingEffect)this.tremoloPicking.clone();
427
return new NoteEffect(bend,
439
isHeavyAccentuatedNote(),