Skip to content

mcascone/midi-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

midi-plugin

midi utility plugin

Keep state of various params to make more advanced decisions about what messages to send.

Current functionality ideas

Feature: Smart CC increment/decrement

Intercept midi and increment/decrement a CC message's Value by a set amount (default 1), then pass on to output.

  • Pretty much the same idea as the existing PC increment/decrement function
  • The inc/dec value itself is midi controllable
  • disabled just passes input to output

This could be done in the MIDI Captain's Super Mode, using the keypress feature, but only in one direction. This plugin allows incrementing/decrementing CC values without statically configuring them in the captain (or any other device).

Design

My current thinking is to intercept a single, static CC incoming from a controller.

  1. Configure the trigger CC.
  2. If it's not been set before:
    • Save its current value, or set a starting value, adjustable, midi controllable.
    • If it has been previously set: get the saved value (state).
  3. Increment the value by a given integer. Default 1, adjustable, MIDI controllable.
    • RANDOM option
  4. provide a RESET function to start over, unset state; midi controllable
    • maximum value of 127. reset to 0 at 128. reset value same as start value. Max value adjustable, midi controllable.
  5. same pattern for decrement.

Feature: Auto Ramp

Accept a single CC as a trigger to sweep a CC value up or down.

  • Configurable speed.
  • Looping option.
  • Random option.
  • Waveform options (sine, square, triangle, etc)
  • Max Value configurable, default 127/0
  • Stop/Reset options:
    • Reset to 0 when stopped
    • Ramp to max when stopped
    • Stay at current value when stopped
    • Ramp up/down to 0 (or max) when stopped (configurable ramp speed)

Feature: Timed/Repeat Send

Sends a CC/PC/etc at timed intervals.

  • Configurable for one-shot or looping behavior.
  • Configurable number of repeats.
  • Can be fed into any of the other features (auto-increment, auto-ramp, etc)
  • Can be timed or triggered on CC input.60646

Other Tools

This might be implementable in another form using https://github.com/gbevin/ReceiveMIDI and https://github.com/gbevin/SendMIDI.

These CLI apps allow scripted MIDI messaging and state management.

About

midi utility plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages