/// <summary> /// Callback called when data dump is received from device /// </summary> private void OnSysExMessageReceived(object sender, SysExMessageEventArgs e) { switch (e.Message.Length) { case ExpectedCommonDumpLength + SysExUtils.DumpPaddingSize: _logger.Receive("Received Patch.Common"); _commonDump = e.Message; break; case ExpectedVfxDumpLength + SysExUtils.DumpPaddingSize: _vfxDump = e.Message; _logger.Receive("Received Patch.VocalEffect"); break; } _dumpCount++; if (_dumpCount == 2) { _timer.Stop(); _device.StopRecording(); _device.Dispose(); DataDumpReceived?.Invoke(this, new CommonAndVocalFxDumpReceivedEventArgs(new CommonAndVocalEffectPatch(_commonDump, _vfxDump))); } }
public void OnSysExMessagePlayed(object sender, SysExMessageEventArgs e) { if (DeviceID != -1) { Device.Send(e.Message); } }
void OnSysex(SysExMessageEventArgs e) { try { if (InvokeRequired) { BeginInvoke(new MethodInvoker(delegate { if (midiPlaybackDevice != null && midiPlaybackDevice.IsDisposed == false) { midiPlaybackDevice.Send(e.Message); } })); } else { if (midiPlaybackDevice != null && midiPlaybackDevice.IsDisposed == false) { midiPlaybackDevice.Send(e.Message); } } } catch { } }
/// <summary> /// Callback called when data dump is received from device /// </summary> private void OnSysExMessageReceived(object sender, SysExMessageEventArgs e) { // At 11 byte we have effect type, so we check value there var effect = (Effect)e.Message[10]; var expectedDumpLength = ExpectedDumpLength(effect) + SysExUtils.DumpPaddingSize; var actualDumpLength = e.Message.Length; if (actualDumpLength != expectedDumpLength) { throw new InvalidDumpSizeException(expectedDumpLength, actualDumpLength); } _logger.Receive($"Received {effect}"); _dataDumps.Add(effect, e.Message); _dumpCount++; if (_dumpCount == 4) { _timer.Stop(); _device.StopRecording(); _device.Dispose(); DataDumpReceived?.Invoke(this, new EffectsPatchDumpReceivedEventArgs(new Patch(_dataDumps))); } }
/// <summary> /// Callback called when data dump is received from device /// </summary> private void OnSysExMessageReceived(object sender, SysExMessageEventArgs e) { switch (e.Message.Length) { case ExpectedCommonDumpLength + SysExUtils.DumpPaddingSize: _commonDump = e.Message; _logger.Receive("Received Patch.Common"); break; case ExpectedPartialDumpLength + SysExUtils.DumpPaddingSize: { // At 11 byte we have partial identifier, so we check value at that byte var key = (DrumKey)e.Message[10]; _partialsDump[key] = e.Message; _logger.Receive($"Received Patch.Partials[{key}]"); break; } } _dumpCount++; if (_dumpCount == 39) { _timer.Stop(); _device.StopRecording(); _device.Dispose(); DataDumpReceived?.Invoke(this, new DrumKitPatchDumpReceivedEventArgs(new Patch(_commonDump, _partialsDump))); } }
protected virtual void OnSysExMessageDispatched(SysExMessageEventArgs e) { EventHandler <SysExMessageEventArgs> handler = SysExMessageDispatched; if (handler != null) { handler(this, e); } }
void onSysExMessageReceived(object obj, SysExMessageEventArgs e) { SysExMessage m = e.Message; if (debugPrintMIDI) { Console.WriteLine("SysEx Message: " + m.ToString()); } }
private void HandleSysExMessageReceived(object sender, SysExMessageEventArgs e) { this.context.Post((SendOrPostCallback)(dummy => { byte[] bytes = e.Message.GetBytes(); Logger.Log(string.Format("Receiving SysEx of size {0}", (object)bytes.Length)); Logger.Log(bytes); Form1.m_CurrentPatch.DecodeSysexData(ref bytes); }), (object)null); }
protected virtual void OnSysExMessageReceived(SysExMessageEventArgs e) { EventHandler <SysExMessageEventArgs> handler = SysExMessageReceived; if (handler != null) { context.Post(delegate(object dummy) { handler(this, e); }, null); } }
/// <summary> /// Sysex messages received /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void HandleSysExMessageReceived(object sender, SysExMessageEventArgs e) { context.Post(delegate(object dummy) { string result = "\n\n";; foreach (byte b in e.Message) { result += string.Format("{0:X2} ", b); } sysExRichTextBox.Text += result; }, null); }
public void HandleSysExMessageReceived(object sender, SysExMessageEventArgs e) { MIDIInterpreterInstance.context.Post(delegate(object dummy) { string result = "\n\n";; foreach (byte b in e.Message) { result += string.Format("{0:X2} ", b); } sysExRichTextBox.Items.Add(result); }, null); }
void inDevice_SysExMessageReceived(object sender, SysExMessageEventArgs e) { if (InvokeRequired) { BeginInvoke(new MethodInvoker(delegate { CheckInstrumentNote(e); })); } else { CheckInstrumentNote(e); } }
void midiPlaybackSequencer_SysExMessagePlayed(object sender, SysExMessageEventArgs e) { if (InvokeRequired) { BeginInvoke(new MethodInvoker(delegate { OnSysex(e); })); } else { OnSysex(e); } }
private void HandleSysExMessageReceived(object sender, SysExMessageEventArgs e) { InputDevice id = (InputDevice)sender; MidiRoutes[id.DeviceID].SendMessages(om, e.Message); if (debug) { Console.Write("SysEx: " + e.Message.SysExType + " "); for (int i = 0; i < e.Message.Length; i++) { Console.Write("{0:X} ", e.Message[i]); } Console.WriteLine(); } }
private void HandleSysExMessage(object sender, SysExMessageEventArgs e) { if (!DataResponseMessage.TryParse(e.Message, out var response)) { AddUnconsumedMessage(); return; } if (response.DeviceId != DeviceId || response.ModelId != ModelId) { AddUnconsumedMessage(); return; } LinkedList <TaskCompletionSource <byte[]> > sourcesToComplete = new LinkedList <TaskCompletionSource <byte[]> >(); lock (sync) { var node = consumers.First; while (node != null) { var consumer = node.Value; if (consumer.ExpectedAddress == response.Address && consumer.ExpectedSize == response.Length) { sourcesToComplete.AddLast(consumer.TaskCompletionSource); consumers.Remove(node); } node = node.Next; } } foreach (var source in sourcesToComplete) { source.TrySetResult(response.Data); } if (sourcesToComplete.Count == 0) { UnconsumedMessageHandler?.Invoke(this, response); AddUnconsumedMessage(); } void AddUnconsumedMessage() { // TODO: Limit the buffer size. lock (sync) { unconsumedMessages.AddLast(e.Message); } } }
/// <summary> /// Callback called when data dump is received from device /// </summary> private void OnSysExMessageReceived(object sender, SysExMessageEventArgs e) { _timer.Stop(); _device.StopRecording(); _device.Dispose(); var actualLength = e.Message.Length - SysExUtils.DumpPaddingSize; if (actualLength != ExpectedDumpLength) { throw new InvalidDumpSizeException(ExpectedDumpLength, actualLength); } _logger.Receive("Received Patch"); DataDumpReceived?.Invoke(this, new AnalogPatchDumpReceivedEventArgs(new Patch(e.Message))); }
/// <summary> /// Sysex messages received /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void HandleSysExMessageReceived(object sender, SysExMessageEventArgs e) { context.Post(delegate(object dummy) { int ticks = GetTicks(); string result = "\n\n";; foreach (byte b in e.Message) { result += string.Format("{0:X2} ", b); } sysExRichTextBox.Text += result; // insert event SysExMessage SMsg = new SysExMessage(e.Message.GetBytes()); track1.Insert(ticks, SMsg); }, null); }
public string GetDetail() { string res = ""; if (RawState is ChannelMessageEventArgs) { ChannelMessageEventArgs msg = (ChannelMessageEventArgs)RawState; res += "MessageType: " + msg.Message.MessageType.ToString() + "\t"; res += "Command: " + msg.Message.Command.ToString() + "\t"; res += "Channel: " + msg.Message.MidiChannel.ToString() + "\t"; res += "Note: " + msg.Message.Data1.ToString() + "\t"; res += "Velocity: " + msg.Message.Data2.ToString(); } if (RawState is SysExMessageEventArgs) { SysExMessageEventArgs msg = (SysExMessageEventArgs)RawState; res += "MessageType: " + msg.Message.MessageType.ToString() + "\t"; res += "SysExType: " + msg.Message.SysExType.ToString() + "\t"; res += "RawBytes(Hex): "; foreach (byte b in msg.Message) { res += string.Format("{0:X2} ", b); } } if (RawState is SysCommonMessageEventArgs) { SysCommonMessageEventArgs msg = (SysCommonMessageEventArgs)RawState; res += "MessageType: " + msg.Message.MessageType.ToString() + "\t"; res += "SysCommonType: " + msg.Message.SysCommonType.ToString() + "\t"; res += msg.Message.Data1.ToString() + msg.Message.Data2.ToString(); res += msg.Message.Data2.ToString(); } if (RawState is SysRealtimeMessageEventArgs) { SysRealtimeMessageEventArgs msg = (SysRealtimeMessageEventArgs)RawState; res += msg.Message.MessageType.ToString() + "\t"; res += "SysRealtimeType: " + msg.Message.SysRealtimeType.ToString(); } return(res); }
private void HandleSysExMessage(object sender, SysExMessageEventArgs e) { var message = e.Message; var data = new byte[message.Length]; message.CopyTo(data, 0); Console.WriteLine(BitConverter.ToString(data)); if (message.Length == 15 && message[3] == 0x06 && // General information message[4] == 0x02 && // Identity reply message[5] == 0x41) // Roland { int deviceId = message[2] + 1; int familyCode = message[6] + (message[7] << 8); int familyNumberCode = message[8] + (message[9] << 8); int revision = message[10] + (message[11] << 8) + (message[12] << 16) + (message[13] << 24); var response = new IdentityResponse(deviceId, familyCode, familyNumberCode, revision); IdentityReceived?.Invoke(response); } }
void m_Sequencer_SysExMessagePlayed(object sender, SysExMessageEventArgs e) { }
private static void Sequencer_SysExMessagePlayed(object sender, SysExMessageEventArgs e) { Console.WriteLine("SysExMessagePlayed"); }
private void InputDevice_SysExMessageReceived(object sender, SysExMessageEventArgs e) { Console.WriteLine(e); }
/// <summary> /// Callback called when data dump is received from device /// </summary> private void OnSysExMessageReceived(object sender, SysExMessageEventArgs e) { switch (e.Message.Length) { case ExpectedCommonDumpLength + SysExUtils.DumpPaddingSize: _logger.Receive("Received Patch.Common"); _commonDump = e.Message; break; case ExpectedModifiersDumpLength + SysExUtils.DumpPaddingSize: _logger.Receive("Received Patch.Modifiers"); _modifiersDump = e.Message; break; case ExpectedPartialDumpLength + SysExUtils.DumpPaddingSize: { // At 11 byte we have partial number, so we check value at that byte var partial = (DigitalPartial)e.Message[10]; switch (partial) { case DigitalPartial.First: _logger.Receive($"Received Patch.PartialOne"); _partialsDump[0] = e.Message; break; case DigitalPartial.Second: _logger.Receive($"Received Patch.PartialTwo"); _partialsDump[1] = e.Message; break; case DigitalPartial.Third: _logger.Receive($"Received Patch.PartialThree"); _partialsDump[2] = e.Message; break; default: throw new ArgumentOutOfRangeException(nameof(partial), partial, null); } break; } default: throw new InvalidDumpSizeException(); } _dumpCount++; if (_dumpCount == 5) { _timer.Stop(); _device.StopRecording(); _device.Dispose(); DataDumpReceived?.Invoke(this, new DigitalPatchDumpReceivedEventArgs( new Patch(_commonDump, _partialsDump, _modifiersDump) )); } }
private void HandleSysExMessagePlayed(object sender, SysExMessageEventArgs e) { }
private void InputDevice_SysExMessageReceived(object sender, SysExMessageEventArgs e) { //MessagesTextBox.Text += $"SysEX: {e.Message.MessageType}\n"; }
void CheckInstrumentNote(SysExMessageEventArgs e) { if (labelMidiInputDeviceState.Text == "None Connected") { if (e.Message.Length == 18) { if (e.Message.GetBytes()[3] == 8) { labelMidiInputDeviceState.Text = "Squier"; } else if (e.Message.GetBytes()[3] == 0x0A) { labelMidiInputDeviceState.Text = "Mustang"; } } } else { TextBox[] tb = GetNoteBoxes(); if (e.Message.Length == 18) { if (checkBoxEnableClearTimer.Checked) { resetCount--; if (resetCount <= 0) { bool allzero = true; for (int x = 0; x < 6; x++) { if (tb[x].Text.Length > 0 && tb[x].Text != "0") { allzero = false; break; } } if (allzero) { foreach (var tbox in tb) { tbox.Text = ""; } resetCount = resetTime; } } } } if (e.Message.Length == 8) { resetCount = resetTime; byte[] b = e.Message.GetBytes(); int noteString = b[5] - 1; byte[] offsets = new byte[] { 0x40, 0x3B, 0x37, 0x32, 0x2D, 0x28 }; bool isStrum = b[4] == 5; if (isStrum) { var dtNowStrum = DateTime.Now; var dtStrumTime = (dtNowStrum - dtLastStrum); if (checkChordMode.Checked == false || (checkChordMode.Checked == true && checkBoxChordStrum.Checked == true)) { if (!checkBoxChordStrum.Checked) { ClearNoteBoxes(); ClearHoldBoxes(); } } tb[noteString].Text = (guitar6Notes[noteString]).ToString(); if (checkTwoNotePowerChord.Checked || checkThreeNotePowerChord.Checked) { if (checkTwoNotePowerChord.Checked) { if (noteString > 0) { int noteP1 = tb[noteString].Text.ToInt(); if (!noteP1.IsNull()) { int offset = 2; if (noteString == 3) { offset = 3; } tb[noteString - 1].Text = (noteP1 + offset).ToString(); } } } if (checkThreeNotePowerChord.Checked) { if (noteString > 1) { int noteP1 = tb[noteString].Text.ToInt(); if (!noteP1.IsNull()) { int offset = 2; if (noteString == 3 || noteString == 2) { offset = 3; } tb[noteString - 2].Text = (noteP1 + offset).ToString(); } } } } if (checkChordMode.Checked == false || (checkChordMode.Checked == true && checkBoxChordStrum.Checked == true)) { if (checkBoxChordStrum.Checked == true) { GetHoldBoxes()[noteString].Text = tb[noteString].Text; } else { PlaceHeldNotesIntoHoldBoxes(); } } else { PlaceHeldNotesIntoHoldBoxes(); } if (checkRealtimeNotes.Checked) { if ((checkChordMode.Checked == true && checkBoxChordStrum.Checked == true) == false) { EditorPro.BackupSequence(); PlaceNote(SelectNextEnum.UseConfiguration); ClearNoteBoxes(); ClearHoldBoxes(); } } if (checkBoxPlayMidiStrum.Checked) { if (dtStrumTime.TotalMilliseconds > 10) { PlayHoldBoxMidi(); } } dtLastStrum = DateTime.Now; } else { guitar6Notes[noteString] = b[6] - offsets[noteString]; tb[noteString].Text = (guitar6Notes[noteString]).ToString(); } if (checkBoxClearIfNoFrets.Checked == true) { bool allzero = true; for (int x = 0; x < 6; x++) { if (tb[x].Text.Length > 0 && tb[x].Text != "0") { allzero = false; break; } } if (allzero) { StopHoldBoxMidi(); ClearHoldBoxes(); ClearNoteBoxes(); } } } } }
private void HandleSysExMessagePlayed(object sender, SysExMessageEventArgs e) { // outDevice.Send(e.Message); Sometimes causes an exception to be thrown because the output device is overloaded. }
private static void Indevice_SysExMessageReceived(object sender, SysExMessageEventArgs e) { SendEncoded(e.Message, "sysex"); // client.Send(e.Message.MessageType.ToString()); }