Midimonster Versions Save

Multi-protocol control & translation software (ArtNet, MIDI, OSC, sACN, ...)

v0.6

2 years ago

After a pretty long time in development, this release introduces three new backends: The wininput backend allows users to use mouse, keyboard and joysticks as input on Windows. It can also be used to remotely control the mouse and keyboard state. The visca backend connects to motorized cameras (known as PTZ cameras) and allows them to be controlled remotely. The mqtt backend provides read and write access to the popular message queueing telemetry transport protocol, which is used in a wide variety of projects and applications.

The configuration parser now allows list-type multichannel specifications. Additional example configurations have been added to the distribution. Due to internal API changes, backends built for previous releases are incompatible with this release.

The maweb backend will now retry connections after being disconnected. The sACN backend has received improvements to the multicast receive functionality. The sACN and ArtNet backends have been outfitted with a basic detect functionality. The ArtNet backend supports a new option to ignore the output rate limit. The Lua and Python backends now support additional methods to gather the list of all channels currently mapped to them. The MIDI backends (midi, winmidi, jack, rtpmidi) have gained the ability to receive and send extended parameter numbers (RPN/NRPN), which allow for finer grained control, as well as support for the program change control. The evdev backend will now terminate the core when losing the connection to an input device. Device name matching for the evdev backend has been changed to allow for true prefix matching. The maweb backend has received fixes to the core interface, fixing a bug that required the channels to be specified in order.

v0.5

4 years ago

This release includes the new RTP MIDI backend, which allows users to interact with a wide variety of devices communicating MIDI over the network. For most backends and functionality, this release serves as possible release candidate and baseline for version 1.0.

The ALSA MIDI backend has removed support for the deprecated early channel specification syntax. The OSC backend has been extended to allow reception of OSC bundle data. The maweb backend now supports specifying multiple fallback remote addresses and will periodically try to reconnect to any of them when a connection fails. The Lua backend now supports routing all channel events to a single function using the default-handler functionality. Additionally, a cleanup handler function can be registered to be run when the MIDIMonster is shut down. The Lua output API can now be called during the initial parse step, output values are cached and routed as soon as processing starts. Channel handlers can now access the previous value of the channel using the input_value API, with the current value being the argument to the handler. Lua functions can now be run as thread-like coroutines, allowing for cooperative multithreading. The Python backend now supports routing all channel events to a single function using the default-handler functionality. Additionally, a cleanup handler function can be registered to be run when the MIDIMonster is shut down. The Python output API can now be called during the initial parse step, output values are cached and routed as soon as processing starts. Channel handlers can now access the previous value of the channel using the inputvalue API, with the current value being the argument to the handler.

The OpenPixelControl, ArtNet and sACN backends have received bug fixes and performance improvements.

All multi-platform backends have received updated error-reporting code and should now output useful socket-level error messages on Windows as well as Linux and OSX.

The core has received fixes to the initial configuration validity checks and will now output basic routing performance information on startup. The global channel store as well as the core routing facilities have been optimized for better performance with large channel mapping sets. Rudimentary deadlock elimination was put into place to prevent misconfigured backends from locking processing entirely.

The configuration parser now supports the [include file.cfg] directive to recursively include configuration files.

v0.4

4 years ago

This release introduces the project Logo, which is also used as the executable icon on Windows. It contains two new backends, the OpenPixelControl backend for interfacing with intelligent pixel strips and clients written therefor, and the Python backend, allowing users to implement custom logic, ranging up to backend-like extensions, using the Python 3 programming language.

Configuration read from files can now be extended or overridden from the command line, using the -i and -b arguments to override instance and backend configuration parameters, respectively. The Windows build will now keep the console window alive until a key is pressed if it is exiting as the last process in the console (for example, if started from a file manager). Some error messages that reported wrong or misleading information due to platform differences have been corrected. Due to internal API changes, backends built for previous releases will need to be rebuilt to work with this one.

The sACN and ArtNet backends were outfitted with rate-limiting logic according to their respective specifications, which additionally should aid performance when translating multiple universes. The Lua backend gained access to some new API calls and received some bug fixes, as has the Windows MIDI backend. The MA Web backend can now be configured to output fewer warnings while in operation.

v0.3

4 years ago

"The last release of the decade" This release contains bugfixes to the winmidi, jack, maweb, evdev and sacn backends, as well as the new 'local' option for descriptors of the sacn backend. It updates several example configurations and introduces a layering demonstration. This release introduces command-line argument parsing, initially by providing a '-v' parameter for querying the binary version. Due to internal API changes, backends built for previous releases are incompatible with this release.

v0.2

4 years ago

This release mostly contains improvements to the build process encountered during initial packaging efforts. Core and backend functionality are on the same level and built from the same sources as the previous release.

v0.1

4 years ago

This tag serves as the baseline for future releases and packaging efforts. It is thought to be reasonably stable and feature-complete for general usage with the included backends.