Lucier-sine wave glissando-math

Oct 20, 2007 at 10:46pm

Lucier-sine wave glissando-math

There is this piece from Alvin Lucier “In Memoriam Jon Higgings” for A-Clarinet and sine wave oscillator. The wave oscillator is doing a very slow even glissando starting from a low C (130.81279 Hz)and is arriving after 19’30” at an (3 Octaves and a third) higher Eb (1244.507935 Hz). To get an equal dispensation of the semitones (every 30 seconds another semitone (as it is written in the score))I need a formula which take the expotential(?)ascending of the frequencies in account (like A=440Hz, A’=880, A”=1760Hz).
Do I need to build an expotential function or the opposite (logarithm(?))?
and would I do that?

Any coaching is much apprechiated

ole

#34261
Oct 20, 2007 at 11:29pm

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 113 284 31 196617 dac~;
#P newex 113 254 40 196617 cycle~;
#P message 113 138 80 196617 48 , 87 990000;
#P newex 113 165 40 196617 line 0.;
#P flonum 113 194 42 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 174 253 60 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 113 217 29 196617 mtof;
#P connect 0 0 5 0;
#P connect 0 0 1 0;
#P connect 5 0 6 0;
#P connect 4 0 3 0;
#P connect 3 0 2 0;
#P connect 2 0 0 0;
#P window clipboard copycount 7;

nice tune!
klaus

On Oct 21, 2007, at 12:46 AM, Ole Schmidt wrote:

>
> There is this piece from Alvin Lucier “In Memoriam Jon Higgings”
> for A-Clarinet and sine wave oscillator. The wave oscillator is
> doing a very slow even glissando starting from a low C (130.81279
> Hz)and is arriving after 19’30” at an (3 Octaves and a third)
> higher Eb (1244.507935 Hz). To get an equal dispensation of the
> semitones (every 30 seconds another semitone (as it is written in
> the score))I need a formula which take the expotential(?)ascending
> of the frequencies in account (like A=440Hz, A’=880, A”=1760Hz).
> Do I need to build an expotential function or the opposite
> (logarithm(?))?
> and would I do that?
>
> Any coaching is much apprechiated
>
> ole

#115289
Oct 20, 2007 at 11:54pm

would [curve~]->[cycle~] be smoother?

#115290
Oct 21, 2007 at 7:20am

Quote: klaus wrote on Sun, 21 October 2007 01:29
—————————————————-
> #P window setfont “Sans Serif” 9.;
> #P window linecount 1;
> #P newex 113 284 31 196617 dac~;
> #P newex 113 254 40 196617 cycle~;
> #P message 113 138 80 196617 48 , 87 990000;
> #P newex 113 165 40 196617 line 0.;
> #P flonum 113 194 42 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 174 253 60 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 113 217 29 196617 mtof;
> #P connect 0 0 5 0;
> #P connect 0 0 1 0;
> #P connect 5 0 6 0;
> #P connect 4 0 3 0;
> #P connect 3 0 2 0;
> #P connect 2 0 0 0;
> #P window clipboard copycount 7;
>
> nice tune!
> klaus

—————————————————-

that was my first idea too. but when you observe (whith a cromatic tuner) how the semitones are distributed you will see that in the lower frequencies the glissando move quicker than 30 seconds from semitone to semitone and the higher it comes it goes the other way around. What I am after is an even distributed change of the semitones every 30 seconds (as it is written in the score).

Quote: LoneMonad aka don malone wrote on Sun, 21 October 2007 01:54
—————————————————-
> would [curve~]->[cycle~] be smoother?
—————————————————-

which arguments do I need in curve~ to get the even distribution of the semitones which I described above (in respect to the non-linear ascension of the frequencies)

ole

#115291
Oct 21, 2007 at 8:28am

You can try this.

It’s an incomplete patch: you have to find a way to stop and restart
your glissando if the instrumentalist stops during the rehearsals.
….but this can give you a good starting point.

Best

Lorenzo

max v2;
#N vpatcher 10 59 478 537;
#P window setfont “Sans Serif” 9.;
#P newex 84 212 75 196617 pack 0. 30000;
#P user ezdac~ 179 73 223 106 0;
#P newex 103 94 46 196617 s on-off;
#P newex 152 264 46 196617 r on-off;
#P newex 84 342 46 196617 s on-off;
#P flonum 148 363 60 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 134 414 31 196617 dac~;
#P newex 134 384 40 196617 cycle~;
#P newex 134 342 29 196617 mtof;
#P newex 84 72 29 196617 t i 1;
#P message 84 318 14 196617 0;
#P newex 152 289 56 196617 gate 1;
#P newex 84 154 27 196617 i;
#P flonum 134 318 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 84 241 124 196617 line 0.;
#P message 84 44 20 196617 48;
#P newex 84 182 27 196617 + 1;
#P newex 84 289 60 196617 sel 87;
#P connect 2 0 8 0;
#P connect 8 0 5 0;
#P fasten 6 0 5 0 157 310 220 310 220 145 89 145;
#P connect 5 0 1 0;
#P connect 1 0 17 0;
#P connect 17 0 3 0;
#P fasten 2 0 3 0 89 64 73 64 73 234 89 234;
#P connect 3 0 0 0;
#P connect 0 0 7 0;
#P connect 7 0 13 0;
#P fasten 1 0 5 1 89 203 142 203 142 150 106 150;
#P connect 8 1 15 0;
#P connect 0 1 4 0;
#P connect 4 0 9 0;
#P connect 9 0 10 0;
#P connect 10 0 11 0;
#P connect 9 0 12 0;
#P connect 14 0 6 0;
#P connect 3 1 6 1;
#P pop;

