Example #1
0
//- saving -------------------------------------------------------------------

        public static void writeMidiFile(Sequence seq, String filename)
        {
            MidiOutStream stream = new MidiOutStream(filename);

            //midi file header
            stream.putString("MThd");
            stream.putFour(6);                      //header size
            stream.putTwo(1);                       //type 1 midi file
            stream.putTwo(seq.tracks.Count);        //track count
            stream.putTwo(seq.division);            //division

            for (int trackNum = 0; trackNum < seq.tracks.Count; trackNum++)
            {
                seq.tracks[trackNum].saveTrack(stream);
            }
        }
Example #2
0
//- track saving -------------------------------------------------------------

        public void saveTrack(MidiOutStream stream)
        {
            //List<byte> data = new List<byte>();

            //uint curtime = 0;
            //foreach(Event evt in events) {
            //    uint delta = evt.time - curtime;
            //    curtime = evt.time;
            //    List<byte> vardelta = stream.getVarLenQuantity(delta);
            //    data.AddRange(vardelta);
            //    byte[] msgbytes = evt.msg.getDataBytes();
            //    data.AddRange(msgbytes);
            //}

            ////track header
            //int size = data.Count;
            //stream.putString("MTrk");
            //stream.putFour(size);
            //stream.putData(data.ToArray());
        }