It’s used for live transitions with a build in synchronized looper and several automated effects.
You can find the source code under GitHub - gitnob/Perfomix: Build-up audio effects with looper function. .
I’d need some testers to get some feedback, because I only used it for myself until now.
Attached you’ll find a teaser video which shows the main aspects of this lv2 plugin.
Until now I didn’t make an extensive tutorial about using the plugin, but if there is enough interest, it’ll come for sure.
Perfomix is a synchronized audio effects tool, which changes parameters of filters, modulators for a defined build-up time (automation). This produces some kind of transitions which are often used in electronic music production. This tool is meant to be a live performance helper.
It’s a similar tool like EZBot’s Performance mixer for the Octatrack - but for zynthian.
I developed this tool with puredata. The pd files then were precompiled to C files with the help of hvcc, which makes usage of the DPF framework. The final compilation results in the lv2 plugin.
I’ve made an installation script for zynthian where you can see, how the pd file is compiled to the lv2 plugin directly on zynthian.
If you use the installation script “install_Perfomix.sh” from the github page under scripts, please take notice, that the lv2 files will be installed under
$ZYNTHIAN_PLUGINS_DIR/lv2/Perfomix.lv2
The accompanying presets will be installed under
$ZYNTHIAN_DATA_DIR/presets/lv2/Perfomix_Default.preset.lv2
After installation you have to call “regenerate_engines_db.sh” and “regenerate_lv2_presets.sh” from the command line in zynthian’s terminal / or via ssh or via webconf.
If it is not working right out of the box, try to reboot first, because sometimes I also had to restart before I could use the plugin (although it should work). Good luck!
We will place zynthiverse before the relative consideration committee. They meet in an undisclosed tropical location at times of their own choosing to avoid security issues.
Frankly, I wouldn’t be hopeful, but if a little ‘influence’ were to be applied especially after your excellent overall contribution you might, and I do say might receive a grudging approval . . .
Of couse the lv2 contribution is sensational and the whole presentation is superb. Well done and thank you.
Hi @ToFF ,
just to be sure, did you “regenerate_engines_db.sh” (obviously) and “regenerate_lv2_presets.sh” and possibly reboot?
I had some problems from time to time…
And thanks for the hint, how you installed it; I have to rewrite the github installation process, because on zynthian it’s much more easier by just running the script “install_Perfomix.sh”
I tried it, after the first restart it didn’t seem to work. So to be safe I copied the preset ttl to zynthian_my_data/presets/lv2. I did the update presets again and rebooted. Now it works, but I don’t know what exactly worked
I have a request, could the loop duration be made longer? EDIT: Add values like 3,4,8,12,16 ?
EDIT2: The combination of Build-up/Length setting to 32 and Looper/Length value 2 will increase the total loop duration.
Well, in principal, it could be longer, but the memory size of the loop is dependent from rate (48000 Hz), tempo (lower tempo, higher memory consumption) and loop length.
To be on the safe side, I made a maximum of 2 bars (8 beats). For a stereo signal and 2 bars loop length at 20 bpm, this is 3 seconds per beat, hence 24 seconds to record, and thus 2x48000x24 = 2304000 bytes storage.
Because atm the plugin does not handle dynamic memory allocation in the code directly, I had to set an upper limit of memory, and hence, the looper is memory limited.
16 bars would mean another 8x higher memory consumption.
EDIT2: The combination of Build-up/Length setting to 32 and Looper/Length value 2 will increase the total loop duration.
To be more precise, there are two loop lengths, the buildup length (in number of beats, fx loop), and the audio loop (in bars).
Regards
beside falling asleep, this is an extreme case (probably for some ambient scores??).
I try to increase the maximum loop length to at least 4 bars, or better set a time limit to not be exceeded.
The buildup length is not a problem at all. What do you think, is a continuous beat length from 1 to 64 beats (8 bars) enough? What do you mean with buildup length of 4? It’s already there.
I adjusted some values of the loop lengths and the buildup length.
Loop length is measured in bars and ranges now from 1/64 to 8 bars, BUT the maximum of ~20 seconds must not be exceeded.
So at low bpm’s, check whether this limit will be reached.
@ToFF : checkout the repository with “git pull” in the (SRC)/pd/Perfomix folder to get the newest version.
Or even better, use the script in the repository under “scripts”.
The building needs hvcc (a python library), which is not actually under the virtual environment of zynthian. If you have any troubles, I’d be happy to help.
I updated the plugin, the README file on the github page, and also the looper length screen.
Especially the installation process should be very easy now (install the install_Perfomix.sh script into zynthians script/recipes directory).
The looper page now let you choose custom loop lengths by choosing the measure and the measure count.
For example, if you like to loop ofer 8 bars, you choose measure 1/2 and select measure count of 16. Or if you are working on a 9/8 loop - it’s possible.
Perhaps for @wyleu a nice playground (13/16 measure???)?
Maximum length of audio is still around 20 seconds, which should be big enough for short loops. The plugin does not want to substitute sooperlooper. Basic idea was to use it for transitions in electronic dance music, but it could be used for different purposes.
Tutorial will come.
I’d like to ask the developers, whether they would like to include this plugin into zynthian’s universe.
Hi,
I used the steps in the chapter Detailed plugin update on github to upgrade. The plugin work wery well. I will be testing its capabilities in the next few days.
I have a few notes about the installation itself. Before a successful reinstall, I encountered these failed attempts:
In chapter * Easy way installing into zynthian’s environment*:
wrong path in code: cd $ZYNTHIAN_SYS/DIR/scripts/recipes correct is cd $ZYNTHIAN_SYS_DIR/scripts/recipes
Script ./install_Perfomix.sh ends with an error:
./install_Perfomix.sh: line 7: syntax error near unexpected token `newline'
./install_Perfomix.sh: line 7: `<!DOCTYPE html>'
This is where it ended in error error: externally-managed-environment
And one last note. I don’t know why, but the commands
thanks for the correction in the README description.
Updated it.
The second error you described occurs, if you download the github which shows the code. You have to download the raw version of the install_Perfomix.sh script.
And one last note. I don’t know why, but the commands
regenerate_engines_db.sh
regenerate_lv2_presets.sh
Why is it not working? I don’t know. It works for me in the terminal and on the ssh console.
Perhaps, you have deactivated the virtual environment of zynthian’s python?
Reactivate it by using
And it’s already groaning under the weight of available options, Maybe recently enabled engines automatically into favourites?
This has prompted or renewed my interest in MIDI clock control from the GPS receiver I knocked together recently. It produces a MIDI note on the alternate second at the moment but it deserves to be rather more standard and controllable.
Time for me to make my GPS thingy produce a reference MIDI clock pulse for all this with lots of quarter note pulses and such like and the ability to control remotely from transport commands.