Il giorno 21/ott/07, alle ore 00:46, Ole Schmidt ha scritto:

>
> There is this piece from Alvin Lucier “In Memoriam Jon Higgings”
> for A-Clarinet and sine wave oscillator. The wave oscillator is
> doing a very slow even glissando starting from a low C (130.81279
> Hz)and is arriving after 19’30” at an (3 Octaves and a third)
> higher Eb (1244.507935 Hz). To get an equal dispensation of the
> semitones (every 30 seconds another semitone (as it is written in
> the score))I need a formula which take the expotential(?)ascending
> of the frequencies in account (like A=440Hz, A’=880, A”=1760Hz).
> Do I need to build an expotential function or the opposite
> (logarithm(?))?
> and would I do that?
>
> Any coaching is much apprechiated
>
> ole

#115292
Oct 21, 2007 at 9:04am

btw, yesterday i got a link to a recording of the piece (and others
by alvin) at tate in 2005, complete with recordings of rehearsals and
score.

http://www.tate.org.uk/onlineevents/archive/open_sound_systems/#lpa

enjoy
h

hans w. koch
im krahnenhof 11
d-50668 koeln
+49-221-554902
http://www.hans-w-koch.net

Am 21.10.2007 um 10:28 schrieb Lorenzo Pagliei:

> max v2;
> #N vpatcher 10 59 478 537;
> #P window setfont “Sans Serif” 9.;
> #P newex 84 212 75 196617 pack 0. 30000;
> #P user ezdac~ 179 73 223 106 0;
> #P newex 103 94 46 196617 s on-off;
> #P newex 152 264 46 196617 r on-off;
> #P newex 84 342 46 196617 s on-off;
> #P flonum 148 363 60 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 134 414 31 196617 dac~;
> #P newex 134 384 40 196617 cycle~;
> #P newex 134 342 29 196617 mtof;
> #P newex 84 72 29 196617 t i 1;
> #P message 84 318 14 196617 0;
> #P newex 152 289 56 196617 gate 1;
> #P newex 84 154 27 196617 i;
> #P flonum 134 318 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 84 241 124 196617 line 0.;
> #P message 84 44 20 196617 48;
> #P newex 84 182 27 196617 + 1;
> #P newex 84 289 60 196617 sel 87;
> #P connect 2 0 8 0;
> #P connect 8 0 5 0;
> #P fasten 6 0 5 0 157 310 220 310 220 145 89 145;
> #P connect 5 0 1 0;
> #P connect 1 0 17 0;
> #P connect 17 0 3 0;
> #P fasten 2 0 3 0 89 64 73 64 73 234 89 234;
> #P connect 3 0 0 0;
> #P connect 0 0 7 0;
> #P connect 7 0 13 0;
> #P fasten 1 0 5 1 89 203 142 203 142 150 106 150;
> #P connect 8 1 15 0;
> #P connect 0 1 4 0;
> #P connect 4 0 9 0;
> #P connect 9 0 10 0;
> #P connect 10 0 11 0;
> #P connect 9 0 12 0;
> #P connect 14 0 6 0;
> #P connect 3 1 6 1;
> #P pop;

#115293
Oct 21, 2007 at 9:09am

In my posted patch final value doesn’t reach midi note 87……and I
imagine you need tuning precision

here’s a better version

cheers

Lorenzo

max v2;
#N vpatcher 153 60 532 505;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 77 296 46 196617 s on-off;
#P newex 77 273 153 196617 if \$f1 > 87 then 0 else out2 \$f1;
#P newex 77 175 75 196617 pack 0. 30000;
#P user ezdac~ 172 36 216 69 0;
#P newex 96 83 46 196617 s on-off;
#P newex 90 227 46 196617 r on-off;
#P flonum 234 336 90 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 220 387 31 196617 dac~;
#P newex 220 357 40 196617 cycle~;
#P newex 220 315 29 196617 mtof;
#P newex 77 61 29 196617 t i 1;
#P newex 90 248 56 196617 gate 1;
#P newex 77 117 27 196617 i;
#P flonum 230 297 100 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 77 203 69 196617 line 0.;
#P message 77 33 20 196617 48;
#P newex 77 145 27 196617 + 1;
#P connect 1 0 6 0;
#P connect 6 0 4 0;
#P fasten 5 0 4 0 95 268 155 268 155 108 82 108;
#P connect 4 0 0 0;
#P connect 0 0 14 0;
#P connect 14 0 2 0;
#P fasten 1 0 2 0 82 54 66 54 66 197 82 197;
#P connect 2 0 15 0;
#P connect 15 0 16 0;
#P connect 11 0 5 0;
#P fasten 0 0 4 1 82 166 135 166 135 113 99 113;
#P connect 6 1 12 0;
#P connect 2 1 5 1;
#P connect 15 1 7 0;
#P connect 7 0 8 0;
#P connect 8 0 9 0;
#P connect 15 1 3 0;
#P connect 7 0 10 0;
#P pop;

