public static D_Note create_note(int keycode, int beats) { Tuple <NoteLevel, NoteAlteration> note_alt = get_level_and_alteration(keycode); int octave = get_octave(keycode); return(D_NoteFactory.create_note(note_alt.Item1, note_alt.Item2, octave, beats)); }
public static D_Note noteFromToken(String token, int current_scope_octave, D_Note previous_note) { NoteLevel noteLevel = noteLevelDictionary[token[0]]; int length_in_sixteenths = 16 / StringUtil.getNumberFromString(token); if (token.Contains('.')) { length_in_sixteenths = (int)((double)length_in_sixteenths * 1.5); } if (noteLevel == NoteLevel.rest) { return(D_NoteFactory.create_rest(length_in_sixteenths)); } else { NoteAlteration alteration = getNoteNoteAlteration(token); int octave = getNoteOctave(token, current_scope_octave); D_Note new_note = D_NoteFactory.create_note(noteLevel, alteration, octave, length_in_sixteenths); if (previous_note != null) { setRelativeOctave(new_note, previous_note); } return(new_note); } }
public static Tuple <D_Note, D_Note> splitNote(D_Note note_to_split, int first_note_length) { int second_note_length = note_to_split.length - first_note_length; D_Note first = D_NoteFactory.create_note(note_to_split, first_note_length); first.note_tie = NoteTie.start; D_Note second = D_NoteFactory.create_note(note_to_split, second_note_length); second.note_tie = NoteTie.stop; return(new Tuple <D_Note, D_Note>(first, second)); }