Releases: ravelox/pimidi
Minor changes
This is just a release of the delta between v0.7.5 and v.0.7.8
Changes are:
Added code to handle broken packets on the input MIDI socket
Require presence of network.bind_address option in config file
Reverted default value for logging.log_file value to allow logging to stderr
Modified dump of config items to omit any items set to NULL
Minor config item fix
I've set a default name for the logging file as it's causing problems when it's set to NULL. The config items output was showing up as (null) for the file name and people have been copying those options and putting them into a config file ( that's my fault for not cleaning this up previously )
Connection to remote RTP MIDI service
This release introduces the ability to make a connection from raveloxmidi to a remote RTP-MIDI enabled service. This is useful to be able to make an automatic connection on startup.
This is enabled using the remote.connect configuration option which takes the name of the remote service to connect to.
Please read the README.md details as some configuration options may have changed.
I've also added service.ipv4 and service.ipv6 as options to enable or disable publishing or searching for services using those protocols. These take yes or no values.
In the background, there is a new thread created when a remote connection is made. This issues RTP-MIDI SYNC commands to the remote service. Nothing is done with the results but it acts as a keep-alive with the remote service. If the remote end disconnects ( sends a END (BY) command ), the thread is stopped. There is no attempt to re-establish connection.
Testers needed: Remote Connection
This is an experimental release
This release introduces the ability to make a connection from raveloxmidi to a remote RTP-MIDI enabled service. This is useful to be able to make an automatic connection on startup.
This is enabled using the remote.connect configuration option which takes the name of the remote service to connect to.
Please read the README.md details as some configuration options may have changed.
I've also added service.ipv4 and service.ipv6 as options to enable or disable publishing or searching for services using those protocols. These take yes or no values.
In the background, there is a new thread created when a remote connection is made. This issues RTP-MIDI SYNC commands to the remote service. Nothing is done with the results but it acts as a keep-alive with the remote service. If the remote end disconnects ( sends a END (BY) command ), the thread is stopped. There is no attempt to re-establish connection.
This is experimental because I have tested this with Apple MIDI (Logic Pro X) and FL Studio 11 demo version but cannot get Logic Pro X to handle the notes I'm sending. A trace shows that MacOS is responding with a FEEDBACK (RS) command when notes are sent but Logic is not registering that the note has been received. If I connect FROM the MacOS machine to the same raveloxmidi process and send a note from the Pi, everything works fine. Additionally, if I connect from raveloxmidi to RTPMidi on a Windows machine running FL Studio 11 and send a note, FL Studio registers that the note has been received.
I'd be grateful if other people could confirm that it's Apple that's the problem.
As always, please let me know if there are any major issues with this release.
Minor config file read fix
This is a very minor fix to address an issue where the config file is not read correctly if the last line in the file does NOT contain a trailing CRLF.
Thanks to @qzic for raising this.
IPv6 Support on master
This release merges the changes from the experimental branch to master.
All the test scripts in the python/ directory are now IPv6 aware. They all take an IP address, either IPv4 or IPv6 format, for the destination. The default is 'localhost'.
The script status_send.py has been renamed to send_status.py to be more consistent with the send_quit.py script.
IPv6 support
This release provides IPv6 support. The option network.bind_address can take either an IPv4 or IPv6 address and will bind accordingly. If :: is specified, this will allow connections over both IPv4 and IPv6.
Because this is becoming a FAQ, if you are finding that the client connecting to raveloxmidi is reporting issues trying to connect to an IPv6 address and you do NOT have IPv6 networking, you need to edit /etc/avahi/avahi-daemon.conf
and set:
use-ipv6=no
publish-aaaa-on-ipv4=no
Obviously, if you want to use IPv6, both those options should be set to yes
You will need to restart Avahi for those changes to be picked up.
Dump config
This minor release introduces a new option -C (--dumpconfig) which will dump the current config to stderr when running in any logging mode.
Query Status and Shutdown Daemon
This release gives the ability to do a simple heartbeat check over the port defined by network.local.port. The python script python/status_send.py tests this. By sending the string "STAT" to the port, the daemon will return OK if alive.
Also, the same port can be used to shut down the daemon. The python script python/send_quit.py tests this. By sending the string "QUIT" to the port, the daemon will return "QT" and shutdown.