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(); } } } }
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(); }; } }
internal InputDevice(IInputDevicePlugin plugin, IInputDevicePluginContext context) { Plugin = plugin; Context = context; }
public IProcessingPluginChain AddInputDevicePlugin(IInputDevicePlugin plugin, IInputDevicePluginContext startingContext) { var inputDevices = InputDevices.ToList(); inputDevices.Add(new InputDevice(plugin, startingContext)); InputDevices = inputDevices; return(this); }
public void Run(IInputDevicePluginContext pluginContext) { this.pluginContext = pluginContext; hook.KeyPress += KeyPressHandler; }