internal static void ResetAllCtlrsStatic(iBassMidiOut bassout) { //* used by clsPlay or clsBASSOut //Debug.WriteLine("Reset All Controllers at " + DateTime.Now); //tmp debugging //* don't send if recording (should only be at start) //if (P.F != null && P.F.FileStreamMM != null && P.F.FileStreamMM.indRec) return; if (bassout == null) { return; } for (byte ch = 0; ch < 16; ch++) { byte status = (byte)(0xb0 | ch); OutShortMsg(bassout, status, 0x79, 0); //reset all controllers //* pan, vol (& others?) appear not to be reset with resetallcontrollers in sonar/cubase OutShortMsg(bassout, status, 0x0a, 64); //pan centre OutShortMsg(bassout, status, 0x07, 100); //vol 100 OutShortMsg(bassout, status, 0x40, 0); //sustain off OutShortMsg(bassout, status, 101, 0); //set pitchbend range MSB OutShortMsg(bassout, status, 100, 0); //set pitchbend range LSB OutShortMsg(bassout, status, 6, 2); //data entry MSB +-2 semitones OutShortMsg(bassout, status, 38, 0); //data entry LSB 0 OutShortMsg(bassout, status, 100, 127); //reset RPN LSB OutShortMsg(bassout, status, 101, 127); //reset RPN MSB OutShortMsg(bassout, status, 98, 127); //reset NRPN LSB OutShortMsg(bassout, status, 99, 127); //reset NRPN MSB OutShortMsg(bassout, status, 0x7b, 0); //all notes off } }
private static void OutShortMsg(iBassMidiOut bassout, byte status, byte msg, byte data) { if (bassout == null) { return; } bassout.SendShortMsg(status, msg, data); }
internal static void AllNotesOffStatic(iBassMidiOut bassout) { if (bassout == null) { return; } for (byte ch = 0; ch < 16; ch++) { byte status = (byte)(0xb0 | ch); OutShortMsg(bassout, status, 0x7b, 0); //all notes off OutShortMsg(bassout, status, 0x40, 0); //sustain off } }
internal clsWaitPlay(clsFileStream filestream, iBassMidiOut bassout, clsMute mute) { Resolution = (int)P.frmStart.nudPlayResolution.Value; HalfResolution = Resolution / 2; dStartPlay = new delStartPlay(StartPlay); PlayThread = new Thread(new ThreadStart(StartPlay)); PlayThread.Priority = ThreadPriority.AboveNormal; PlayThread.Name = "Play Thread"; //Debug.WriteLine("clsWaitPlay: ThreadId = " + PlayThread.ManagedThreadId); FileStream = filestream; BASSOut = bassout; Mute = mute; dUpdateTempo = new delegUpdateTempo(P.frmStart.UpdateLblTempo); ResetAllCtlrsTimer.AutoReset = false; ResetAllCtlrsTimer.Elapsed += ResetAllCtlrsTimer_Elapsed; }