public void beginRecording(int instrument)
        {
            stopallnotes();

            //add new track!
            Track newtrack = new Track();
            int nchannel = getCurChannelRecording() + 1;

            //Set instrument
            builder.Command = ChannelCommand.ProgramChange;
            builder.MidiChannel = nchannel;
            builder.Data1 = instrument;
            builder.Build();
            newtrack.Insert(0, builder.Result);
            this.midiFilePlayer1.sequence.Add(newtrack);

            //Also important: send event to the output device.
            outDevice.Send(builder.Result);

            recordTicks = new ArrayList();
            recordNotes = new ArrayList();

            midiFilePlayer1.Start();
            isRecording = true;
        }