Il giorno 21/ott/07, alle ore 00:46, Ole Schmidt ha scritto:

>
> There is this piece from Alvin Lucier “In Memoriam Jon Higgings”
> for A-Clarinet and sine wave oscillator. The wave oscillator is
> doing a very slow even glissando starting from a low C (130.81279
> Hz)and is arriving after 19’30” at an (3 Octaves and a third)
> higher Eb (1244.507935 Hz). To get an equal dispensation of the
> semitones (every 30 seconds another semitone (as it is written in
> the score))I need a formula which take the expotential(?)ascending
> of the frequencies in account (like A=440Hz, A’=880, A”=1760Hz).
> Do I need to build an expotential function or the opposite
> (logarithm(?))?
> and would I do that?
>
> Any coaching is much apprechiated
>
> ole

#115294
Oct 21, 2007 at 9:17am

Quote: lorenzo.pagliei wrote on Sun, 21 October 2007 10:28
—————————————————-
> You can try this.
>
> It’s an incomplete patch: you have to find a way to stop and restart
> your glissando if the instrumentalist stops during the rehearsals.
> ….but this can give you a good starting point.
>
> Best
>
> Lorenzo
>

—————————————————-

thank you Lorenzo, a elegant patch moving with line (=linear)from semitone to semitone. This solution can be used for performing the piece. I’am still looking for a very simple- straight-ahead more math-oriented solution.

ole

#115295
Oct 21, 2007 at 9:45am

mtof is already exponential because it treats pitches and not
frequencies.

BTW I suggest you not to use a “global-two-objets” solution because
of the long glissando duration (19′-30″)…..i think that after 5
minutes you could have problems with exact durations using line. You
can also try a signal driven solution……but I don’t konw….it
depends from how much precision and fine tunig you need…

As an alternative use curve~ with the third argument set to 0.5, it’s
exponential (see help file). You can use my patch approach using
curve~ instead of line (use >~ and mtof~ after…….it’s the same).

CIAO

L

Il giorno 21/ott/07, alle ore 11:17, Ole Schmidt ha scritto:
>
> thank you Lorenzo, a elegant patch moving with line (=linear)from
> semitone to semitone. This solution can be used for performing the
> piece. I’am still looking for a very simple- straight-ahead more
> math-oriented solution.
>
> ole

#115296
Oct 21, 2007 at 10:20am

not to forget, that mtof~ also comes at signal rate. (which makes for
a more stable timing):

max v2;
#N vpatcher 171 44 658 544;
#P window setfont “Sans Serif” 9.;
#P message 170 175 29 196617 stop;
#P newex 170 145 32 196617 sel 0;
#P newex 170 117 46 196617 r on-off;
#P user number~ 168 228 221 243 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221
221 221 222 222 222 0 0 0;
#P newex 77 293 70 196617 snapshot~ 10;
#P newex 77 314 46 196617 s on-off;
#P newex 77 273 57 196617 < =~ 87.;
#P newex 77 175 75 196617 pack 0. 30000;
#P user ezdac~ 172 36 216 69 0;
#P newex 96 83 46 196617 s on-off;
#P newex 90 227 46 196617 r on-off;
#P newex 220 387 31 196617 dac~;
#P newex 220 357 40 196617 cycle~;
#P newex 220 315 37 196617 mtof~;
#P newex 77 61 29 196617 t i 1;
#P newex 90 248 56 196617 gate 1;
#P newex 77 117 27 196617 i;
#P newex 77 203 69 196617 line~ 0.;
#P message 77 33 20 196617 48;
#P newex 77 145 27 196617 + 1;
#P connect 1 0 5 0;
#P fasten 4 0 3 0 95 268 155 268 155 108 82 108;
#P connect 5 0 3 0;
#P connect 3 0 0 0;
#P connect 0 0 12 0;
#P fasten 19 0 2 0 175 197 82 197;
#P fasten 1 0 2 0 82 54 66 54 66 197 82 197;
#P connect 12 0 2 0;
#P connect 2 0 13 0;
#P connect 13 0 15 0;
#P connect 15 0 14 0;
#P connect 9 0 4 0;
#P fasten 0 0 3 1 82 166 135 166 135 113 99 113;
#P connect 5 1 10 0;
#P connect 2 1 4 1;
#P fasten 2 0 16 0 82 224 173 224;
#P connect 17 0 18 0;
#P connect 18 0 19 0;
#P fasten 2 0 6 0 82 224 225 224;
#P connect 6 0 7 0;
#P connect 7 0 8 0;
#P pop;

hans w. koch
im krahnenhof 11
d-50668 koeln
+49-221-554902
http://www.hans-w-koch.net

Am 21.10.2007 um 11:45 schrieb Lorenzo Pagliei:

> mtof is already exponential because it treats pitches and not
> frequencies.
>
> BTW I suggest you not to use a “global-two-objets” solution because
> of the long glissando duration (19′-30″)…..i think that after 5
> minutes you could have problems with exact durations using line.
> You can also try a signal driven solution……but I don’t
> konw….it depends from how much precision and fine tunig you need…
>
> As an alternative use curve~ with the third argument set to 0.5,
> it’s exponential (see help file). You can use my patch approach
> using curve~ instead of line (use >~ and mtof~ after…….it’s the
> same).
>
> CIAO
>
> L
>
> Il giorno 21/ott/07, alle ore 11:17, Ole Schmidt ha scritto:
>>
>> thank you Lorenzo, a elegant patch moving with line (=linear)from
>> semitone to semitone. This solution can be used for performing the
>> piece. I’am still looking for a very simple- straight-ahead more
>> math-oriented solution.
>>
>> ole
>
>

