GithubHelp home page GithubHelp logo

spotlightkid / midiomatic Goto Github PK

View Code? Open in Web Editor NEW
22.0 5.0 4.0 907 KB

A collection of MIDI filter, generator and processor plugins

License: Other

Makefile 13.47% C 8.61% C++ 76.74% Shell 1.17%
midi midi-filter vst lv2 lv2-plugin dpf vst2

midiomatic's Introduction

MIDI-o-matic

A collection of MIDI filter, generator and processor plugins

Latest version Date of latest release MIT license

Plugins

All midiomatic plugins loade in Carla

MIDI CC Map X4 - Map a single input CC to up to four output CCs.

MIDI CC Recorder - Store received Control Change messages and replay them when triggered.

MIDI CC to Pressure - Convert Control Change messages into (monophonic) Channel Pressure (Aftertouch).

MIDI PB to CC - Convert Pitch Bend into Control Change messages.

MIDI Pressure to CC - Convert (monophonic) Channel Pressure (Aftertouch) into Control Change messages.

MIDI Sys Filter - Filter out MIDI System Messages.

Plugin Formats

The plugins are available in the following formats:

Compiling

Make sure, you have installed the required build tools and libraries (see section "Prerequisites" below) and then clone this repository (including sub-modules) and simply run make in the project's root directory:

$ git clone --recursive https://github.com/SpotlightKid/midiomatic.git
$ cd midiomatic
$ make

Installation

To install the plugins system-wide, run (root priviledges may be required):

make install

The usual PREFIX and DESTDIR makefile variables are honoured to change the prefix directory (default: /usr/local) and the installation destination (for distribution packaging).

You can also set the installation directory for each plugin format with a dedicated makefile variable.

  • LV2: LV2_DIR (<prefix>/lib/lv2)
  • VST2: VST_DIR (<prefix>/lib/vst)

Example:

make DESTDIR=/tmp/build-root PREFIX=/usr VST_DIR=/usr/lib/lxvst install

Use make's -n option to see where the plugins would be installed without actually installing them.

To install the plugins under your user's home directory, run:

make install-user

No special makefile variables are used in this case.

Prerequisites

  • Git

  • The GCC C++ compiler and the usual associated software build tools (make, etc.).

    Users of Debian / Ubuntu Linux should install the build-essential meta package to get these, Arch Linux users the base-devel package group.

  • pkgconf

Optional (only needed for checking plugins after building them):

License

This software is distributed under the MIT License.

See the file LICENSE for more information.

Authors

This software is written by Christopher Arndt.

Contributions by:

  • Jorik Jonker (MIDI Pressure To CC plugin)

Acknowledgements

Build using the DISTRHO Plugin Framework (DPF) and set up with the cookiecutter-dpf-effect project template.

midiomatic's People

Contributors

jonkerj avatar spotlightkid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

midiomatic's Issues

0.2.1 fails: error: unknown type name 'PortGroup' ; error: no member named 'group' in 'DISTRHO::Parameter'

./PluginMIDICCMapX4.hpp:142:40: error: unknown type name 'PortGroup'
    void initPortGroup(uint32_t index, PortGroup& pgroup) override;
                                       ^
PluginMIDICCMapX4.cpp:129:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:135:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:143:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:152:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:159:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:167:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:176:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:182:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:189:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:195:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:202:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:211:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:218:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:226:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:236:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:242:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:249:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:255:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

For some reason PortGroup only appears in *.patch files.

clang-12
OS: FreeBSD 13

Static allocation of ParameterEnumerationValue

From IRC:

strogon14: your PluginMIDISysFilter::initParameter leaks memory. please use static array instead of allocating memory there

I have to admit, my knowledge of C++ is very rudimentary, so I'm not sure what the correct way to do this is.

@falkTX: Any examples of the correct usage I could look at?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.