Exemple #1
0
    private void onChannelMessagePlayed(object sender, Midi.ChannelMessageEventArgs arg)
    {
        var command = arg.Message.Command;

        if (command == Midi.ChannelCommand.NoteOn && arg.Message.Data2 == 0)
        {
            command = Midi.ChannelCommand.NoteOff;
        }

        switch (command)
        {
        case Midi.ChannelCommand.NoteOn:
            Actions.Add(delegate {
                Controller.setKeyPosition(arg.Message.Data1, 1);
            });

            break;

        case Midi.ChannelCommand.NoteOff:
            Actions.Add(delegate {
                Controller.setKeyPosition(arg.Message.Data1, 0);
            });

            break;
        }
    }
Exemple #2
0
    /*private void HandleLoadCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
     * {
     *      Timer.text = sequence.GetLength().ToString();
     * }*/

    private void onChannelMessagePlayed(object sender, Midi.ChannelMessageEventArgs arg)
    {
        //Debug.Log("ChannelMessagePlayed: " + arg.Message.Command.ToString());

        if (OutputToDevice)
        {
            outDevice.Send(arg.Message);
        }
    }
Exemple #3
0
        protected virtual void OnChannelMessageDispatched(ChannelMessageEventArgs e)
        {
            EventHandler <ChannelMessageEventArgs> handler = ChannelMessageDispatched;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Exemple #4
0
        private void HandleInputMessageReceived(object sender, ChannelMessageEventArgs args)
        {
            _uiCtx.Post(o =>
            {
                // Create new channel message object and add to session
                ChannelMessage msg = args.Message;

                if (MessageReceived != null) MessageReceived(this, SanfordUtils.ConvertChannelMessageToKeyStrokeEventArgs(msg));

            }, null);
        }
Exemple #5
0
        protected virtual void OnChannelMessageReceived(ChannelMessageEventArgs e)
        {
            EventHandler<ChannelMessageEventArgs> handler = ChannelMessageReceived;

            if(handler != null)
            {
                context.Post(delegate(object dummy)
                {
                    handler(this, e);
                }, null);
            }
        }
        private void InDevice_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            // raise event
            if (OnControlMessageEvent == null) return;
            if (e.Message.Command != ChannelCommand.Controller) return;

            OnControlMessageEvent(new ControlMessageEventArgs
            {
                ControlId = e.Message.Data1,
                Value = e.Message.Data2
            });
        }
        protected virtual void OnChannelMessageReceived(ChannelMessageEventArgs e)
        {
            EventHandler <ChannelMessageEventArgs> handler = ChannelMessageReceived;

            if (handler != null)
            {
                context.Post(delegate(object dummy)
                {
                    handler(this, e);
                }, null);
            }
        }
Exemple #8
0
            private void HandleChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
            {
                /*if (closing)
                {
                    return;
                }*/

                if (e.Message.Command == ChannelCommand.NoteOn)
                    NotePlayed((object)(e.Message.MidiChannel), null);

                outDevice.Send(e.Message);
                //pianoControl1.Send(e.Message);
            }
 protected virtual void OnChannelMessageReceived(ChannelMessageEventArgs e)
 {
     EventHandler<ChannelMessageEventArgs> handler = ChannelMessageReceived;
     if (context == null)
         context = SynchronizationContext.Current;
     if (handler != null && context != null)
     {
         context.Post(delegate(object dummy)
         {
             handler(this, e);
         }, null);
     }
 }
