// 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); }
public void Write(BinaryWriter a) { MidiWriter mw = new MidiWriter(a); int timeCursor = 0; foreach (Note n in noteList) { timeCursor = n.Write(timeCursor, mw); } }
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); }
public int CountMidiBytes(ref int timeCursorRW) { if (letterName.Is(LN.NA)) { return(0); } int bytes = MidiWriter.CountMidiNumberBytes((ushort)(offset - timeCursorRW)) + 3 + MidiWriter.CountMidiNumberBytes((ushort)(length)) + 3; timeCursorRW = offset + length; return(bytes); }
public void WriteTrackFooter(BinaryWriter a) { MidiWriter mw = new MidiWriter(a); mw.WriteBE4(0x00ff2f00); }