< Back to IRCAM Forum

Cluster-rules and ta-utilities libraries don't appear

Idem with om-cluster-rules from GitHub

Hi Jerome,

Have you downloaded cluster-engine? It’s a dependency.

Kjel

1 Like

I’ve just installed it and it works, many thanks !

Best,

Jerome

Nice, glad to hear it!

K

Hello everybody!

Thanks Karim and Kjel for the updates!

I’m with short time now to write a more detailed response, but I’ve made a few changes in the no-parallels method (with some commentaries):
no-parallels.lisp (2.1 KB)
Apparently it’s working.

Kjel, I’m no Lisp expert, but some changes is related about using the backquote context and I’ve found some explanations about it:

https://clhs.lisp.se/Body/02_df.htm
https://clhs.lisp.se/Body/f_eval.htmI

Other changes is about the fact that both Cluster-Engine and Cluster-Rules uses midi values instead of midicents.

It is also possible to invite Karim and me to contribute in the Git repository, if you think it is necessary.

About the fix-ompatch-rule function, I’m not sure if it will work here because it was created to deal more with OM patches (and still a experimental function). Maybe the “let” solution is better.

About the icon, in my opinion it’s fits perfectly.

Best,
Paulo

Hi, I am Torsten, the author of the libraries discussed here. (Just created a new Ircam Forum account.)

Any of these libraries should list its dependencies in the respective *.asd files.

These libraries should not depend on Opusmodus (after all, they can be compiled with SBCL, which cannot load Opusmodus either). Instead, only if loaded into Opusmodus then they do offer some optional Opusmodus interface (e.g., supporting its music representation in some cases).

However, it indeed looks like one of the melodic rules does indeed depend on another library.

This rule depends on fenv. Sorry that fenv is not listed in cluster-rules.asd. It happens to be included in my local copy, but I haven’t touched this code nor pushed any developments in quite some time.

Hi Paulo,

Thank you very much for clearing that up. I hadn’t come across the backtick comma notation but that will certainly come in handy. I’ve implemented your latest version of no-parallels.lisp in sources, and I’ve invited both you and Karim to be collaborators.

Kjel

Hi Torsten,

Nice to see you here! That’s good to know that the dependency of that melodic rule is on fenv and not opusmodus. I’ll see if I can’t integrate it into the repository in the same way we did with ta-utilities when I get a chance.

Kjel

Dear Kjel,

You are responding here to a longer message I meant to post here, but could not and instead sent to you privately (it contains multiple links to relevant sources and the forum software flagged it as a spam, because I just registered my account).

Feel free to share here my whole message. Thanks!

Dear tanders,

Thank you for your response.
I am in charge of the maintenance and development of OM, and trying to help the OM community with their request. They have shown some interest in your code, so i am trying to give them some help.

I was wondering about fenv, and i assumed it is some sort of BPF.
I will restore fenv in the source code and include it if possible.
Of course all credits will be mentioned concerning the code source.
What would be also great, is if you have some examples for this library (Cluster-Rules), ie, any resource, article, book, patches (if PWGL, under screenshots), because i believe it is rather complex.

Best wishes to you .

karim

Dear Karim,

Thanks for your message and for seemingly allowing more of my posts to get through. Here is for now just the rest of my original message.

Unfortunately, the best documentation for the Cluster Rules library is part of the PWGL version. That documentation demonstrates various rules with life musical examples.

Still, at least there is some reference documentation available in HTML format. Unfortunately, without working musical examples that documentation could at times be a bit tricky to digest. Feel free to ask, if there are questions.

To get started, also the included test file might help to a certain degree, but many examples in that file do indeed depend on Opusmodus (e.g., music input is stated in the concise Opusmodus music representation format OMN). Again, feel free to get in touch with questions.

Concerning the pitch representation: with Cluster Engine, in principle you should be able to use either MIDI notes or OpenMusic’s midicents. You should also be able to use floats or fractions (e.g., 60.5 for a middle C raised by a quarter tone). You just must use the relevant format in the pitch domains for Cluster Engine and define your custom rules accordingly. (However, be careful with too large domains when using microtonal domains, even if it might be tempting – domain size impacts performance.) In contrast to OpenMusic, PWGL supports MIDI floats for microtonal pitches and therefore Cluster Engine examples will usually use MIDI notes when using integers.

By contrast, many predefined rules of Cluster Rules (not Cluster Engine) do rely on the notion of pitch classes and they therefore assume MIDI notes, not midicents (internally they use modulus 12). However, MIDI floats should still work (modulus 12 of 60.5 is 0.5 etc.), but if you want to use this feature (largely untested) make sure you define your pitch domains accordingly.

Dear Paulo,

if PWGL, under screenshots

You might still be able to run PWGL (according to the PWGL facebook user group). If that is the case, could you perhaps share some screen shots of the Cluster Rules PWGL documentation?

The relevant patches are part of the PWGL part of the Cluster Rules source.

Thanks!

Best,
Torsten

any resource, article, book, patches

I published a number of papers on related subject matters, but often using different software. Anyway, here is an article specifically related to Cluster Rules.

Anders, T. (2016) Teaching Rule-Based Algorithmic Composition: The PWGL Library Cluster Rules. Journal of Pedagogic Development. 6 (1), 3–14.
Anders_2016_Teaching Rule-Based Algorithmic Composition.pdf (812.6 KB)

I think access to the actual tutorial patches would be even more helpful.

Dear Torsten,

Thank you a lot for these precious indications and links.
I will carefully read this. And yes have found the test lisp file. It should be possible to reproduce these in a VPL way, once the library is ready to use.

Best wishes

Karim

Beyond all this, there is also the Max library MOZ’Lib (GitHub - JulienVincenot/MOZLib: A set of pedagogical tools for MaxMSP, dedicated to introduce musicians to the world of computer-aided / algorithmic composition and programming.) which integrates Cluster Engine into a real-time context. AFAIK, Cluster Rules is already part of it too. However, I never used this environment.

Dear Torsten,
Yes, of course.

I’m sharing here the link:

Best,
Paulo

2 Likes

Thanks all!

fenv seems to be integrated into the codebase now and as such I’ve added follow-profile-hr and follow-timed-profile-hr to the loaded melody rules in OM. The library isn’t throwing errors and the boxes can be created. I haven’t gone any further in testing their functionality because I’m not 100% sure how they’re supposed to work. I’m going to look into the MOZLib in the coming days to see it includes any tutorial patches which we could transfer to OM.

Take care,
Kjel

1 Like