Exemple #10
0
        protected virtual void OnChannelMessageReceived(ChannelMessageEventArgs e)
        {
            EventHandler <ChannelMessageEventArgs> handler = ChannelMessageReceived;

            if (context == null)
            {
                context = SynchronizationContext.Current;
            }
            if (handler != null && context != null)
            {
                context.Post(delegate(object dummy)
                {
                    handler(this, e);
                }, null);
            }
        }
 private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
 {
     context.Post(delegate (object dummy)
     {
         if (e.Message.Data2 == 127)
         {
             switch (e.Message.Data1)
             {
                 /*
                 5D =  93 = A  6 = Stop
                 5E =  94 = Bb 6 = Play
                 5F =  95 = B  6 = Record
                 60 =  96 = C  7 = Up
                 61 =  97 = C# 7 = Down
                 62 =  98 = D  7 = Left
                 63 =  99 = Eb 7 = Right
                 64 = 100 = E  7 = Center
                 */
                 case 93:
                     home.HandleStopButtonPress();
                     break;
                 case 94:
                     home.HandlePlayButtonPress();
                     break;
                 case 95:
                     home.HandleRecordButtonPress();
                     break;
                 case 96:
                     home.HandleUpButtonPress();
                     break;
                 case 97:
                     home.HandleDownButtonPress();
                     break;
                 case 98:
                     home.HandleLeftButtonPress();
                     break;
                 case 99:
                     home.HandleRightButtonPress();
                     break;
                 case 100:
                     home.HandleCenterButtonPress();
                     break;
             }
         }
     }, null);
 }
        void sequencer_ChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
        {
            if (serialPort == null)
            {
                return;
            }

            try
            {
                List<byte> dataBuffer = new List<byte>();

                if (e.Message.Command == ChannelCommand.NoteOn || e.Message.Command == ChannelCommand.NoteOff)
                {
                    dataBuffer.Add((byte)(e.Message.Command));
                    dataBuffer.Add((byte)e.Message.Data1);
                    dataBuffer.Add((byte)e.Message.Data2);
                }
                else if (e.Message.Command == ChannelCommand.Controller)
                {
                    // Control change command
                    dataBuffer.Add((byte)(e.Message.Command));
                    dataBuffer.Add((byte)e.Message.Data1);
                    dataBuffer.Add((byte)e.Message.Data2);
                }

                foreach (byte data in dataBuffer)
                {
                    Console.Write(data.ToString("X2"));
                    Console.Write(".");
                }
                serialPort.Write(dataBuffer.ToArray<byte>(), 0, dataBuffer.Count);
                Console.WriteLine("");
            }
            catch (Exception ex)
            {
                serialPort = null;
            }
        }
Exemple #13
0
 /// <summary>
 /// We've received a MIDI message - handle it appropriately for the game state and message type.
 /// </summary>
 void ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
 {
     CheckReceivedMessage(e.Message);
 }
Exemple #14
0
        private void inputDevice_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            log.Trace("Recv {4} cmd {0}, chn: {1}  data1: {2}  data2: {3}",
                e.Message.Command,
                e.Message.MidiChannel,
                e.Message.Data1,
                e.Message.Data2,
                Name);

            this.midiMessages.OnNext(e.Message);

            try
            {
                var key = Tuple.Create(e.Message.MidiChannel, e.Message.Command, e.Message.Data1);

                Action<ChannelMessage> action;
                if (this.messageMapper.TryGetValue(key, out action))
                {
                    action.Invoke(e.Message);
                }
            }
            catch (Exception ex)
            {
                log.Error(ex, "Failed to invoke action");
            }
        }
        void Instance_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            if (InvokeRequired)
            {
                this.BeginInvoke((Instance_ChannelMessageReceivedDel) Instance_ChannelMessageReceived, sender, e);
            }
            else
            {
                // Add event
                var midiInputEvent = MidiFactory.Instance.CreateMidiEvent(e.Message.Command, e.Message.MidiChannel, e.Message.Data1, e.Message.Data2);
                if (midiInputEvent != null)
                {
                    MidiEventList.Add(midiInputEvent);

                    // select event
                    midiEventsBindingSource.MoveLast();



                }
            }
        }
Exemple #16
0
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            context.Post(delegate(object dummy)
            {
                channelListBox.Items.Add(
                    e.Message.Command.ToString() + '\t' + '\t' +
                    e.Message.MidiChannel.ToString() + '\t' +
                    e.Message.Data1.ToString() + '\t' +
                    e.Message.Data2.ToString());

                channelListBox.SelectedIndex = channelListBox.Items.Count - 1;
            }, null);
        }
Exemple #17
0
 /// <summary>
 /// Event handler for MIDI player - channel message played
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void HandleMIDIChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
 {
 }
 public static ShortMessageEventArgs FromChannelMessage(ChannelMessageEventArgs arg)
 {
     return(new ShortMessageEventArgs(arg.Message));
 }
 /// <summary>
 /// We got a ChannelMessage.  If there's an OutputDevice, play the note!
 /// </summary>
 void VirtualKeyboard_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
 {
     if(_device != null)
         _device.Send(e.Message);
 }
