AE30 Player
Section
Mix.install([
{:music_build, github: "bwanab/music_build"},
{:music_prims, github: "bwanab/music_prims"},
{:midifile, github: "bwanab/elixir-midifile", force: true},
{:better_weighted_random, "~> 0.1.0"},
{:midiex, "~> 0.6.3"}
])
out_ports = Midiex.ports(~r/FluidSynth/, :output)
#fluid = Midiex.open(List.first(out_ports))
alias Midiex.Listener
defmodule D do
def my_msg_hander(midi_msg) do
IO.inspect(midi_msg.data)
end
end
# Get the first MIDI input port
input_port = Midiex.ports(:input) |> List.first()
# Start a lister for this MIDI input port
{:ok, listener} = Listener.start_link(port: input_port)
# Create a handler than inspects the MIDI messages received:
Listener.add_handler(listener, &D.my_msg_hander/1)
Listener.unsubscribe(listener, input_port)