#115297
Oct 21, 2007 at 10:26am

Ole Schmidt wrote:
> I’am still looking for a very simple- straight-ahead more math-oriented solution.

Hi Ole,

the version posted by Klaus is also correct (and easier to understand).
He just got the calculations wrong: 19’30” is 1170000 milliseconds and
not 990000.

I made a patch that takes initial and desired midi pitch as input and
also the time per semitone (30000 ms). Comparing this to Lorenzo’s patch
gives almost identical results.
However, there is a small differenc that is growing over time. To me
this seems to be inaccuracy in the line object. Lorenzo’s version runs
just slightly faster (which is probably due to the fact that he uses the
end-of-line- bang to start line again which seems to skip one time
grain). You can see that the difference gets bigger every 30 seconds.

If you still want to detune it to 442Hz as you wrote me then just
multiply the resulting frequency by (442/440).

Olaf

—————-

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 234 450 41 9109513 – 0.;
#P flonum 234 477 66 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 238 25 15 0;
#P newex 310 338 46 9109513 s on-off;
#P newex 310 315 153 9109513 if \$f1 > 87 then 0 else out2 \$f1;
#P newex 310 217 75 9109513 pack 0. 30000;
#P newex 329 125 46 9109513 s on-off;
#P newex 323 269 46 9109513 r on-off;
#P flonum 467 378 90 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 453 429 31 9109513 dac~;
#P newex 453 399 40 9109513 cycle~;
#P newex 453 357 29 9109513 mtof;
#P newex 310 103 29 9109513 t i 1;
#P newex 323 290 56 9109513 gate 1;
#P newex 310 159 27 9109513 i;
#P flonum 463 339 100 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 310 245 69 9109513 line 0.;
#P message 310 75 20 9109513 48;
#P newex 310 187 27 9109513 + 1;
#P newex 47 243 76 9109513 pack 0 0 0;
#P number 113 210 53 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 113 186 62 9109513 *;
#P newex 113 126 27 9109513 abs;
#P number 113 149 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 113 105 36 9109513 -;
#P newex 113 69 62 9109513 unpack 0 0 0;
#P message 113 45 59 9109513 48 87 30000;
#P newex 47 418 31 9109513 dac~;
#P newex 47 388 40 9109513 cycle~;
#P message 47 272 60 9109513 \$1 , \$2 \$3;
#P newex 47 299 40 9109513 line 0.;
#P flonum 47 328 42 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 108 387 60 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 47 351 29 9109513 mtof;
#P comment 184 45 182 9109513 ;
#P comment 153 149 100 9109513 number of semitones;
#P comment 170 210 100 9109513 total duration;
#P fasten 11 0 17 0 118 93 52 93;
#P connect 17 0 7 0;
#P connect 7 0 6 0;
#P connect 6 0 5 0;
#P connect 5 0 3 0;
#P connect 3 0 8 0;
#P connect 8 0 9 0;
#P fasten 11 1 17 1 144 99 85 99;
#P connect 3 0 4 0;
#P connect 34 0 10 0;
#P connect 10 0 11 0;
#P connect 11 0 12 0;
#P connect 12 0 14 0;
#P connect 14 0 13 0;
#P connect 13 0 15 0;
#P connect 15 0 16 0;
#P connect 16 0 17 2;
#P connect 11 1 12 1;
#P connect 11 2 15 1;
#P connect 4 0 36 0;
#P connect 36 0 35 0;
#P connect 28 0 36 1;
#P connect 34 0 19 0;
#P connect 19 0 24 0;
#P connect 24 0 22 0;
#P fasten 23 0 22 0 328 310 388 310 388 150 315 150;
#P connect 22 0 18 0;
#P connect 18 0 31 0;
#P fasten 19 0 20 0 315 96 299 96 299 239 315 239;
#P connect 31 0 20 0;
#P connect 20 0 32 0;
#P connect 32 0 33 0;
#P connect 29 0 23 0;
#P fasten 18 0 22 1 315 208 368 208 368 155 332 155;
#P connect 24 1 30 0;
#P connect 20 1 23 1;
#P connect 32 1 25 0;
#P connect 25 0 26 0;
#P connect 26 0 27 0;
#P connect 32 1 21 0;
#P connect 25 0 28 0;
#P window clipboard copycount 37;

#115298
Oct 21, 2007 at 10:34am

Listen to de difference between line~ and curve~ if you use pitch.

in the posted patch if you use curve, you listen to accents avery
333 msec (doubleclick loadbang to feed value 333)

otherwise you can find the mtof formula in the mtof help file

cheers

Lorenzo