Exemple #20
0
 private void HandlePlayerMessage(object o, ChannelMessageEventArgs e)
 {
     var pianoEventArgs = SanfordUtils.ConvertChannelMessageToKeyStrokeEventArgs(e.Message);
     if(_output != null) _output.Send(this, pianoEventArgs);
     if(_virtualKeyboard != null) _virtualKeyboard.HandleIncomingMessage(o, pianoEventArgs);
 }
 static void MIDIChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
 {
     outDevice.Send(e.Message);
 }
 private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
 {
     if (ChannelMessageReceived != null) ChannelMessageReceived(sender, e);
 }
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            // textBox1.Text += "message=" + e.Message.Command + "; ID=" + e.Message.Data1 + "; Val=" + e.Message.Data2 + "\r\n";

            int PanelID = e.Message.Data1;

            for (int x = 0; x < 4; x++)
            {
                for (int y = 0; y < 2; y++)
                {
                    if (Convert.ToInt32(panele[x, y].Tag) == PanelID)
                    {
                        panel1_Click(panele[x, y], null);
                        IGame game = GameController.Instance().currentGame;

                        if (game != null)
                        {
                            game.ButtonPress(x, y);
                        }
                    }

                }
            }

            if (PanelID == 25)
            {
                int val = e.Message.Data2 / 10;

                if (val < lbxGames.Items.Count)
                {
                    lbxGames.SelectedIndex = val;
                    IGame game = GameController.Instance().currentGame;

                    if (game ==null || (int)game.GameType != val)
                    {
                        GameController.Instance().StartGame((GameType)val, CurrentGame_Repaint);
                    }
                }
            }
        }
        /// <summary>
        /// Handles the Midi message received
        /// Only called if in recording mode
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            m_context.Post(delegate(object dummy)
            {
                // Create new channel message object and add to session
                ChannelMessage msg = e.Message;
                //todo: maybe reimplement this if broken new ChannelMessage(e.Message.Command,e.Message.MidiChannel,e.Message.Data1,e.Message.Data2);

                m_Session.Record(msg);

                // Update number of messages received and raise event
                this.NumMsgsReceived++;
                if (MessageReceived != null) MessageReceived(this, SanfordUtils.ConvertChannelMessageToKeyStrokeEventArgs(msg));

            }, null);
        }
Exemple #25
0
        /// <summary>
        /// Internal event handler for channel message played
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void HandleChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
        {
            if (b_ProgramClosing) // don't try playing anything if program is closing
                return;

            // always play NoteOff messages
            if (e.Message.Command == ChannelCommand.NoteOn && e.Message.Data2 > 0)
            {
                if (!PlayOtherChannels && e.Message.MidiChannel != i_PersistentChannel)
                    return;

                if (!PlayPersistentChannel && e.Message.MidiChannel == i_PersistentChannel)
                    return;
            }

            if (e.Message.MidiChannel == i_PersistentChannel)
            {
                if (e.Message.Command == ChannelCommand.NoteOn && e.Message.Data2 > 0)
                {
                    i_NumChannelNotesPlayed++;
                    al_CurrentPlayingChannelNotes.Add(e.Message.Data1 + NoteOffset);
                    e = new ChannelMessageEventArgs(new ChannelMessage(e.Message.Command, e.Message.MidiChannel, e.Message.Data1 + NoteOffset, e.Message.Data2));
                }
                else if (e.Message.Command == ChannelCommand.NoteOn || e.Message.Command == ChannelCommand.NoteOff)
                {
                    al_CurrentPlayingChannelNotes.Remove(e.Message.Data1 + NoteOffset);
                    e = new ChannelMessageEventArgs(new ChannelMessage(e.Message.Command, e.Message.MidiChannel, e.Message.Data1 + NoteOffset, e.Message.Data2));
                }
            }

            outputDevice.Send(e.Message);
        }
        private void MidiDeviceManager_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            MidiEventBase eventBase = GetMidiInputEvent(MidiEventBase.GetID(e.Message));

            if (eventBase != null) eventBase.SetData(e.Message);
        }
