Powered by AppSignal & Oban Pro

AE30 Player

livebooks/AE30Player.livemd

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)