New plugin for Euclidean Rhythms

It’s been asked before, how to produce Euclidean rhythms in Ardour. Unfortunately I didn’t make it before it was closed, last November.

Anyway, for the benefit of the community, I’ve just released the first version of my own LV2 plugin to generate Euclidean rhythms. I hope ye all find it useful, and have fun with it. Comments, suggestions, constructive critique, always welcome.

The suggested pattern of use is:

  1. Create a MIDI track. Use some drumkit as the instrument (I recommend any of the excellent x42 AVL drumkits).
  2. Create several MIDI buses, with no instrument.
  3. Add an instance of the Euclidean rhythms plugin in each of MIDI buses.
  4. Route the output of each MIDI bus to the MIDI track with the drumkit.
  5. Record, and enjoy!
4 Likes

Hello and thanks for sharing! Will definitely package this for openSUSE.

I think your README.md is very thorough. The only thing which I think would help is a video of the plugin running, since it’s not really immediate concept and it would be easier to hear something (since we’re talking about music).

1 Like

Cool, thanks for releasing the plugin!

2 Likes

Thank you very much for the suggestion, @fretboard

I’ve recorded a short demo of the plugin. I may try to record more videos later, especially as new features are added.

Kind regards.

1 Like

Good work… but I couldn’t find anywhere how to install this plugin in linux.

Thank you! Now it’s much clearer and it’s indeed a very useful. We already packaged it for the multimedia:proaudio repo on openSUSE, I can confirm that it works there, too.

1 Like

I manage to build and install, on arch linux. Very nice, very useful. Thanks.

1 Like

Thanks a lot!

Do you think it’s possible for you to mention that in the project’s wiki? That would be appreciated.

Kind regards.

That’s very cool.

On github I’m only packaging and distributing the source code, because the particulars of binary production and installation are distribution-specific.

I’m on arch-linux too. I’d love to see the project contributed to the distribution (to the AUR at first, I guess). For your installation, did you create a PKGBUILD file? If so, would you mind sharing it with me, or contributing it to the AUR, if that’s not much to ask?

Cheers!

No PKGBUILD…Just meson setup builddir, ninja, meson test, meson install… I’m waiting for arch distro package too… nice work…

Thanks, I got it built fine on Ubuntu 22.04. The install location is unusual (/usr/local/lib/x86_64-linux-gnu/lv2). It would make more sense for it to be /usr/lib/lv2 or if you can, /usr/lib/lv2 when the command “ninja install” is run as root and ~/.lv2 when it’s not. These are the usual locations for lv2.

Linux convention is that self-compiled binaries or any non-distribution binaries install into /usr/local and the top level /usr directory is reserved for binaries from the distribution.

Linux Filesystem Hierarchy Standard chapter 4.9: /usr/local : Local hierarchy

Then /usr/local/lib/lv2 instead.

Agree, /usr/local/lib/lv2 would be the appropriate place. I had emphasized the mention of /usr/lib/lv2 but failed to highlight that the original path is indeed unusual for the inclusion of the architecture name in the path.

If you are asking if you can mention it in your wiki on Github, sure thing!

Oh, I was trying to lure you into collaborating even more. Cheeky, I know. Sorry.

I’ll add the mention, no worries. This is the right link, right?
https://software.opensuse.org/package/lv2-euclidean-rhythms

Update: I’ve added the link. OpenSUSE is the first distribution for which there is a package. Thank you!

1 Like

@ccaudle, @Largos:

Thanks for the insight. I’ve added an environment file to the project, for meson to use. Due to the plugin’s lifecycle, that change will reach develop and then when enough features have been coded, will reach master and a release will be cut.

In the meanwhile, perhaps ye would like to add the option --libdir=/usr/local/lib to meson setup?

Oh, don’t worry, I just was uncertain about what you were asking! We already promoted your plugin on our Telegram group and as for our wiki, we usually share information about configuration so we really don’t mention single programs often, but if the chance comes, sure, we’ll mention your plugin! :smile:

Btw, if you want some publicity you can try posting over at Linuxmusicians in the Linux Music News section :wink:

1 Like

With the plugin functional (even if in early stages), I’ve discovered that its use from Ardour doesn’t feel very natural. It has no inputs (signal or MIDI, though it reads time position from the host), and having to create several buses just to feed one instrument feels anomalous.

So a question for more experienced users of Ardour than I am: since Ardour is my DAW of choice, and I would like to follow the Ardour way, which would be a good use pattern for this plugin? In other words: what should I change in the plugin to make Ardour users more comfortable using it, and getting more benefit from it?

what should I change in the plugin to make Ardour users more comfortable using it, and getting more benefit from it?

I think you are correct that the current requirement to create multiple MIDI busses to host different instances is a barrier to using the plugin.

I’m still not positive how I would use it, but having the plugin function as a single, MIDI-generating plugin “above” the drum instrument in the MIDI track seems like the most natural use:

  • The UI for the plugin would need to allow specifying multiple rhythms.
  • Ideally, each rhythm would map to a single MIDI note (i.e., C1 for the bass drum, D1 for the snare, etc.).
  • Or perhaps a given rhythm would select among multiple MIDI notes (via round robin, random, or some kind of weighting)?
  • Being able to set a MIDI channel for each rhythm might also be useful, especially if the composer was thinking to generate non-percussive patterns (horn hits, arpeggios, etc.) by putting the plugin in front of a multi-channel synth like Yoshimi.