max v2;
#N vpatcher 420 51 853 609;
#P window setfont “Sans Serif” 9.;
#P newex 175 168 72 196617 loadmess 333;
#P number 175 221 51 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 198 24 15 0;
#P user umenu 38 358 52 196647 1 64 374 1;
#P user number~ 295 358 381 373 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221
221 221 222 222 222 0 0 0;
#P newex 62 390 62 196617 selector~ 2;
#P message 286 211 14 196617 0;
#P newex 286 230 46 196617 s on-off;
#P newex 286 189 55 196617 sel 88;
#P newex 286 258 93 196617 pack 0. 30000 0.5;
#P newex 305 102 46 196617 s on-off;
#P newex 299 310 46 196617 r on-off;
#P newex 286 80 29 196617 t i 1;
#P newex 299 331 56 196617 gate 1;
#P newex 286 136 27 196617 i;
#P newex 286 286 69 196617 curve~;
#P message 286 52 20 196617 48;
#P newex 286 164 27 196617 + 1;
#P message 88 211 14 196617 0;
#P newex 88 230 46 196617 s on-off;
#P newex 88 189 55 196617 sel 88;
#P user number~ 104 443 190 458 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221
221 221 222 222 222 0 0 0;
#P user number~ 99 358 185 373 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221
221 221 222 222 222 0 0 0;
#P newex 88 258 75 196617 pack 0. 30000;
#P user ezdac~ 193 395 237 428 0;
#P newex 107 102 46 196617 s on-off;
#P newex 101 310 46 196617 r on-off;
#P newex 62 474 31 196617 dac~;
#P newex 62 443 40 196617 cycle~;
#P newex 62 414 37 196617 mtof~;
#P newex 88 80 29 196617 t i 1;
#P newex 101 331 56 196617 gate 1;
#P newex 88 136 27 196617 i;
#P newex 88 286 69 196617 line~;
#P message 88 52 20 196617 48;
#P newex 88 164 27 196617 + 1;
#P comment 182 206 86 196617 set glissando dur;
#P connect 33 0 31 0;
#P connect 31 0 7 0;
#P connect 7 0 8 0;
#P connect 8 0 9 0;
#P connect 8 0 9 1;
#P fasten 34 0 2 0 203 45 93 45;
#P connect 2 0 6 0;
#P connect 6 0 4 0;
#P fasten 5 0 4 0 106 351 169 351 169 127 93 127;
#P connect 4 0 1 0;
#P connect 1 0 16 0;
#P connect 16 0 18 0;
#P connect 18 0 17 0;
#P fasten 16 1 13 0 138 252 93 252;
#P fasten 2 0 3 0 93 73 77 73 77 279 93 279;
#P connect 13 0 3 0;
#P connect 3 0 31 1;
#P fasten 3 0 14 0 93 354 104 354;
#P connect 10 0 5 0;
#P fasten 7 0 15 0 67 437 109 437;
#P fasten 1 0 4 1 93 185 124 185 124 132 110 132;
#P connect 6 1 11 0;
#P fasten 21 0 31 2 291 382 119 382;
#P connect 3 1 5 1;
#P connect 35 0 13 1;
#P connect 36 0 35 0;
#P fasten 34 0 20 0 203 45 291 45;
#P connect 20 0 24 0;
#P fasten 23 0 22 0 304 351 384 351 384 127 291 127;
#P connect 24 0 22 0;
#P connect 22 0 19 0;
#P connect 19 0 28 0;
#P connect 28 0 30 0;
#P connect 30 0 29 0;
#P fasten 28 1 27 0 336 252 291 252;
#P fasten 20 0 21 0 291 73 275 73 275 279 291 279;
#P connect 27 0 21 0;
#P fasten 21 0 32 0 291 353 300 353;
#P connect 25 0 23 0;
#P fasten 19 0 22 1 291 185 323 185 323 132 308 132;
#P connect 24 1 26 0;
#P connect 35 0 27 1;
#P connect 21 1 23 1;
#P pop;

#115299
Oct 21, 2007 at 10:43am

Quote: lorenzo.pagliei wrote on Sun, 21 October 2007 11:45
—————————————————-
> mtof is already exponential because it treats pitches and not
> frequencies.
>

—————————————————-

that is what I was asking for, I overlooked it and was thinking to complicated.

Thank you very much for all the replies!

ole

#115300
Oct 21, 2007 at 10:44am

Hi,

Il giorno 21/ott/07, alle ore 12:30, Olaf Matthes ha scritto:
>
> Lorenzo’s version runs just slightly faster (which is probably due
> to the fact that he uses the end-of-line- bang to start line again
> which seems to skip one time grain). You can see that the
> difference gets bigger every 30 seconds.

For this reason I prefer to divide 19′-30″ into 30″packets to avoid
excessive amount of time imprecision.

> If you still want to detune it to 442Hz as you wrote me then just
> multiply the resulting frequency by (442/440).

If you need to tune your mtof you find an ej.mtof in the ejies where
you can give your diapason as an argument

Best

Lorenzo

#115301
Oct 21, 2007 at 11:43am

Quote: lorenzo.pagliei wrote on Sun, 21 October 2007 12:44
—————————————————-

> If you need to tune your mtof you find an ej.mtof in the ejies where
> you can give your diapason as an argument

—————————————————-

thank you for that too!!

ole

#115302
Oct 21, 2007 at 1:54pm

Any of the mtof solutions will work well if you can guarantee precision over
such a long period. Midi key numbers are logarithms of frequency – a linear
series describing an exponential series. Have a look at the help file for
mtof and ftom to see the expressions used for the converstion. Remember to
use a float argument for ftom if you don’t want your output to round to the
nearest midi key number.

Curve~ could be a problem unless you get exactly the right value for the
curve shape parameter (3rd inlet). I’m not sure what that value must be to
get the correct shape for this application.

