public void WriteTrackHeader(int partDataBytes, BinaryWriter a) { MidiWriter mw = new MidiWriter(a); mw.WriteByte((byte)'M'); mw.WriteByte((byte)'T'); mw.WriteByte((byte)'r'); mw.WriteByte((byte)'k'); // trackData = partData + trackFooter(4 bytes) mw.WriteBE4(partDataBytes + 4); }
public void WriteMidiHeader(BinaryWriter a) { MidiWriter mw = new MidiWriter(a); mw.WriteByte((byte)'M'); mw.WriteByte((byte)'T'); mw.WriteByte((byte)'h'); mw.WriteByte((byte)'d'); mw.WriteBE4(6); mw.WriteBE2(1); mw.WriteBE2(nTrack); mw.WriteBE2(tempo); }
// returns new time cursor public int Write(int timeCursor, MidiWriter mw) { if (letterName.Is(LN.NA)) { return(timeCursor); } // pitch int p = GetMidiPitchValue(); mw.WriteMidiNumber((ushort)(offset - timeCursor)); mw.WriteByte(0x90); System.Diagnostics.Debug.Assert(p <= 0x7f); mw.WriteByte((byte)p); System.Diagnostics.Debug.Assert(volume <= 0x7f); mw.WriteByte((byte)volume); // stop note mw.WriteMidiNumber((ushort)(length)); mw.WriteByte(0x90); mw.WriteByte((byte)p); mw.WriteByte((byte)0); return(offset + length); }