public void ReadChunk(string id, long length, DarkInStream stream) { handler(id, length, stream); }
public static void Load(string path) { DarkInStream dis = new DarkInStream(File.OpenRead(path)); Song = new Song(); dis.ReadChunk(delegate(string id, long length, DarkInStream s) { if (id.Equals("VSEQ")) { s.Read(out FramesPerTick); s.ReadChunk(delegate(string id2, long length2, DarkInStream s2) { if (id2.Equals("SONG")) { s2.ReadAllChunks(Song); } }); } }); dis.Close(); foreach (Channel c in Song.Channels) { foreach (MidiMessage m in c.Patches[0].Get()) { PlayMidiEvent(m, false); } } }
public void ReadChunk(string id, long length, DarkInStream s) { if (id.Equals("CHAN")) { int index; s.Read(out index); Channels[index] = new Channel(index); s.ReadAllChunks(Channels[index]); } }
public NoteEvent(DarkInStream s) { s.Read(out StartTime); s.Read(out Note); s.Read(out Velocity); s.Read(out Length); }
public Patch(DarkInStream s) : this() { s.Read(out Time); s.ReadByteArray(controllers); }
public Event(DarkInStream s) { s.Read(out Time); Message = new MidiMessage(s.ReadUInt()); }
public void ReadChunk(string id, long length, DarkInStream s) { if (id.Equals("NOTE")) { int numNoteEvents = s.ReadInt(); for (int i = 0; i < numNoteEvents; i++) { NoteEvents.Add(new NoteEvent(s)); } } if (id.Equals("CTRL")) { int numControllerEvents = s.ReadInt(); for (int i = 0; i < numControllerEvents; i++) { ControllerEvents.Add(new Event(s)); } } }
public void Read(DarkInStream s) { s.Read(out StartTime); s.Read(out Length); s.ReadAllChunks(this); }
public void ReadChunk(string id, long length, DarkInStream s) { if (id.Equals("CLIP")) { Clip c = new Clip(); c.Read(s); AddClip(c); } else if (id.Equals("PTCH")) { Patch p = new Patch(s); AddPatch(p); } }
void patchItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { string file = (string)e.ClickedItem.Tag; if (file == null) { return; } DarkInStream s = new DarkInStream(File.OpenRead(file)); s.ReadChunk(delegate(string id, long length, DarkInStream s1) { if (id.Equals("PTCH")) { Patch p = new Patch(s); p.Channel = selectedChannel; foreach (MidiMessage m in p.Get()) { MidiMessage m2 = m; Sequencer.PlayMidiEvent(m2, true); } } }); s.Close(); }