Amplitude is also exponential. DB is a logarithm for amplitude. See dbtoa
and atodb.

Likewise tempo. Twice as fast as 60 bpm is easy but what is 1.5 times as
fast. Nope, not 90. If your answer is 84.852814, you win. With the
following conversion function, input 0 produces 60, 1 = 120, -1 = 30.

expr pow(2,\$f1)*60.

Can’t remember who told me the story of a snake breeder who was concerned
about low production until he found that putting his snakes on a picnic
table increased their output. He read that adders could be made to multiply
if he used a log table.

Sometimes key velocity is best used exponentially. I wrote the abstractions
below to convert between dynamics and velocity. I mapped pppp…ffff
(although these are subjective) to a range 1..10. Input and output are both
float so I can deal with intermediate dynamics like mp.5.

DynVel

#N comlet Dynamics (0.0-10.0);
#P outlet 19 134 15 0;
#N comlet Velocity (0-127);
#P inlet 19 35 15 0;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 19 109 183 196617 expr 10*pow(((\$i1-1)/126.0)\,0.5);
#P window linecount 3;
#P comment 61 66 100 196617 Converts velocity to “dynamics” using old family
recipe.;
#P window setfont Helvetica 24.;
#P window linecount 1;
#P comment 61 21 97 1376280 DynVel;
#P window setfont “Sans Serif” 9.;
#P comment 60 50 121 196617 Author: Gary Lee Nelson;
#P connect 3 0 5 0;
#P connect 4 0 3 0;
#P window clipboard copycount 6;

VelDyn

#P inlet 19 35 15 0;
#P window setfont “Sans Serif” 9.;
#P window linecount 4;
#P comment 61 66 100 196617 Converts “dynamics” to velocity” using old
family recipe.;
#P window setfont Helvetica 24.;
#P window linecount 1;
#P comment 61 21 97 1376280 VelDyn;
#P window setfont “Sans Serif” 9.;
#P comment 60 50 121 196617 Author: Gary Lee Nelson;
#P newex 19 101 38 196617 / 10.;
#P outlet 19 150 15 0;
#P newex 19 125 140 196617 expr (\$f1*\$f1)*126.0+1.0;
#P connect 6 0 2 0;
#P connect 0 0 1 0;
#P connect 2 0 0 0;
#P window clipboard copycount 7;

Cheers
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson

On 10/21/07 7:43 AM, “Ole Schmidt”

wrote:

>
> Quote: lorenzo.pagliei wrote on Sun, 21 October 2007 12:44
> —————————————————-
>
>
>> If you need to tune your mtof you find an ej.mtof in the ejies where
>> you can give your diapason as an argument
>
> —————————————————-
>
> thank you for that too!!
>
> ole

#115303
Oct 21, 2007 at 1:54pm

an aside:
in 1972
when i was in grad school at BSU
we received a computer
which had been the guidance system
of a D17-B intercontinental ballistic missile
declassified by the gov
a profs from the sciece dept, cleve scott and i
hooked it up to the arp 2500
the first patch was a 24hr full sweep of an oscillator
no clarinets though

#115304
Oct 21, 2007 at 3:00pm

I saw that thing. Don didn’t mention that it housed in a nosecone-shaped
box – very spooky.

On 10/21/07 9:54 AM, “don malone” wrote:

>
> an aside:
> in 1972
> when i was in grad school at BSU
> we received a computer
> which had been the guidance system
> of a D17-B intercontinental ballistic missile
> declassified by the gov
> a profs from the sciece dept, cleve scott and i
> hooked it up to the arp 2500
> the first patch was a 24hr full sweep of an oscillator
> no clarinets though
> –
> it takes all of us
> http://faculty.roosevelt.edu/malone/default.htm

Cheers
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson

#115305
Oct 21, 2007 at 3:02pm

{SinOsc.ar(Line.ar(48, 87, 1170).midicps, mul: 0.4)!2}.play

in SC3 should work, I guess. It sounds smooth for me.

