Midi

From Buzztrax

Jump to: navigation, search

MIDI Input

To allow playing notes with midi keyboards we could add support for alsa-sequencer or jack-midi. The midi input could be used to:

  • play machines
  • record patterns
  • play wavetable entries

jack midi

We need to configure the routing:

  • have a drop-down list somewhere and lets the user choose where it should go to (wavetable, machine-1, machine-2, dynamic). dynamic would be sending it to what has focus : machine window or wavetable tab
  • add an optional JACK MIDI port for each machine which you can enable by right-clicking on machine (context menu)
  • add to machine property settings alongside midi/osc output routing, see midi overlays below
    • maybe too unflexible
  • another idea: define global "ensembles/profiles" which constitute midi note/parameter routing configurations
    • list with all entities able to receive midi signals (machines and maybe virtual midi targets for application functionality?)
    • complex mappings for e.g. keyboard split or different parameter ranges (lin/exp, abs/rel, ...) are possible in the long run
    • profile can be changed at once, per menuitem/hotkey or even midi event?

MIDI Output

jackmidi only makes sense if we use jack as the audiosink. We need to extend the jack gstreamer plugin to expose the jack-client.

jackmidiout/alsamidiout machines

  • we could have some internal gstreamer plugins (no pads)
  • they have note property and some proerties for CCs
  • we can use them like generators (add patterns, add them to sequence), but they would not be connected to anything

TODO

  • this probably needs several changes in the code (should they be presented like generators)
  • we might want to have fake level meters on them (just pulse on event)

midi overlays

  • we could also overlay midi-out on any generator
  • we would map the note to the machines note
  • we would assign parameter columes to CC (maybe with some min/max scale adjustment)
  • allows for easy swapping of buzzmachine/external synth playback
  • no "phantom" sink required
  • idea: add "Send via... (Midi/OSC channel)" to each machine property page? (same for receive?)

Transport sync

Support Us

Collaboration

GStreamer Logo
Become a Friend of GNOME
Linux Sound Logo
MediaWiki
Valgrind
GNU Library Public Licence
GNU Free Documentation License 1.2