Module: Webmidi::Network::OSC

Defined in:
lib/webmidi/network/osc.rb

Defined Under Namespace

Modules: Encoder Classes: Bridge

Constant Summary collapse

DEFAULT_MAPPINGS =
{
  Webmidi::Message::Channel::NoteOn => "/midi/note/on",
  Webmidi::Message::Channel::NoteOff => "/midi/note/off",
  Webmidi::Message::Channel::ControlChange => "/midi/cc",
  Webmidi::Message::Channel::ProgramChange => "/midi/program",
  Webmidi::Message::Channel::PitchBend => "/midi/pitch_bend",
  Webmidi::Message::Channel::ChannelPressure => "/midi/pressure",
  Webmidi::Message::Channel::PolyphonicPressure => "/midi/poly_pressure"
}.freeze
DEFAULT_REVERSE_MAPPINGS =
{
  "/midi/note/on" => ->(args) { Message.note_on(args[1], velocity: args[2], channel: args[0]) },
  "/midi/note/off" => ->(args) { Message.note_off(args[1], velocity: args[2], channel: args[0]) },
  "/midi/cc" => ->(args) { Message.control_change(args[1], args[2], channel: args[0]) },
  "/midi/program" => ->(args) { Message.program_change(args[1], channel: args[0]) },
  "/midi/pitch_bend" => ->(args) { Message.pitch_bend(args[1], channel: args[0]) },
  "/midi/pressure" => ->(args) { Message.channel_pressure(args[1], channel: args[0]) },
  "/midi/poly_pressure" => ->(args) { Message.polyphonic_pressure(args[1], args[2], channel: args[0]) }
}.freeze

Class Method Summary collapse

Class Method Details

.bridge(midi_input: nil, osc_host: "127.0.0.1", osc_port: 9000, mapping: :default) ⇒ Object



31
32
33
# File 'lib/webmidi/network/osc.rb', line 31

def bridge(midi_input: nil, osc_host: "127.0.0.1", osc_port: 9000, mapping: :default)
  Bridge.new(midi_input: midi_input, osc_host: osc_host, osc_port: osc_port, mapping: mapping)
end