2007/10/21, Gary Lee Nelson :
>
> Any of the mtof solutions will work well if you can guarantee precision
> over
> such a long period. Midi key numbers are logarithms of frequency – a
> linear
> series describing an exponential series. Have a look at the help file for
> mtof and ftom to see the expressions used for the converstion. Remember
> to
> use a float argument for ftom if you don’t want your output to round to
> the
> nearest midi key number.
>
> Curve~ could be a problem unless you get exactly the right value for the
> curve shape parameter (3rd inlet). I’m not sure what that value must be
> to
> get the correct shape for this application.
>
> Amplitude is also exponential. DB is a logarithm for amplitude. See dbtoa
> and atodb.
>
> Likewise tempo. Twice as fast as 60 bpm is easy but what is 1.5 times as
> fast. Nope, not 90. If your answer is 84.852814, you win. With the
> following conversion function, input 0 produces 60, 1 = 120, -1 = 30.
>
> expr pow(2,\$f1)*60.
>
> Can’t remember who told me the story of a snake breeder who was concerned
> about low production until he found that putting his snakes on a picnic
> table increased their output. He read that adders could be made to
> multiply
> if he used a log table.
>
> Sometimes key velocity is best used exponentially. I wrote the
> abstractions
> below to convert between dynamics and velocity. I mapped pppp…ffff
> (although these are subjective) to a range 1..10. Input and output are
> both
> float so I can deal with intermediate dynamics like mp.5.
>
> DynVel
>
> #N comlet Dynamics (0.0-10.0);
> #P outlet 19 134 15 0;
> #N comlet Velocity (0-127);
> #P inlet 19 35 15 0;
> #P window setfont “Sans Serif” 9.;
> #P window linecount 1;
> #P newex 19 109 183 196617 expr 10*pow(((\$i1-1)/126.0)\,0.5);
> #P window linecount 3;
> #P comment 61 66 100 196617 Converts velocity to “dynamics” using old
> family
> recipe.;
> #P window setfont Helvetica 24.;
> #P window linecount 1;
> #P comment 61 21 97 1376280 DynVel;
> #P window setfont “Sans Serif” 9.;
> #P comment 60 50 121 196617 Author: Gary Lee Nelson;
> #P connect 3 0 5 0;
> #P connect 4 0 3 0;
> #P window clipboard copycount 6;
>
> VelDyn
>
> #P inlet 19 35 15 0;
> #P window setfont “Sans Serif” 9.;
> #P window linecount 4;
> #P comment 61 66 100 196617 Converts “dynamics” to velocity” using old
> family recipe.;
> #P window setfont Helvetica 24.;
> #P window linecount 1;
> #P comment 61 21 97 1376280 VelDyn;
> #P window setfont “Sans Serif” 9.;
> #P comment 60 50 121 196617 Author: Gary Lee Nelson;
> #P newex 19 101 38 196617 / 10.;
> #P outlet 19 150 15 0;
> #P newex 19 125 140 196617 expr (\$f1*\$f1)*126.0+1.0;
> #P connect 6 0 2 0;
> #P connect 0 0 1 0;
> #P connect 2 0 0 0;
> #P window clipboard copycount 7;
>
>
> Cheers
> Gary Lee Nelson
> Oberlin College
> http://www.timara.oberlin.edu/GaryLeeNelson
>
> On 10/21/07 7:43 AM, “Ole Schmidt”

wrote:
>
> >
> > Quote: lorenzo.pagliei wrote on Sun, 21 October 2007 12:44
> > —————————————————-
> >
> >
> >> If you need to tune your mtof you find an ej.mtof in the ejies where
> >> you can give your diapason as an argument
> >
> > —————————————————-
> >
> > thank you for that too!!
> >
> > ole
>
>
>
>

#115306
Oct 21, 2007 at 3:25pm

On 21-oct.-07, at 17:02, bbarros wrote:

> {SinOsc.ar(Line.ar(48, 87, 1170).midicps, mul: 0.4)!2}.play
>
> in SC3 should work, I guess. It sounds smooth for me.

When doing some patch (or code) for a piece with instrumentists, you
should never forget that the performer will probably want to start from
different parts of the piece during rehearsals.

It’s easy for Lucier’s piece, but can sometimes be a real nightmare…

p

#115307
Oct 21, 2007 at 3:31pm

Perhaps recording it with the SC3 solution then playback can be time
selected.

On 10/21/07 11:25 AM, “Patrick Delges”

wrote:

>
> On 21-oct.-07, at 17:02, bbarros wrote:
>
>> {SinOsc.ar(Line.ar(48, 87, 1170).midicps, mul: 0.4)!2}.play
>>
>> in SC3 should work, I guess. It sounds smooth for me.
>
>
> When doing some patch (or code) for a piece with instrumentists, you
> should never forget that the performer will probably want to start from
> different parts of the piece during rehearsals.
>
> It’s easy for Lucier’s piece, but can sometimes be a real nightmare…
>
> p
>

Cheers
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson

#115308
Oct 21, 2007 at 3:46pm

Cool !

Il giorno 21/ott/07, alle ore 15:54, don malone ha scritto:

>
> an aside:
> in 1972
> when i was in grad school at BSU
> we received a computer
> which had been the guidance system
> of a D17-B intercontinental ballistic missile
> declassified by the gov
> a profs from the sciece dept, cleve scott and i
> hooked it up to the arp 2500
> the first patch was a 24hr full sweep of an oscillator
> no clarinets though
> –
> it takes all of us
> http://faculty.roosevelt.edu/malone/default.htm

#115309
Oct 21, 2007 at 3:52pm

And This allows you to pause/resume.

max v2;
#N vpatcher 71 59 425 489;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P comment 56 53 27 9109513 start;
#P newex 97 153 49 9109513 change 0.;
#P message 137 71 140 9109513 48.387085 , 87 1158387.5;
#P newex 97 234 100 9109513 sprintf set %f\, 87 %f;
#P newex 97 178 27 9109513 t f f;
#P newex 114 204 126 9109513 expr ((87-\$f1)/39) * 1170000;
#P message 109 71 26 9109513 stop;
#P newex 97 128 59 9109513 snapshot~ 1;
#P toggle 43 332 15 0;
#P newex 63 358 28 9109513 dac~;
#P message 35 71 72 9109513 48 , 87 1170000;
#P user number~ 103 312 176 327 9 139 3 2 0. 0. 0 0. 20 0. 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 64 311 36 9109513 cycle~;
#P newex 63 98 27 9109513 line~;
#P newex 63 274 33 9109513 mtof~;
#P comment 182 53 39 9109513 resume;
#P fasten 13 0 2 0 142 93 68 93;
#P fasten 9 0 2 0 114 93 68 93;
#P fasten 5 0 2 0 40 93 68 93;
#P connect 2 0 1 0;
#P connect 3 0 6 0;
#P connect 7 0 6 0;
#P connect 1 0 3 0;
#P connect 3 0 6 1;
#P connect 2 0 8 0;
#P connect 8 0 14 0;
#P connect 14 0 11 0;
#P connect 11 0 12 0;
#P fasten 1 0 4 0 68 302 108 302;
#P connect 11 1 10 0;
#P fasten 12 0 13 0 102 263 286 263 286 47 142 47;
#P fasten 10 0 12 1 119 228 192 228;
#P pop;

