public MusicTrack GetMusicTrack(SBN program, FTBN bank) { foreach (var track in Tracks) { if (track is MusicTrack musicTrack && musicTrack.Program == program && musicTrack.Bank == bank) { return(musicTrack); } } return(null); }
public override IContainsGlowing GetGlowingForNote(SBN note) { if (!_noteMapper.TryGetValue(note, out var realNote)) { if (_realNoteIdx >= NumObjects) { return(null); } realNote = _noteMapper[note] = (SBN)_realNoteIdx++; } return(TheGlows[realNote]); }
public BankLsbSelectEvent(SBN bankTail) { _bankTail = bankTail; }
public BankMsbSelectEvent(SBN bankHead) { _bankHead = bankHead; }
public ProgramChangeMidiEvent(SBN program) { _program = program; }
public IContainsGlowing GetGlowingForNote(SBN note) { var noteNum = note - _startNum; return(!noteNum.InRange(0, NumBars) ? null : _theGlows[noteNum]); }
public MusicTrack(FTBN bank, SBN program, bool isDrumTrack = false) { _bank = bank; Program = program; IsDrumTrack = isDrumTrack; }
public ProgramTrack GetMusicTrack(SBN program) => GetMusicTrack(program, 0);
public virtual IContainsGlowing GetGlowingForNote(SBN note) { var noteNum = note - StartNum; return(!noteNum.InRange(0, NumObjects) ? null : TheGlows[noteNum]); }
// public new NoteOnEvent Corresponding // { // get => (NoteOnEvent) base.Corresponding; // internal set // { // if(value == null) throw new ArgumentNullException(nameof(value)); // base.Corresponding = value; // } // } public NoteOffEvent(SBN noteNumber, SBN velocity) : base(noteNumber, velocity) { }
protected NoteEvent(SBN noteNumber, SBN velocity) { NoteNumber = noteNumber; Velocity = velocity; }
public ExpressionChangeEvent(SBN expression) { Expression = expression; }
public VolumeChangeEvent(SBN volume) { Volume = volume; }