tmhglnd / mercury

A minimal and human-readable language and environment for the live coding of algorithmic electronic music.

Home Page:http://www.timohoogland.com/mercury-livecoding

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Multiple ring methods in same line

GuillemGongora opened this issue · comments

It could be useful to save space to be able to choose transformational ring methods to be called right after generative methods. For example:
ring notes spreadInclusive(4 0 3)
ring notes palin(notes)
to
ring notes spreadInclusive(4 0 3) palin(notes)
or something similar.
There might be a better option to call for the spreadInclusive() generated ring in the palin().

commented

Yeah totally agree! I'm actually working towards a parser where you can have nested functions, but this may take a bit longer. Maybe I can implement this in the meantime if it is easier.

Otherwise it will look something like this in the future

ring notes palin(spreadInclusive(4 0 3))
commented

There is currently a small update on this. I included the & character as a way to add multiple lines on one line. For example:

ring notes spreadInclusive(5 0 12)
ring notes palindrome(notes)

Can now also be written as:

ring notes spreadInclusive(5 0 12) & ring notes palindrome(notes)

I'm thinking about a way where you don't need to type ring notes twice and the parser can see that, if the first line starts with ring notes, it will reuse that keyword for the second line as well. Which goes back to your original idea:

ring notes spreadInclusive(5 0 12) & palindrome(notes)

But this is a bit more complicated and not implemented yet.