public Sequencer(Tick tick, IDictionary <string, ProxyController <float> > parameters, IEnumerable <Instruction> instrcs) { tick.AddUser(this); this.Parameters = new Dictionary <string, ProxyController <float> >(parameters); this.thread = new SequenceThread(this, instrcs); }
internal override void Execute(SequenceThread thread) { // name が見つからなかったときはとりあえず無視するようにしたがエラーを出すべきかもしれない var @params = thread.Sequencer.Parameters; if (@params.ContainsKey(this.name)) { @params[this.name].Set(this.value); } }
internal override void Execute(SequenceThread thread) { if (this.noteOn) { this.target.NoteOn(); } else { this.target.NoteOff(); } }
internal override void Execute(SequenceThread thread) { Debug.Assert(thread.Wait == 0); thread.Wait = this.wait; }
internal override void Execute(SequenceThread thread) { this.target.Set(this.value); }
internal abstract void Execute(SequenceThread thread);
internal override void Execute(SequenceThread thread) { // この後、thread 側で 1 足されることを見越して 1 引いておく thread.Pointer = destination - 1; }