Exemple #27
0
 private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
 {
     context.Post(delegate (object dummy)
     {
         if (cbDebug.Checked)
         {
             logMe("Got MIDI " + e.Message.Command.ToString() +
                 " on channel " + (e.Message.MidiChannel + 1) + ", note: " +
                 e.Message.Data1 + "\n");
         }
         if ((e.Message.Command.ToString()=="NoteOn") && 
             (e.Message.MidiChannel + 1 == nudMidiChannel.Value))
         {
             if (e.Message.Data1 >=48)
             {
                 // 48 == C3
                 int iPlaylistItem = e.Message.Data1 - 48;
                 logMe("Playing playlist item #" + iPlaylistItem.ToString() + "\n");
                 PlayPlayListItem(iPlaylistItem + 4);
             }
         }
     }, null);
 }
        private static void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            System.Diagnostics.Debug.WriteLine(string.Format("{0}, {1}, {2}, {3}, {4}, {5}", e.Message.Command.ToString(),
                e.Message.Data1, e.Message.Data2, e.Message.MessageType.ToString(), e.Message.MidiChannel, e.Message.Status));

            switch (e.Message.Command)
            {
                case ChannelCommand.NoteOn:
                    foreach (VirtualPiano inst in _pianoInstances)
                    {
                        inst.handlePianoDown(e.Message.Data1);
                    }
                    break;
                case ChannelCommand.NoteOff:
                    foreach (VirtualPiano inst in _pianoInstances)
                    {
                        inst.handlePianoUp(e.Message.Data1);
                    }
                    break;
                default:
                    break;
            }
        }
        private void HandleChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
        {
            if (closing)
            {
                return;
            }

            if (Dispatcher.Thread == Thread.CurrentThread)
            {
                outDevice.Send(e.Message);
                piano.Send(e.Message);
            }
            else
            {
                Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal,
                    new EventHandler<ChannelMessageEventArgs>(HandleChannelMessagePlayed), sender, new object[] { e });
            }
        }
 protected virtual void OnChannelMessageDispatched(ChannelMessageEventArgs e)
 {
     ChannelMessageDispatched?.Invoke(this, e);
 }
Exemple #31
0
        private void ChannelMessageReceived(
      object sender,
      ChannelMessageEventArgs e
    )
        {
            //System.Diagnostics.Debug.WriteLine(
              //  "MIDI channel message on channel " + e.Message.MidiChannel +
              //  " with command " + e.Message.Command +
              //  ", data1 " + e.Message.Data1 +
              //  ", data2 " + e.Message.Data2
              //);
              MidiCommand command;
              if (e.Message.Command == ChannelCommand.Controller) {
            double value = (double)e.Message.Data2 / 127;
            command = new MidiCommand() {
              type = MidiCommandType.Knob,
              index = e.Message.Data1,
              value = value,
            };
              } else if (
            e.Message.Command == ChannelCommand.NoteOn ||
            e.Message.Command == ChannelCommand.NoteOff
              ) {
            double value = (double)e.Message.Data2 / 127;
            command = new MidiCommand() {
              type = MidiCommandType.Note,
              index = e.Message.Data1,
              value = value,
            };
              } else if (e.Message.Command == ChannelCommand.ProgramChange) {
            command = new MidiCommand() {
              type = MidiCommandType.Program,
              index = e.Message.Data1,
            };
              } else {
            return;
              }
              this.buffer.Enqueue(command);

              List<Binding> triggered = new List<Binding>();
              BindingKey genericKey = new BindingKey(command.type, -1);
              if (this.bindings.ContainsKey(genericKey)) {
            triggered.AddRange(this.bindings[genericKey]);
              }
              BindingKey key = new BindingKey(command.type, command.index);
              if (this.bindings.ContainsKey(key)) {
            triggered.AddRange(this.bindings[key]);
              }
              foreach (Binding binding in triggered) {
            binding.callback(command.index, command.value);
              }
        }
        protected virtual void OnChannelMessageDispatched(ChannelMessageEventArgs e)
        {
            EventHandler<ChannelMessageEventArgs> handler = ChannelMessageDispatched;

            if(handler != null)
            {
                handler(this, e);
            }
        }
Exemple #33
0
 private void sequencer_ChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
 {
     MIDIOutPutDevice.Send(e.Message);
 }
        private void HandleChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
        {
            if(closing)
            {
                return;
            }

            outDevice.Send(e.Message);
            pianoControl1.Send(e.Message);
        }
 private void EventSource_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
 {
     FOutDevice.Send(e.Message);
 }
