Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pedrolcl/drumstick-rt-outoftree
Drumstick::RT Out of Tree Template Plugin
https://github.com/pedrolcl/drumstick-rt-outoftree
drumstick input-output midi plugin qt template
Last synced: about 1 month ago
JSON representation
Drumstick::RT Out of Tree Template Plugin
- Host: GitHub
- URL: https://github.com/pedrolcl/drumstick-rt-outoftree
- Owner: pedrolcl
- License: gpl-3.0
- Created: 2022-07-14T13:59:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-07-16T11:08:53.000Z (over 2 years ago)
- Last Synced: 2023-03-08T19:42:56.202Z (almost 2 years ago)
- Topics: drumstick, input-output, midi, plugin, qt, template
- Language: C++
- Homepage:
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Drumstick::RT Out-of-Tree Template Plugin (drumstick-rt-outoftree)
This project is a template/example for building [Drumstick::RT](https://github.com/pedrolcl/drumstick) plugins, as an out-of-tree [^1] project.
There are already a number of [in-tree Drumstick::RT plugins](https://github.com/pedrolcl/drumstick/tree/master/library/rt-backends), the Dummy ones among them. Nothing forbids to build and distribute other independent plugins, and this project may be a template for that projects.
The rules for creating and deploying Drumstick::RT plugins are the same as other [Qt Plugins](https://doc.qt.io/qt-6/plugins-howto.html#the-low-level-api-extending-qt-applications).
[Deployment rules](https://doc.qt.io/qt-6/deployment-plugins.html) mandate that plugins must share the same build and runtime Qt library major version with the applications using the plugins, and not be built with a higher minor version.A plugin may implement MIDI OUT or MIDI IN functionality for applications. To do so, the plugins must extend either the [MIDIOutput](https://github.com/pedrolcl/drumstick/blob/master/library/include/drumstick/rtmidioutput.h) or the [MIDIInput](https://github.com/pedrolcl/drumstick/blob/master/library/include/drumstick/rtmidiinput.h) interfaces.
You may want to read also the [documentation](https://drumstick.sourceforge.io/docs/index.html) about [Drumstick](https://drumstick.sourceforge.io/) and some of the utilities and examples.
Two plugins are included here: `drumstick-rt-dummy-in` and `drumstick-rt-dummy-out`, that implement the `MIDIInput` and `MIDIOutput` interfaces respectively, but without functionality.
When installed, both plugins should be found and used by any Drumstick::RT based application, like [VMPK](https://vmpk.sourceforge.io) and [dmidiplayer](https://dmidiplayer.sourceforge.io).
External RT plugins may have their own configuration dialogs and be developed and distributed like the in-tree ones. The same rules and functions for configuration dialogs should apply to them.
The plugins including an internal configuration dialog should expose the property:
Q_PROPERTY(bool isconfigurable ...)
And also a public slot with this name and signature:
bool configure(QWidget *parent);
Use this template to write your own plugins and enjoy!
[^1]: Located outside of a source tree. Antonym: in-tree. [(Definition source)](https://www.wordsense.eu/out-of-tree/). This software engineering term was originated in the Linux kernel development community, [probably as a pun](https://www.collinsdictionary.com/dictionary/english/out-of-your-tree).