Replies: 1 comment
-
By the way, see also #7 about including configuration dialogs in the plugins |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
You may exchange VMPK for Drumstick Multiplatform MIDI File Player or some other drumstick-rt based program.
The thing is: any program using Drumstick::RT MIDI input/output is using a backend that is built as a Qt plugin. There are some in-tree backend plugins, but nothing forbids to implement and distribute other out-of-tree plugins, implementing either Jack MIDI or anything else.
The other thing that I don't want is more modules inside the Drumstick repository. It is already big enough. What I want is to make it thinner, as for instance removing the sonivox library sources. Please don't ask for a merge request adding more modules to Drumstick.
Well, then. How to start? First, go to the drumstick-rt-outoftree project page, and press the "Use this template" big green button to generate a new repository based on the template. Now clone locally the new repository and start hacking!
If you want to create only a MIDI IN plugin, then remove the "dummyouyput" class. If you want a MIDI OUT plugin, then remove the "dummyinput" class. Rename the Dummy classes, and write your implementation. The minimal required functionality for the MIDI IN plugin (extending the drumstick::rt::MIDIInput class) is to emit the signals corresponding to each MIDI event type:
drumstick/library/include/drumstick/rtmidiinput.h
Lines 120 to 190 in 93a41f2
In the MIDI OUT plugin (extending the drumstick::rt::MIDIOutput class), you need to implement the public slots:
drumstick/library/include/drumstick/rtmidioutput.h
Lines 171 to 235 in 93a41f2
You may implement backends for anything related to MIDI. For instance, MIDI synthesizers. By definition, a MIDI synthesizer is something that accepts MIDI events and produces audio output. This should be implemented as a MIDI OUT plugin: The MIDI events are provided by Drumstick::RT, and you need to provide some kind of audio output. You may find an example in the Drumstick::RT Out-of-Tree FluidLite Plugin. Other crazy ideas for Drumstick::RT plugins...
Output:
Input:
Both Input and Output:
Happy hacking!
Beta Was this translation helpful? Give feedback.
All reactions