Exemple #36
0
 private void ExecuteChannelMessageAction(ChannelMessageEventArgs channelMessageEventArgs)
 {
     var incomingMessage = channelMessageEventArgs.Message;
     var translations = TranslationMap?.Translations.Where(t => t.InputMatchFunction(incomingMessage, t.InputMessageMatchTarget)).ToList();
     if (translations != null && translations.Any())
     {
         translations
             .ToList()
             .ForEach(translation =>
             {
                 var translatedMessage = translation.TranslationFunction(incomingMessage, translation.OutputMessageTemplate);
                 ChannelMessageActions.Where(channelMessageAction => channelMessageAction.MatchFunction(translatedMessage.ToChannelMessage()))
                     .ToList()
                     .ForEach(c =>
                     {
                         c.Action(translatedMessage.ToChannelMessage());
                     });
             });
     }
     else
     {
         ChannelMessageActions.Where(channelMessageAction => channelMessageAction.MatchFunction(incomingMessage))
             .ToList()
             .ForEach(c =>
             {
                 c.Action(incomingMessage.ToChannelMessage());
             });
     }
 }
        private void HandleChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
        {
            if (closing)
            {
                return;
            }

            outDevice.Send(e.Message);

            if (e.Message.Command == ChannelCommand.ProgramChange)
            {
                if (!dicChannel.ContainsKey(e.Message.MidiChannel))
                {
                    dicChannel.Add(e.Message.MidiChannel, e.Message.Data1);
                }
            }

            if (e.Message.MidiChannel == 9) // Channel 9 is reserved for drums
            {
                this.Dispatcher.Invoke(
                    System.Windows.Threading.DispatcherPriority.Normal,
                    new Action(
                        delegate()
                        {
                            drumControl1.Send(e.Message);
                        }
                        ));
            }
            else if (dicChannel.ContainsKey(e.Message.MidiChannel))
            {
                switch (dicChannel[e.Message.MidiChannel])
                {
                    case (int)MIDIInstrument.AcousticGrandPiano://1
                    case (int)MIDIInstrument.BrightAcousticPiano://2
                    case (int)MIDIInstrument.ElectricGrandPiano://3
                    case (int)MIDIInstrument.HonkytonkPiano://4
                    case (int)MIDIInstrument.ElectricPiano1://5
                    case (int)MIDIInstrument.ElectricPiano2://6
                    case (int)MIDIInstrument.Harpsichord://7
                    case (int)MIDIInstrument.Clavinet://8
                        pianoControl1.Send(e.Message);
                        break;
                    case (int)MIDIInstrument.AcousticGuitarnylon://25
                    case (int)MIDIInstrument.AcousticGuitarsteel://26
                    case (int)MIDIInstrument.ElectricGuitarjazz://27
                    case (int)MIDIInstrument.ElectricGuitarclean://28
                    case (int)MIDIInstrument.ElectricGuitarmuted://29
                    case (int)MIDIInstrument.OverdrivenGuitar://30
                    case (int)MIDIInstrument.DistortionGuitar://31
                    case (int)MIDIInstrument.GuitarHarmonics://32
                        this.Dispatcher.Invoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action(
                                delegate()
                                {
                                    guitarControl1.Send(e.Message);
                                }
                                ));
                        break;
                    case (int)MIDIInstrument.AcousticBass://33
                    case (int)MIDIInstrument.ElectricBassfinger://34
                    case (int)MIDIInstrument.ElectricBasspick://35
                    case (int)MIDIInstrument.FretlessBass://36
                    case (int)MIDIInstrument.SlapBass1://37
                    case (int)MIDIInstrument.SlapBass2://38
                    case (int)MIDIInstrument.SynthBass1://39
                    case (int)MIDIInstrument.SynthBass2://40
                        this.Dispatcher.Invoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action(
                                delegate()
                                {
                                    bassControl1.Send(e.Message);
                                }
                                ));
                        break;
                    default:
                        pianoControl1.Send(e.Message);
                        break;
                }
            }
        }
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            //context.Post(delegate(object dummy)
            //{

            textBox1.Text += "message = " + e.Message.Command + "; ID" + e.Message.Data1 + "\r\n";

                int PanelID = e.Message.Data1;

                for (int x = 0; x < 4; x++)
                {
                    for (int y = 0; y < 4; y++)
                    {
                        if (Convert.ToInt32(panele[x, y].Tag) == PanelID)
                        {
                            //if (e.Message.Command == ChannelCommand.NoteOn)
                            //    ZapalPanel(panele[x, y], Color.Orange);
                            //else
                            //    ZapalPanel(panele[x, y], Color.Black);

                            if (e.Message.Command == ChannelCommand.NoteOff)
                                panel13_MouseClick(panele[x, y], null);
                        }

                    }
                }
              //}, null);

            //SprawdzDroge_Click(null, null);
        }