#115310
Oct 21, 2007 at 4:18pm

Voila….

Patrick is right, during rehearsals is very important to stop and

if you need to tune your diapason use ej.mtof and change the low part
of the patch with line – > ej.mtof and not line~ mtof~…..

Lorenzo

max v2;
#N vpatcher 579 44 1105 621;
#P window setfont “Sans Serif” 9.;
#P window linecount 3;
#P comment 361 191 100 196617 …to restart during rehearsals from
the note you want;
#P number 362 229 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 362 251 78 196617 ; gliss-start \$1 ; gliss-end 88;
#P flonum 99 466 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 2;
#P comment 245 317 79 196617 stops and resets the glissando;
#P comment 245 256 106 196617 resumes the glissando from actual note;
#P window linecount 1;
#P newex 49 489 27 196617 *~;
#P newex 66 442 91 196617 r gliss-output-lev;
#P window linecount 2;
#P message 245 342 71 196617 ; line-mes stop;
#P window linecount 5;
#P message 245 47 110 196617 ; gliss-dur 30000 ; gliss-start 48 ;
gliss-end 88 ; gliss-output-lev 0.5 50;
#P message 245 117 110 196617 ; gliss-dur 1000 ; gliss-start 48 ;
gliss-end 88 ; gliss-output-lev 0.5 50;
#P window linecount 2;
#P message 245 283 85 196617 ; line-mes resume;
#P message 245 219 77 196617 ; line-mes pause;
#P window linecount 1;
#P newex 60 260 57 196617 r line-mes;
#P number 113 171 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 94 144 59 196617 r gliss-end;
#P number 125 240 57 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 80 62 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 114 213 59 196617 r gliss-dur;
#P message 49 193 14 196617 0;
#P newex 49 212 46 196617 s on-off;
#P newex 49 171 55 196617 sel 88;
#P user number~ 91 419 177 434 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221
221 221 222 222 222 0 0 0;
#P user number~ 60 363 146 378 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221
221 221 222 222 222 0 0 0;
#P newex 49 240 75 196617 pack 0. 30000;
#P user ezdac~ 181 373 225 406 0;
#P newex 68 84 46 196617 s on-off;
#P newex 62 315 46 196617 r on-off;
#P newex 49 515 31 196617 dac~;
#P newex 49 419 40 196617 cycle~;
#P newex 49 390 37 196617 mtof~;
#P newex 49 62 29 196617 t i 1;
#P newex 62 336 56 196617 gate 1;
#P newex 49 118 27 196617 i;
#P newex 49 291 69 196617 line~;
#P newex 49 34 67 196617 r gliss-start;
#P newex 49 146 27 196617 + 1;
#P newex 66 466 32 196617 line~;
#P window linecount 2;
#P comment 245 192 112 196617 stops the glissando during the
rehearsals…;
#P connect 3 0 7 0;
#P fasten 6 0 5 0 67 357 193 357 193 109 54 109;
#P connect 7 0 5 0;
#P connect 5 0 2 0;
#P connect 2 0 17 0;
#P connect 17 0 19 0;
#P connect 19 0 18 0;
#P fasten 17 1 14 0 99 234 54 234;
#P fasten 3 0 4 0 54 56 38 56 38 261 54 261;
#P connect 25 0 4 0;
#P connect 14 0 4 0;
#P connect 4 0 8 0;
#P connect 8 0 9 0;
#P connect 9 0 32 0;
#P connect 32 0 10 0;
#P fasten 4 0 15 0 54 359 65 359;
#P connect 11 0 6 0;
#P fasten 2 0 5 1 54 167 85 167 85 114 71 114;
#P connect 31 0 1 0;
#P connect 1 0 32 1;
#P connect 7 1 12 0;
#P connect 32 0 10 1;
#P fasten 3 0 21 0 54 56 85 56;
#P fasten 8 0 16 0 54 413 96 413;
#P connect 23 0 17 1;
#P fasten 31 0 35 0 71 462 104 462;
#P connect 4 1 6 1;
#P fasten 23 0 24 0 99 166 118 166;
#P connect 20 0 14 1;
#P fasten 20 0 22 0 119 235 130 235;
#P connect 37 0 36 0;
#P pop;

#115311
Oct 29, 2007 at 11:20am

thank you again Lorenzo for that perfect patch!

ole

#115312
Oct 29, 2007 at 12:44pm

perfection doesn’t exist ;-)

thanks…

Lorenzo

Il giorno 29/ott/07, alle ore 12:20, Ole Schmidt ha scritto:

>
> thank you again Lorenzo for that perfect patch!
>
> ole

#115313

You must be logged in to reply to this topic.