New plugin for Euclidean Rhythms

It could, for sure. However, I don’t think many users would be happy to modify the configuration of the plugin. I think that, if this choice is to made available to users, it should be available in the UI, easy for them to reach.

1 Like

First of all, I want to say that you did a great job, this plugin is useful and can be used as it is, and I don’t want to start any controversy on this topic.
To answer your question, with this information, the plugin would give the user the feeling of being in the same time and space as the DAW host, i.e. Ardour.
Example: In a new session, the user first makes the general settings of the new composition, such as time signature, bpm, song structure, etc… then adds bus and tracks… then euclidean plugin…
When the plugin starts, if for example I set the time signature to 9/8, the plugin would already know and set the beats parameter n=9. The user then sets his parameter onsets k as he likes, thus having a computation E(k, 9). In other words, it would be a correlation with general time signature; in a band, if everyone plays a 9/8 song, why would the drummer play 4/4? As a desktop application, it can work like that (plus a graphic feedback of onsets playback over beats), but as a plugin in a DAW, I think it should know the value of the numerator (number of beats) set in the time signature.

All meters above are given for example. It can be any other time signature.

Euclidean rythms and western time signatures do not really go together.

Also, while it is a common misconception, “9/8” does not really mean “9 eighth notes in a bar”. Western compound time signatures (n*3 / 8) have a very specific semantic, one which Ardour does not honor at present.

I see what you mean now, thanks for pointing it out.

When dealing with several simultaneous generators it becomes clearer that, at least from a strictly musical experimentation perspective, not tightly tying the beats (nor the onsets) to what the DAW uses is desirable. That’s something that I got as a takeaway from the example that @paul linked to, above: Tero Parviainen’s browser-based implementation.

However, I still see value in reading that property from Ardour, but mainly to provide the user with a streamlined use case. Taking the default value for beats from the DAW the moment it’s instantiated, but letting the user change it at their heart’s content afterwards. Would that suffice, from your point of view?

1 Like

You got me to learn something new today, thanks!

Exactly, it’s perfect! Thanks for understanding!

1 Like

I don’t think I ever fully grasped your argument here. Are you just saying that whatever number of beats, it should be an integer number of measures, and not just an arbitrary number of beats? If so that seems an entirely sensible way to phrase it, and is actually what I meant earlier, but probably not communicated clearly.

Yes. So, the time signature times the number of measures/bars gives the total number of beats for the euclidea algorithm to work with, and the user controls the number of actual played hits within that time.

Example: time signature is 3/4, so possible total number of beats is 3, 6, 9, 12 etc; actual number of played beats is whatever the user chooses (up to the total).

1 Like

For anyone interested, I’ve added a parameter to the plugin, with the (integer) number of bars that the euclidean pattern is going to occupy.

I hope that captures what’s been discussed so far.

If interested, you can checkout/pull the branch develop (which is the default anyway), and compile/install. Feedback would be great to have.

For what it’s worth, I’ve created also a discussion section in the github page of the project. I like this forum, but I admit that this is becoming only tangentially related to Ardour.

4 Likes

So a directly Ardour related question, which would apply to any generative plugin.
How do you get Ardour to supply the clock and route MIDI data with no audio data?
I installed the plugin in a MIDI track, added a synth plugin, set the parameters to something I wanted to try, hit play, and nothing. I realized that Ardour was not moving the playhead because there was nothing to play, so I armed the track for record and hit play, and then everything started running.
Is there a way in Ardour to have the clock run so that MIDI generators (or beat synchronized effects plugins) can still get the time pulse, but the playhead is not moving yet? I have never seen that, but I do not typically use Ardour for MIDI, so may have missed something.

Was there ever a conclusion to the thread about having multiple generators drive a single synth plugin? I added a second euclidean.lv2 plugin to a MIDI track, but cannot see a way to get the MIDI data from the second plugin merged with the data from the first plugin. Only the plugin at the bottom of the chain gets connected to the synth plugin. Have I missed anything there, or would the plugin need to have a MIDI input, and merge the incoming data with the generated data within the plugin?

Is multiple MIDI busses currently the only viable way to run multiple plugins connected to the same synth?

Edited to add: I realized that multiple MIDI tracks with euclidean plugins feeding a single MIDI bus with a synth plugin felt much more natural than multiple busses with the bus outputs connected to a track. Maybe it is just because I was exposed to analog mixers first, but multiple busses feeding one track just feels wrong to me.

To the best of my knowledge, that’s just not possible. I ended up doing exactly what you did: I arm the instrument for recording, and record events every time.

For development that’s even useful, because I can see the patterns being generated, not just listen to them. Ardour is a DAW to create music (I know: audio in general, but bear with this incipient musician), so I can see the reason why asking it to play something that doesn’t exist may be a little over the line.

I agree. That actually was my first approach, then I realised that I can’t arm a bus for recording. For that to work I would need to record each track independently, and that implies that I have a whole MIDI track for a single pitch (unless automation is used). Also, I don’t know why yet, but Ardour only seems to record to MIDI tracks for which there is an input. Generational ones, as this one, don’t have one, so my tracks are always empty. :cry: Perhaps @paul can provide some insight about this particular?

Anyway, regarding your other question, about having multiple generators drive a single synth (or sample, I’d like to add) plugin: a conclusion hasn’t been reached, but I’m leaning strongly in that direction. My main problem is time, you see: I’m a software developer turned musician, turned software developer for this particular purpose. But as soon as I can I’ll tackle that possibility.

In general I would say that Ardour is not designed as a generative environment, we leave that to plugins that you can load in various places (e.g. Rack Pro, Cardinal), and/or using MIDI clips on the cue page.

Making Ardour be “more generative friendly” is a worthy cause to me, but likely needs thinking about more carefully before doing anything.

MIDI tracks just record MIDI, so it makes sense that a MIDI track would not record anything with no MIDI data coming in. You might be able to select a custom record point and record the output of the plugin, but I’m not sure how to do that on a MIDI track.
I just added an audio track and routed the output of the MIDI bus with synth plugin to the audio track. That is what I would do if I had sent the MIDI data to a hardware synth instead of a plugin, so I didn’t think much of needing to do that.

I’ve just released version 0.1.2:

This release contains a significant amount of bug-fixing, standards-compliance and reliability in general. Of special interest:

  • The length of notes is no longer zero, it is now one MIDI tick.
  • Turning off notes matches now the note being played, even if parameters are changed on-the-fly.
  • Installation now works for users’ home directories.

This approach is very good, thank you for bringing it to my attention. My next step at this point is writing a nice user interface for the single-generator plugin as it is. Then, I will re-assess the need to have a multi-generator one, taken into consideration this piece of advice you give.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.