Cabbage Logo
Back to Cabbage Site

Anykey - a MIDI helper

Admittedly, I am not a good keyboard player. Especially, I am lacking co-ordination of my hands, so if I concentrate on playing the right notes on one hand I play rubbish on the other. A couple of years ago I found a stand-alone programme ‘Tapper’ written by Stephen Malinowski (http://www.musanim.com/Tapper/) which replaces ‘taps’ by the player by notes from a score. It worked quite nice for me but as a stand-alone programme it only had the pre-programmed piano sound. Using Cabbage, I could write a similar helper as VST3 effect plugin acting on the MIDI stream in a a DAW. In that way any VST instrument can be played. It also connects to a sustain pedal to emulate the pedalboard of an organ. The features are described in detail here: Anykey.pdf (71.5 KB) . The csd, vst3 files and an example for Bach’s BWV 639 can be found on my gitlab repository: https://gitlab.com/RZ-FZJ/rz-cabbage-recipes.

Thanks for sharing :slight_smile:

Aaron Andrew Hunt has made a pro-grade version of Tapper (it’s what I use these days)
https://hpi.zentral.zone/miditapper
Here’s a playlist of performance I made using Tapper (either my original version or Aaron’s updated one):
https://www.youtube.com/playlist?list=PLtj_HurkS7Zz2UpcHQrdiOdoJE6IC9RpM
Stephen

@Stephen_Malinowski: Amazing development! Somehow I ovelooked the pro version. I was still using the original one. I will try the pro version out. I guess with the ‘rubato’ sequences it will address exactly the problem I had with the original version of Tapper.

Looks and sounds interesting! :smile:

I experienced some issues with the ‘keys’ files not being found when starting the VST from a DAW. In the course of resolving this I set their standard location to a subdirectory ‘Anykey’ below the directory where the vst3 (or csd) file is started from (instead of the directory itself). Changes are pushed to https://gitlab.com/RZ-FZJ/rz-cabbage-recipes. BTW, the gitlab repository will be organised with separate directories for the different instruments to avoid cluttering of the top level.

Was it a relative path issue? All paths should now be absolute. You should be able to use the CSD_PATH reserved channel to get the absolute path of the csd and work back from there.

Naively, I did not use any path in an ftload command. Most of the time this worked because the path where csound looks for the file table seems to be the path where the csd file resides by default. But sometimes as a plugin from REAPER it did not find the files, presumably because the path was changed by the DAW. I could fix this by going to absolute paths constructed from CSD_PATH - as you eplained to me: Problem with ftload from Cabbage. When fixing this, I added a subdirectory in the path so that the keys files do not clutter the main (VST or csound) directory.

Csound, when run from the command will change the current directory to that of the .csd, and Cabbage used to do this too, but as you say, some DAWs would then change to a different directory and mess things up. So in recent versions of Cabbage absolute file paths are a must, and will help avoid any potential problems across DAWs :+1: