Exemplo n.º 1
0
        public void Run(IInputDevicePluginContext pluginContext)
        {
            var port = pluginContext.GetInput <int>("Listening port");
            var millisecondThrottle = pluginContext.GetInput <int>("Incoming Midi Throttle (milliseconds)");

            using (var listener = new OscReceiver(port))
            {
                var stopWatch = new Stopwatch();

                while (listener.State == OscSocketState.Connected)
                {
                    stopWatch.Stop();
                    stopWatch.Reset();
                    stopWatch.Start();

                    var packet      = listener.Receive();
                    var midiMessage = MidiMessage.FromOscPacket(packet);

                    pluginContext.SetOutput("Midi note", midiMessage.MidiNote.Note);
                    pluginContext.SetOutput("Midi octave", midiMessage.MidiNote.Octave);
                    pluginContext.SetOutput("Midi velocity", midiMessage.Velocity);

                    pluginContext.SignalOutputChange();

                    while (stopWatch.ElapsedMilliseconds < millisecondThrottle)
                    {
                        listener.Receive();
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void Run(IInputDevicePluginContext pluginContext)
        {
            foreach (var inputDevice in InputDevice.InstalledDevices)
            {
                inputDevice.Open();
                inputDevice.StartReceiving(null);

                inputDevice.NoteOn += (input) =>
                {
                    pluginContext.SetOutput("Velocity", input.Velocity);
                    pluginContext.SetOutput("Octave", input.Pitch.Octave());
                    pluginContext.SetOutput("Note", input.Pitch.NotePreferringFlats().Letter.ToString() + input.Pitch.NotePreferringFlats().Accidental);

                    pluginContext.SignalOutputChange();
                };
            }
        }
Exemplo n.º 3
0
 internal InputDevice(IInputDevicePlugin plugin, IInputDevicePluginContext context)
 {
     Plugin  = plugin;
     Context = context;
 }
Exemplo n.º 4
0
        public IProcessingPluginChain AddInputDevicePlugin(IInputDevicePlugin plugin, IInputDevicePluginContext startingContext)
        {
            var inputDevices = InputDevices.ToList();

            inputDevices.Add(new InputDevice(plugin, startingContext));
            InputDevices = inputDevices;

            return(this);
        }
Exemplo n.º 5
0
 public void Run(IInputDevicePluginContext pluginContext)
 {
     this.pluginContext = pluginContext;
     hook.KeyPress     += KeyPressHandler;
 }