< Back to IRCAM Forum

Lisp codes translation

Hello Guys,

I am reading a paper that does not give the Om functions but the lisp codes. One of them I am showing here. It’s a bit annoying…I recognize some of the functions, but it’s really complicated. There’s some help that I can get to translate these codes? Maybe a tutorial?
thanks a lot for the help translating this one…
image
Regards,

Ismael

Here you are:

the patch:
patriota.omp (3.9 KB)

Note, that if you give some references (reference of the code, author, article, etc…), this would be profitable for all of us.

Best
K

Hello Haddad,

Sorry for the late response…I was resolving some things. First, the article I am reading is from Anna Shvets, "modeling arvo part’s music with OpenMusic. There she shows some lisp codes very useful to apply in the music of Part. I looked at the example you give and put the values according to her in fratres: max=3, step=1 and pivot=0. I noticed that oddp for 3 is true and for 2 is nil. But in any case, the results are the same, as you can see in the example I am showing. The omif is also strange for me, because I can simply put the results of reverse and rotate in a list and get the same results. I understand that she put the if in the code, but in the case of fratres (In the article, there’s a table of fratres just before the code) seems unnecessary. The same with oddp. It doesn’t change the results. The last line of the listener is the result of list without the omif.
Regards,

Ismael

Dear Ismael,

According to the code given in the article, this seems the exact visual coding.
If you modify it as above, you will always have the reversed solution since the first input of omif is always nil.

I don’t understand pretty well what this algorithm is really for, (tried to from the article). Now if you need a specific code to a specific transformation, please state what is on your mind.

Best
K

Hello Karim,

Today I reviewed the process and understood it. In fact the omg is necessary to the process of mirror, as she says in the article. But it’s not applicable to fratres…
In this work, the process is +1–1/+1 +2, -1 -2/ +1 +2 +3, -1 -2 -3 and vice versa… it’s a more complicated process…do you know how to do it?
Regards and thanks!

Ismael

I don’t know Fratres, and i lack time to analyze this work. If you can provide an MWE of entry data and the result you want, or a straightforward explanation of the process, maybe i can figure it out.

Best
K

Hello Haddad,

Roeder explains this process: suppose that C=0 the first segment C-Bb (-1) and then the second is a retrograde inversion of the first: D-C. The next compass is the same, but with C-Bb-A (-1 -2) followed by E-D-C and so on (the maximum value is -3 and +3). So, STEP-1 is alternated with STEP+1. He says that’s an iteration, so I suppose a loop is necessary…the code of the lisp code seems to have it in the right way. I assume that, with some changes along the process, the final two lists can be rearranged so that it follows the alternation. In this case, C=0 is the beginning and the final pitch of the process…
Regards and many thanks for the help…

Ismael

I made a rather elaborate OM-implementation of Pärts tintinnabuli-process for a workshop in Bergen in 2013. If you’re interested i can try to dig it up.

Hello Anders,

should be great! Feel free to post here…I am doing a research on Pärt, so you can also send to me…
Regards!
Ismael

Turns out the tintinnabuli-process was done in a more manual way than i remember it from the workshop in 2013. Probably just wanting to show some real-world possibilities using basic list operations? Its quite messy, most of the graphics being boilerplate, showing how various note-structures evolve along the way.

Thinking of it, the main algorithm in tintinnabuli, appending new elements to a list based on the situation in the previous iteration would probably be a good use-case for rewrite-rules in OM-patterns… i should redo that
frafratres2.omp (41.3 KB)
frafratresM.omp (27.0 KB)


the indices up in the middle of frafratres2 isn’t right, should instead be: (1 2 7 1 1 2 3 6 7 1 1 2 3 4 5 6 7 1)

Hello Anders,

Yes, it’s a little messy…Maybe you can find a simpler formula…In any case, do you have other patches related to Pärt’s output?
Regards and thanks for sharing…I will take a thorough look today.
Ismael

Can you provide yourself a patch with necessary input values and needed output. I think your problem is very simple, (same as Part music :slight_smile: ).

Best
K

Hello Haddad,

I am sending the imput (notes and their numeric correspondence) and output elements (what I need, in order). In Output, you will see that in fact, they are triadic chords. I ordered the numbers as triads. As I told you, they have an order of (0, -1, +1, 0) - (0, -1, -2, +2, +1, 0) etc. I also think it is simple, but as I am not a mathematician, it’s a little hard for me to think of how to take the right numbers in the right order…Hope you can help…
Regards,

Ismael

fratres piano.omp (1.3 KB)

Hi Patriota,

Hope i got you right this time. Your explanation is rather confusing (sorry):

The patch:
fratres piano1.omp (22.9 KB)

Best
Karim

Hello Haddad,

Yes, that’s it! Very simple :slight_smile:
It will help me a lot…I was thinking…Is it possible to make a formula of (0, -1, +1 0), etc, and make the process go indefinitely? seems interesting…
Many thanks for the patch!
Regards,

Ismael

I was thinking…Is it possible to make a formula of (0, -1, +1 0), etc, and make the process go indefinitely? seems interesting…

Yes of course it is possible. Can you elaborate?

Hello Haddad,

I will try here…rs…I will post here what I find out later in this month
Regards,

Ismael