Forums > MaxMSP

Microtonal pathes or object

December 24, 2006 | 7:59 am

Does anybody know how I can find microtonal pathes or object?

Because I have no Idea how to do it. I especially equal divisions 13-tone, 15-tone, 24-tone e.t.c.


December 24, 2006 | 8:26 am

You will have to be alot more specific. Do you want microtonal synthesis? Transposition? MIDI?
As a general tip, just [scale] your input to 13, 15, 24, etc. and send this information to whatever instrument you are using. If you are using a MIDI instrument, then you will have to use a combination of pitchbend and noteout messages, and duplicate the instrument on various channels.
I did some studies a while back trying to emulate a couple of Harry Partch’s instruments; it is pretty straightforward work.

Ah: although the forum programming may tell you that there has been an error, you ARE posting; that is why there are all these duplicates.


December 24, 2006 | 11:28 am

Hi!

If you are using MSP, here is a patch that should help you get going
with the basic stuff for equally distanced scales:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 433 116 66 196617 loadmess 24;
#P number 253 253 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 394 116 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user ezdac~ 253 501 297 534 0;
#N vpatcher 20 74 620 474;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 76 32 164 196617 round from RTC-lib as abstraction;
#P newex 50 96 208 196617 expr int(($f1/abs($f1)))*int(abs($f1)+0.5);
#P newex 50 50 27 196617 f;
#P newex 50 74 222 196617 if $f1!=0 then $f1 else out2 0;
#P comment 68 145 111 196617 1999 by Trond Lossius;
#P inlet 50 30 15 0;
#P outlet 50 136 15 0;
#P connect 1 0 4 0;
#P connect 4 0 3 0;
#P connect 3 0 5 0;
#P fasten 3 1 0 0 267 125 55 125;
#P connect 5 0 0 0;
#P pop;
#P newobj 253 231 43 196617 p round;
#P user gain~ 253 371 24 100 158 0 1.071519 7.94321 10.;
#P newex 253 312 31 196617 mtof;
#P comment 130 291 118 196617 back converting as float;
#P newex 253 289 94 196617 expr $f1*12./$f2;
#P newex 253 196 94 196617 expr $f1*$f2/12.;
#P newex 253 345 40 196617 tri~;
#P flonum 253 116 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 253 164 43 196617 ftom 1.;
#P comment 67 167 183 196617 float argument returns float midi value;
#P comment 54 198 194 196617 octave subdivision into $f2 instead of 12;
#P comment 48 255 201 196617 the equivalent of MIDI note in your system;
#P comment 394 94 100 196617 octave subdivision;
#P comment 252 94 100 196617 raw frequency;
#P connect 15 0 8 1;
#P connect 15 0 9 1;
#P connect 17 0 15 0;
#P connect 13 0 16 0;
#P connect 16 0 9 0;
#P connect 12 0 14 0;
#P connect 7 0 12 0;
#P connect 8 0 13 0;
#P connect 11 0 7 0;
#P connect 9 0 11 0;
#P connect 5 0 8 0;
#P connect 6 0 5 0;
#P window clipboard copycount 18;

If you want to work on non-equally distanced scales, you should check
out Lobjects or funbuff and think of how to use them as lookup tables.
But probably the best route to go would be to investigate the Max
Microtone Tuner:

http://launch.groups.yahoo.com/group/16tone/

Merry Christmas to everyone, and in particular to the 74 elves!
Trond

Dimitris Lambrianos wrote:
> Does anybody know how I can find microtonal pathes or object?
>
> Because I have no Idea how to do it. I especially equal divisions 13-tone, 15-tone, 24-tone e.t.c.
> –
> http://www.dimitrislambrianos.com/


December 24, 2006 | 7:16 pm

>Does anybody know how I can find microtonal pathes or object?
—————————————

This is not set up for equal divisions of the octave but still may be of interest to you or others reading this thread. My friend Cooper made a java script which filters incoming MIDI data around certain chords. I modified it to filter the data around justly tuned scales and some scales from Indonesia and India (yes, entering the pitch multipliers was TEDIOUS!). First is a little patch to see it in action and second is the java script. Save the script as just_filter.js~ in your Max search path and then fire up the little patch. The script would be easy to modify to do other equal divisions of the octave or other microtoal scales….I’m planning on doing that someday but have not gotten around to it yet.

The scales are from here:

http://www.xs4all.nl/~huygensf/scala/

And you might want to check out this:

http://launch.groups.yahoo.com/group/16tone/

—-patch—–

max v2;
#N vpatcher 100 234 595 499;
#P window setfont Helvetica 9.;
#P window linecount 1;
#P comment 165 202 158 1376265 < - MIDI value with cent deviation out;
#P comment 221 132 142 1376265 < - scale type as defined in script;
#P flonum 105 201 56 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P user kslider 105 33 54 0 36 48 31 12 0 128 128 128 128 128 128 255 255 255 0 0 0 0 0 0;
#P window setfont "Sans Serif" 9.;
#P user ubumenu 131 130 83 196617 0 1 1 0;
#X add JustChrom;
#X add JustChrom2;
#X add JustDia;
#X add GradyCentaur;
#X add GradyHexany;
#X add Tenney;
#X add Pelog;
#X add PelogA;
#X add PelogB;
#X add PelogC;
#X add IndianA;
#X add IndianB;
#X add IndianC;
#X add IndianD;
#X add IndianE;
#X prefix_set 0 0 0;
#X pattrmode 1;
#P window setfont Helvetica 9.;
#P newex 105 159 72 1376265 js just_filter.js~;
#P comment 7 54 95 1376265 12TET MIDI value ->;
#P connect 3 0 1 0;
#P connect 1 0 4 0;
#P connect 2 1 1 1;
#P pop;

—java script—

inlets = 2;
outlets = 1;

var trans = 0.0;
var note = 0.0;
var type = "0.0";

function bang(x)
{
outlet(0., note);

}

function list(x)
{
type = x;
}

function transpose()
{
note = note + trans;
}

function msg_float(x)
{
switch (inlet)
{
case 0. : inlet_0(x);
break;
case 1. : inlet_1(x);
break;
}
}

function inlet_1(x)
{
trans = x;
}

function inlet_0(x)
{
note = x;
switch (type)
{
case "JustChrom" : justchrom_filter(x);
break;
case "JustChrom2" : justchrom2_filter(x);
break;
case "JustDia" : justdia_filter(x);
break;
case "GradyCentaur" : gradycentaur_filter(x);
break;
case "GradyHexany" : gradyhexany_filter(x);
break;
case "Tenney" : tenney_filter(x);
break;
case "Pelog" : pelog_filter(x);
break;
case "PelogA" : peloga_filter(x);
break;
case "PelogB" : pelogb_filter(x);
break;
case "PelogC" : pelogc_filter(x);
break;
case "IndianA" : indiana_filter(x);
break;
case "IndianB" : indianb_filter(x);
break;
case "IndianC" : indianc_filter(x);
break;
case "IndianD" : indiand_filter(x);
break;
case "IndianE" : indiane_filter(x);
break;
}
transpose();
bang();
}

function JustChrom()
{
type = "JustChrom";
}

function justchrom_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x == 1)
x = 1.1173;
if (x == 2)
x = 2.3;
if (x == 3)
x = 3.156414;
if (x == 4)
x = 3.863136;
if (x == 5)
x = 4.98045;
if (x == 6)
x = 5.825123;
if (x == 7)
x = 7.019547;
if (x == 8)
x = 8.136864;
if (x == 9)
x = 8.84359;
if (x == 10)
x = 10.175964;
if (x == 11)
x = 10.88269;
y = x + (i * 12);
note = y;
}

function JustChrom2()
{
type = "JustChrom2";
}

function justchrom2_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x == 1)
x = 0.706722;
if (x == 2)
x = 1.824039;
if (x == 3)
x = 2.668709;
if (x == 4)
x = 3.863136;
if (x == 5)
x = 4.98045;
if (x == 6)
x = 5.902237;
if (x == 7)
x = 7.019547;
if (x == 8)
x = 8.136864;
if (x == 9)
x = 9.331337;
if (x == 10)
x = 9.688255;
if (x == 11)
x = 11.293274;
y = x + (i * 12);
note = y;
}

function JustDia()
{
type = "JustDia";
}

function justdia_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 2.3;
if (x > 3 && x < 5)
x = 3.863136;
if (x > 4 && x < 7)
x = 4.98045;
if (x > 6 && x < 9)
x = 7.019547;
if (x > 8 && x < 11)
x = 8.84359;
if (x > 10 && x < 12)
x = 10.88269;
y = x + (i * 12);
note = y;
}

function GradyCentaur()
{
type = "GradyCentaur";
}

function gradycentaur_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x == 1)
x = 0.844672;
if (x == 2)
x = 2.0391;
if (x == 3)
x = 2.668711;
if (x == 4)
x = 3.863136;
if (x == 5)
x = 4.98045;
if (x == 6)
x = 5.825123;
if (x == 7)
x = 7.019547;
if (x == 8)
x = 7.649158;
if (x == 9)
x = 8.843589;
if (x == 10)
x = 9.688255;
if (x == 11)
x = 10.882689;
y = x + (i * 12);
note = y;
}

function GradyHexany()
{
type = "GradyHexany";
}

function gradyhexany_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x == 1)
x = 1.018669;
if (x == 2)
x = 1.824039;
if (x == 3)
x = 2.668711;
if (x == 4)
x = 4.175083;
if (x == 5)
x = 5.36951;
if (x == 6)
x = 6.389941;
if (x == 7)
x = 7.019547;
if (x == 8)
x = 8.213981;
if (x == 9)
x = 9.720351;
if (x == 10)
x = 10.565021;
if (x == 11)
x = 11.37039;
y = x + (i * 12);
note = y;
}

function Tenney()
{
type = "Tenney";
}

function tenney_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x == 1)
x = 1.049555;
if (x == 2)
x = 2.0391;
if (x == 3)
x = 2.975132;
if (x == 4)
x = 3.863136;
if (x == 5)
x = 4.707808;
if (x == 6)
x = 5.51318;
if (x == 7)
x = 7.019547;
if (x == 8)
x = 7.726275;
if (x == 9)
x = 8.405277;
if (x == 10)
x = 9.688255;
if (x == 11)
x = 9.688255;
y = x + (i * 12);
note = y;
}

function Pelog()
{
type = "Pelog";
}

function pelog_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 2.312;
if (x > 3 && x < 5)
x = 3.156414;
if (x > 4 && x < 7)
x = 4.707808;
if (x > 6 && x < 9)
x = 7.019547;
if (x > 8 && x < 11)
x = 8.136864;
if (x > 10 && x < 12)
x = 9.68826;
y = x + (i * 12);
note = y;
}

function PelogA()
{
type = "PelogA";
}

function peloga_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 1.22;
if (x > 3 && x < 5)
x = 2.71;
if (x > 4 && x < 7)
x = 5.71;
if (x > 6 && x < 9)
x = 6.77;
if (x > 8 && x < 11)
x = 7.85;
if (x > 10 && x < 12)
x = 9.47;
y = x + (i * 12);
note = y;
}

function PelogB()
{
type = "PelogB";
}

function pelogb_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 1.18;
if (x > 3 && x < 5)
x = 2.53;
if (x > 4 && x < 7)
x = 5.25;
if (x > 6 && x < 9)
x = 6.59;
if (x > 8 && x < 11)
x = 7.72;
if (x > 10 && x < 12)
x = 9.45;
y = x + (i * 12);
note = y;
}

function PelogC()
{
type = "PelogC";
}

function pelogc_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 1.17;
if (x > 3 && x < 5)
x = 2.62;
if (x > 4 && x < 7)
x = 5.08;
if (x > 6 && x < 9)
x = 6.68;
if (x > 8 && x < 11)
x = 7.79;
if (x > 10 && x < 12)
x = 9.45;
y = x + (i * 12);
note = y;
}

function IndianA()
{
type = "IndianA";
}

function indiana_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 1.83;
if (x > 3 && x < 5)
x = 3.42;
if (x > 4 && x < 7)
x = 5.33;
if (x > 6 && x < 9)
x = 6.85;
if (x > 8 && x < 11)
x = 8.71;
if (x > 10 && x < 12)
x = 10.74;
y = x + (i * 12);
note = y;
}

function IndianB()
{
type = "IndianB";
}

function indianb_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 1.83;
if (x > 3 && x < 5)
x = 2.71;
if (x > 4 && x < 7)
x = 5.34;
if (x > 6 && x < 9)
x = 6.85;
if (x > 8 && x < 11)
x = 8.71;
if (x > 10 && x < 12)
x = 9.83;
y = x + (i * 12);
note = y;
}

function IndianC()
{
type = "IndianC";
}

function indianc_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 1.11;
if (x > 3 && x < 5)
x = 3.14;
if (x > 4 && x < 7)
x = 5.34;
if (x > 6 && x < 9)
x = 6.86;
if (x > 8 && x < 11)
x = 8.28;
if (x > 10 && x < 12)
x = 10.17;
y = x + (i * 12);
note = y;
}

function IndianD()
{
type = "IndianD";
}

function indiand_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 1.74;
if (x > 3 && x < 5)
x = 3.5;
if (x > 4 && x < 7)
x = 4.77;
if (x > 6 && x < 9)
x = 6.97;
if (x > 8 && x < 11)
x = 9.08;
if (x > 10 && x < 12)
x = 10.7;
y = x + (i * 12);
note = y;
}

function IndianE()
{
type = "IndianE";
}

function indiane_filter(x)
{
var y = x;
var i = 0;
while ( x > 11)
{
x = x – 12;
i++;
}
if (x < 2)
x = 0;
if (x > 1 && x < 4)
x = 0.9;
if (x > 3 && x < 5)
x = 3.66;
if (x > 4 && x < 7)
x = 4.93;
if (x > 6 && x < 9)
x = 7.07;
if (x > 8 && x < 11)
x = 7.81;
if (x > 10 && x < 12)
x = 10.80;
y = x + (i * 12);
note = y;
}


December 24, 2006 | 8:21 pm

I want microtonal synthesis.


December 24, 2006 | 10:22 pm

Hi Dimitris,

Before providing some suggestions in terms of patching, just a
clarification on the terminology. ‘Microtonal’ refers to the pitch
set used, and has nothing inherent to do with any particular
synthesis method. Any synth patch that will take a direct float for
frequency can be used with whatever scale you want to use. Patches
that take a MIDI note number for determining frequency can be easily
modified to accept a float instead.

So, are you trying to control a synthesis patch within MaxMSP from an
external MIDI source, or does the control structure originate from
within MaxMSP as well? The answer will inform what strategy you might
need to use.

If you are controlling it via an external MIDI controller (via
[notein], for example) a very simple (though perhaps not very
elegant) method would simply create a table of incoming MIDI note
numbers mapped to the desired frequencies; take a look at [table],
[coll], etc. You’d feed the output from the [notein] into the
[table], and the output from the [table] would be the corresponding
frequency to pass on to the synth patch. If you are using less or
more than 12 tones per octave, you’ll need to decide on some way of
mapping physical keys of a standard keyboard onto your ‘non-standard’
octave.

If you are creating the control structure within MaxMSP, it’s a
simple matter of creating a formula that gives you the frequencies
you desire. There are a number of resources for tuning theory that
discuss formulas for N-tet (equal temperament of N pitches per
octave), just intonation, and numerous other schemes. Have a look at
the following texts, and online sources for some ideas.

William A. Sethares, Tuning, Timbre, Spectrum, Scale, 2nd Ed.,
Springer Verlag 2004
David B. Doty, The Just Intonation Primer, 3rd Ed., Other Music, Inc.
2002
Harry Partch, Genesis of a Music, 2nd Ed., Da Capo 1974

For additional suggested articles, etc. take a look at the reading
list and handouts on the website for my tuning course:
< http://pubweb.csf.edu/~smill/courses_06_Spring/
AppliedTuningSystems.html>

Larry Polansky also has some interesting papers and unpublished notes
on his website regarding intonation theory:
<
http://eamusic.dartmouth.edu/~larry/> follow links to ‘miscellaneous
articles, writings’ then ‘small or unpublished writings’ and then
‘music related talks’ and look at the links for ‘Optimal Well
Temperament’ ‘Two Talks’ and ‘Harmony Primer’

Good luck, and have fun.

Steven

On Dec 24, 2006, at 1:21 PM, Dimitris Lambrianos wrote:

>
> I want microtonal synthesis.
> –
>
http://www.dimitrislambrianos.com/

—-
Steven M. Miller

Associate Professor of Contemporary Music
College of Santa Fe
Contemporary Music Program
1600 St. Michaels Drive
Santa Fe NM 87505
http://pubweb.csf.edu/~smill
(505) 473-6197

~~~~~~~~~~~~~~~~~~~~~
SFIFEM
Atrium Sound Space
OVOS
*opportunities for composers & sound artists*


December 24, 2006 | 10:51 pm

>I want microtonal synthesis.
—————————–

I guess I should have asked you questions about what you meant by "microtonal pathes or object" before posting. I just thought that it could be of use in a synth you may have already built.

You want synthesis, well you got it. Poof! Now it’s a synth, hehe. :) Mayhaps someone else could think this is interesting? I duuno, just trying to share.

max v2;
#N vpatcher 100 234 598 786;
#P window setfont Helvetica 9.;
#P window linecount 1;
#P comment 147 259 66 1376265 < - synthesis;
#P user gain~ 105 284 24 100 158 0 1.071519 7.94321 10.;
#P user ezdac~ 105 417 149 450 0;
#P newex 105 258 37 1376265 cycle~;
#P newex 105 227 38 1376265 mtof 0.;
#P comment 165 202 158 1376265 < - MIDI value with cent deviation out;
#P comment 221 132 142 1376265 < - scale type as defined in script;
#P flonum 105 201 56 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P user kslider 105 33 54 0 36 48 31 12 0 128 128 128 128 128 128 255 255 255 0 0 0 0 0 0;
#P window setfont "Sans Serif" 9.;
#P user ubumenu 131 130 83 196617 0 1 1 0;
#X add JustChrom;
#X add JustChrom2;
#X add JustDia;
#X add GradyCentaur;
#X add GradyHexany;
#X add Tenney;
#X add Pelog;
#X add PelogA;
#X add PelogB;
#X add PelogC;
#X add IndianA;
#X add IndianB;
#X add IndianC;
#X add IndianD;
#X add IndianE;
#X prefix_set 0 0 0;
#X pattrmode 1;
#P window setfont Helvetica 9.;
#P newex 105 159 72 1376265 js just_filter.js~;
#P comment 7 54 95 1376265 12TET MIDI value ->;
#P connect 3 0 1 0;
#P connect 1 0 4 0;
#P connect 4 0 7 0;
#P connect 7 0 8 0;
#P connect 8 0 10 0;
#P connect 10 0 9 0;
#P connect 10 0 9 1;
#P connect 2 1 1 1;
#P pop;


December 25, 2006 | 2:25 am

Happy Holidays to everyone — peace, hope, good stuff…

http://music.columbia.edu/~brad/holiday2006/

brad


December 25, 2006 | 2:30 am

Hi Lewis,

What would be nice is a javascript to directly parse the sala tuning
files to fill-in a coll.
Would you have a such js to share?

Best wishes,
Philippe

>> Does anybody know how I can find microtonal patches or object?
> —————————————
>
> This is not set up for equal divisions of the octave but still may
> be of interest to you or others reading this thread. My friend
> Cooper made a java script which filters incoming MIDI data around
> certain chords. I modified it to filter the data around justly
> tuned scales and some scales from Indonesia and India (yes,
> entering the pitch multipliers was TEDIOUS!). First is a little
> patch to see it in action and second is the java script. Save the
> script as just_filter.js~ in your Max search path and then fire up
> the little patch. The script would be easy to modify to do other
> equal divisions of the octave or other microtoal scales….I’m
> planning on doing that someday but have not gotten around to it yet.
>
> The scales are from here:
> http://www.xs4all.nl/~huygensf/scala/
>
> And you might want to check out this:
> http://launch.groups.yahoo.com/group/16tone/


December 25, 2006 | 8:38 am

Guys do you have a patch beacouse I am not very familiar with Java script.


December 25, 2006 | 10:37 am

Interesting topic.

The quicktime DLS synth accepts floating point midi data.. I used it with the ac toolbox and it works great. Otherwise stick to frequency for microtonal synthesis.


December 25, 2006 | 2:29 pm

Very cute, thanks!


December 25, 2006 | 5:40 pm

Hi Alexander,

> The quicktime DLS synth accepts floating point midi data.. I used
> it with the ac toolbox and it works great.

Would you share a patcher to illustrate the ‘floating point midi data’ ?
Thanks ;-)

Best wishes,
Philippe


December 25, 2006 | 5:47 pm

Philippe,

I wish, that would be a very useful script. I don’t really know java myself, a friend wrote that script and I just modified it. I’ve been meaning to learn, so this could be a good project to work toward. The scala data comes as whole number ratios, cents from the tonic and decimal ratios. Any script would have to know how to deal with all 3. I wonder how much trickier that would make it? Good idea!

Lewis

Quote: Philippe Gruchet wrote on Sun, 24 December 2006 18:30
—————————————————-
> Hi Lewis,
>
> What would be nice is a javascript to directly parse the sala tuning
> files to fill-in a coll.
> Would you have a such js to share?
>
> Best wishes,
> Philippe


December 25, 2006 | 5:58 pm

Hey Dimitris,

If you open a new Max patch, instantiate the js object, double click it and then paste the script part of my first message and save it as just_filter.js~ and then create the Max patch from the text you can see it in action. I don’t know java either but it wasn’t that hard to figure out how to edit the script to do what I wanted. Making it 13, 15 or 24 TET will require more tweaking though so it may be too big of a pain for your needs. :)

Lewis

Quote: dimitris108 wrote on Mon, 25 December 2006 00:38
—————————————————-
> Guys do you have a patch beacouse I am not very familiar with Java script.
—————————————————-


December 25, 2006 | 6:29 pm

It doesnt work. Please can you send me the patch?
The script gives me errors.


December 25, 2006 | 7:45 pm

No problem, try this. I hope it works!

Quote: dimitris108 wrote on Mon, 25 December 2006 10:29
—————————————————-
> It doesnt work. Please can you send me the patch?
> The script gives me errors.
>
—————————————————-


December 25, 2006 | 9:09 pm

I have to say thanks to you this is great. I also went to your website and I download some spectacular pathes.

I look in details and I will tel you if I have any questions.


December 25, 2006 | 9:24 pm

Do you have something that can do equal divisions like 13,14,15,22,23,24,31 e.t.c?


December 25, 2006 | 10:58 pm

"ain’t no mountain high enough skronk remix" video = hilariously
brilliant! Thanks for making my day.

Vlad

Vlad Spears
Urbi et orbi

http://www.daevlmakr.com

http://www.2secondfuse.com


December 26, 2006 | 2:01 am

Quote: dimitris108 wrote on Mon, 25 December 2006 14:24
—————————————————-
> Do you have something that can do equal divisions like 13,14,15,22,23,24,31 e.t.c?
—————————————————-

Try "oct.div: abstraction, that divides an octave to any amount of tones (output==frequency)"
by Assif Tsahar &Klaus Filip, in the susers pages at Cycling:

< http://www.cycling74.com/twiki/bin/view/Share/KlausFilip>

Best wishes,
Philippe


December 26, 2006 | 2:15 am

Quote: dimitris108 wrote on Mon, 25 December 2006 13:24
—————————————————-
> Do you have something that can do equal divisions like 13,14,15,22,23,24,31 e.t.c?
—————————————————-

I’m not a fan of equal temp in general. If I’m going to leave 12TET behind I’d rather rock some just intonation. But none the less, here is a little patch which will give you any division of the octave. No java, just vanilla Max (+ a little MSP to hear the tones).

I’d love to see a more elegant solution as I realize that this is probably more cumbersome than it needs to be. Merry happy!

max v2;
#N vpatcher 151 44 528 828;
#P window setfont Helvetica 9.;
#P comment 158 291 115 1376265 < - I choose A;
#P comment 208 153 131 1376265 < - "key slider" to select pitches;
#N vpatcher 24 74 624 474;
#P window setfont Helvetica 9.;
#P message 50 86 39 1376265 size $1;
#P number 50 70 35 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 50 50 27 1376265 * 8;
#P inlet 50 30 15 0;
#P outlet 50 106 15 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 0 0;
#P pop;
#P newobj 58 129 77 1376265 p make8octaves;
#P newex 134 266 47 1376265 loadbang;
#P message 134 290 18 1376265 55;
#P flonum 134 312 35 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 173 314 115 1376265 < - fundamental frequency;
#P flonum 58 375 70 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#N vpatcher 24 74 601 731;
#P window setfont Helvetica 9.;
#P window linecount 5;
#P comment 329 487 111 1376265 this coll holds the mults for each step of the equal tempered scale;
#P comment 429 231 111 1376265 when recalculating new division of steps per octave , this resets the mult value to make the first step the fundamental;
#P flonum 233 293 53 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 0;
#P comment 287 237 53 1376265 this does the math to determine the proper ratio for ET pitches per 8va;
#N comlet mult out;
#P outlet 273 524 15 0;
#N comlet into coll to fetch ratio;
#P inlet 74 52 15 0;
#N comlet tones per 8va;
#P inlet 309 52 15 0;
#P window linecount 1;
#P newex 154 193 27 1376265 – 1;
#P newex 258 237 27 1376265 t b f;
#P message 379 228 14 1376265 1;
#P newex 379 250 51 1376265 value mult;
#P message 182 233 14 1376265 1;
#P message 301 393 14 1376265 0;
#P message 340 448 30 1376265 clear;
#P message 273 367 14 1376265 1;
#P newex 309 114 94 1376265 t b i b b b b i;
#P newex 233 111 47 1376265 loadbang;
#P newex 124 194 18 1376265 t b;
#P newex 273 447 47 1376265 pack 1 2.;
#N coll ;
#P newobj 273 488 53 1376265 coll;
#N counter;
#X flags 0 0;
#P newobj 273 420 66 1376265 counter;
#P newex 273 393 27 1376265 t b f;
#P newex 124 217 40 1376265 uzi 11;
#P button 124 242 15 0;
#P newex 124 263 51 1376265 value mult;
#P flonum 124 286 51 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 216 392 51 1376265 value mult;
#P flonum 216 368 51 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 182 284 35 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 216 340 27 1376265 * 1.;
#P newex 309 177 27 1376265 t b i;
#P message 233 234 14 1376265 2;
#P number 309 89 35 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 283 194 14 1376265 1;
#P newex 283 217 27 1376265 / 12.;
#P newex 233 260 27 1376265 pow;
#P user panel 225 170 114 152;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P connect 21 0 19 0;
#P connect 19 0 14 0;
#P connect 14 0 13 0;
#P connect 13 0 12 0;
#P connect 12 0 11 0;
#P fasten 21 6 29 0 398 155 159 155;
#P connect 29 0 14 1;
#P connect 20 0 25 0;
#P connect 25 0 8 0;
#P connect 11 0 7 0;
#P connect 8 0 7 0;
#P connect 7 0 9 0;
#P connect 9 0 10 0;
#P connect 20 0 5 0;
#P connect 5 0 1 0;
#P connect 28 0 1 0;
#P connect 1 0 34 0;
#P connect 34 0 7 1;
#P connect 28 1 1 1;
#P connect 2 0 28 0;
#P fasten 21 2 22 0 342 340 278 340;
#P connect 22 0 15 0;
#P connect 9 0 15 0;
#P connect 15 0 16 0;
#P connect 16 0 18 0;
#P connect 18 0 17 0;
#P connect 23 0 17 0;
#P fasten 31 0 17 0 79 445;
#P connect 17 0 32 0;
#P connect 20 0 3 0;
#P connect 6 0 2 0;
#P connect 3 0 2 0;
#P connect 6 1 2 1;
#P fasten 21 3 24 0 356 374 306 374;
#P connect 24 0 16 2;
#P connect 30 0 4 0;
#P connect 4 0 21 0;
#P connect 21 1 6 0;
#P connect 15 1 18 1;
#P fasten 21 4 23 0 370 427 345 427;
#P connect 21 5 27 0;
#P connect 27 0 26 0;
#P pop;
#P newobj 58 227 64 1376265 p equal_temp;
#N vpatcher 24 74 624 474;
#P window setfont Helvetica 9.;
#P message 271 133 23 1376265 512;
#P message 239 133 23 1376265 256;
#P message 212 133 23 1376265 128;
#P newex 50 90 144 1376265 sel 0 1 2 3 4 5 6 7 8 9;
#P number 51 70 35 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 50 171 35 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 185 133 18 1376265 64;
#P message 161 133 18 1376265 32;
#P message 135 133 18 1376265 16;
#P message 114 133 14 1376265 8;
#P message 94 133 14 1376265 4;
#P message 70 133 14 1376265 2;
#P message 50 133 14 1376265 1;
#P newex 52 50 27 1376265 / 1;
#P inlet 69 30 15 0;
#P inlet 52 30 15 0;
#P outlet 50 190 15 0;
#P connect 12 0 13 0;
#P connect 13 0 4 0;
#P connect 4 0 11 0;
#P connect 5 0 11 0;
#P connect 6 0 11 0;
#P connect 7 0 11 0;
#P connect 8 0 11 0;
#P connect 9 0 11 0;
#P connect 10 0 11 0;
#P connect 14 0 11 0;
#P connect 15 0 11 0;
#P connect 16 0 11 0;
#P connect 11 0 0 0;
#P connect 3 0 12 0;
#P connect 1 0 3 0;
#P connect 2 0 3 1;
#P connect 13 1 5 0;
#P connect 13 2 6 0;
#P connect 13 3 7 0;
#P connect 13 4 8 0;
#P connect 13 5 9 0;
#P connect 13 6 10 0;
#P connect 13 7 14 0;
#P connect 13 8 15 0;
#P connect 13 9 16 0;
#P pop;
#P newobj 148 227 67 1376265 p octave_mult;
#P window setfont Helvetica 18.;
#P number 205 59 35 18 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P window setfont Helvetica 9.;
#P newex 58 339 29 1376265 * 55.;
#P user ezdac~ 58 591 102 624 0;
#P user gain~ 58 451 24 100 158 0 1.071519 7.94321 10.;
#P newex 102 250 27 1376265 t b i;
#P flonum 58 313 35 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 58 401 37 1376265 cycle~;
#P newex 58 282 27 1376265 * 1.;
#P flonum 58 209 35 9 0 0 0 21 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 58 189 30 1376265 % 15;
#P user hslider 58 152 18 128 40 1 0 0;
#P comment 240 64 100 1376265 < - tones per octave;
#P connect 11 0 19 0;
#P connect 19 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 13 0;
#P connect 13 0 4 0;
#P connect 7 0 4 0;
#P connect 4 0 6 0;
#P connect 6 0 10 0;
#P connect 10 0 14 0;
#P connect 14 0 5 0;
#P connect 5 0 8 0;
#P connect 8 0 9 0;
#P connect 7 1 4 1;
#P connect 16 0 10 1;
#P connect 11 0 2 1;
#P connect 8 0 9 1;
#P connect 12 0 7 0;
#P connect 11 0 13 1;
#P connect 18 0 17 0;
#P connect 17 0 16 0;
#P connect 1 0 12 0;
#P connect 11 0 12 1;
#P pop;


December 26, 2006 | 2:17 am

Quote: spears@2secondfuse.com wrote on Mon, 25 December 2006 14:58
—————————————————-
> "ain’t no mountain high enough skronk remix" video = hilariously
> brilliant! Thanks for making my day.
>
—————————————————-

Awesome, thank YOU so much. It’s really nice to hear feedback!!!


December 26, 2006 | 2:26 am

Quote: Lewis wrote on Mon, 25 December 2006 18:15
—————————————————-
>
> I’d love to see a more elegant solution as I realize that this is probably more cumbersome than it needs to be. Merry happy!
>
—————————————————-

Too funny. I just realized that Trond’s initial post (not to mention the oct.div linked by Philippe) is indeed a more elegant solution to this same problem. Oh well, I learned something doing it myself anyway which seems to be a big part of what makes Max fun for me. Sorry for clogging up inboxes across the globe.

I’ll just shut up for now…. :)

Lewis


December 26, 2006 | 2:41 am

Quote: Lewis wrote on Mon, 25 December 2006 10:47
—————————————————-
> I wish, that would be a very useful script. I don’t really know java myself, a friend wrote that script and I just modified it. I’ve been meaning to learn, so this could be a good project to work toward. The scala data comes as whole number ratios, cents from the tonic and decimal ratios. Any script would have to know how to deal with all 3. I wonder how much trickier that would make it? Good idea!
—————————————————-

Yes, indeed ;-)
I’ll try to bring the most of js code I’m able to find.
(Maybe, this thread should then move to the Javascript part of this forum.)

Unless the ADA source code of Scala to read scl files could be useful for you. (I’m not familiar with language.)
There’s also Mark Henning C++ code to parse the AnaMark / VAZ 1.5 Plus-compatible tuning files (.tun as used in LinPlug synths, Cameleon5000, etc.):

< http://www.mark-henning.de/files/tuning.zip>

Currently, I’m using "Max Magic Microtuner" on Mac to generate coll contents dedicated to replace the mtof object. A *very* cool feature!

"Max Magic Microtuner" website at Yahoo only:
<
http://launch.groups.yahoo.com/group/16tone/>

Bye,
Philippe


December 26, 2006 | 2:43 am

> There’s also Mark Henning C++ code to parse
> the AnaMark / VAZ 1.5 Plus-compatible tuning files
—————————————————-
Also provided in Delphi.


December 26, 2006 | 2:57 am

Quote: Lewis wrote on Mon, 25 December 2006 19:26
—————————————————-
> Sorry for clogging up inboxes across the globe.

And it’s +8 hours here, hehe

> I’ll just shut up for now…. :)

No Lewis, you’re the welcome with all your posts and your joy of sharing your patchers!

Bye’n Best ;-)
Philippe


December 26, 2006 | 3:17 am

Quote: Dayton wrote on Sun, 24 December 2006 01:26

> As a general tip, just [scale] your input to 13, 15,
> 24, etc. and send this information to whatever instrument
> you are using.

if only it would be that easy … :)


December 26, 2006 | 3:24 am

Quote: Roman Thilenius wrote on Mon, 25 December 2006 20:17
—————————————————-
>
> Quote: Dayton wrote on Sun, 24 December 2006 01:26
>
> > As a general tip, just [scale] your input to 13, 15,
> > 24, etc. and send this information to whatever instrument
> > you are using.
>
>
> if only it would be that easy … :)

though, now he said he wants synthesis.

in that case he could indeed go:

note number input (for example from midi data)
-> [* 12.]
-> [/ 13.]
-> [mtof]

to produce a 13 tone scale.

but of course this way middle C is not middle C,
and even notenumber 1 is now notenumber 0.92456673 …

-110


December 26, 2006 | 3:58 am

Guys just post the patch beacuase sometimes what you are saying does not work or it is difficult for me to understand.

Ragarding microtonal synthesis there is no something like that, there are only microtonal intervals.

Anyway I need microtonal scales not in 12-tone scale but equal division, unequal will be even more interesting.


December 26, 2006 | 4:22 am

Dimitris,

> Guys just post the patch because sometimes what you are saying does
> not work or it is difficult for me to understand.
> Regarding microtonal synthesis there is no something like that,
> there are only microtonal intervals.
> Anyway I need microtonal scales not in 12-tone scale but equal
> division, unequal will be even more interesting.

In the following patcher, choose the ‘harmonic steps’ (the number of
pitch per octave) and play with the float number box.
By clicking on its left part, you’ll hear each pitch and in its right
part, the cents.
Copy and in Max, select the "New from Clipboard" command from the
File menu:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P hidden newex 423 74 54 196617 pipe 1 200;
#P hidden newex 423 29 50 196617 loadbang;
#P hidden newex 423 50 64 196617 t b 12 440 0;
#N vpatcher 81 362 390 602;
#P window setfont "Sans Serif" 9.;
#P window linecount 2;
#P comment 16 32 100 196617 by assif tsahar & klaus filip;
#P window linecount 1;
#P message 104 108 20 196617 12;
#P message 156 105 26 196617 440;
#N comlet base frequency;
#P inlet 247 88 15 0;
#P newex 131 29 45 196617 loadbang;
#N comlet frequency (hertz);
#P outlet 12 196 15 0;
#N comlet harmonic steps;
#P inlet 82 126 15 0;
#N comlet int or float;
#P inlet 12 136 15 0;
#P newex 12 166 150 196617 expr exp(ln(2)/$i2 * $f1)*$i3;
#P connect 1 0 0 0;
#P connect 0 0 3 0;
#P connect 2 0 0 1;
#P connect 7 0 0 1;
#P connect 4 0 7 0;
#P connect 6 0 0 2;
#P connect 5 0 0 2;
#P connect 4 0 6 0;
#P pop;
#P newobj 213 101 81 196617 p oct.div 72 440;
#P hidden button 1 80 15 0;
#P message 3 48 134 196617 by assif tsahar & klaus filip;
#P window linecount 4;
#P hidden message 1 107 155 196617 ; max launchbrowser "http://
http://www.cycling74.com/twiki/bin/view/Share/KlausFilip";
#P window linecount 1;
#P comment 326 135 150 196617 – base frequency (default=440);
#P flonum 213 44 86 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 331 77 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 185 214 15 0;
#P flonum 242 190 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 213 212 39 196617 *~ 0.1;
#P newex 203 242 29 196617 dac~;
#P newex 213 166 38 196617 cycle~;
#P flonum 213 123 60 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 248 76 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 276 125 32 196617 hertz;
#P comment 236 62 75 196617 harmonic steps;
#P comment 326 62 49 196617 base freq;
#P window setfont "Sans Serif" 14.;
#P comment 10 24 106 196622 octave divider;
#P window setfont "Sans Serif" 9.;
#P comment 320 105 100 196617 arguments:;
#P comment 326 121 144 196617 – harmonic steps (default=12);
#P comment 194 31 128 196617 pitch on left / cent on right;
#P hidden connect 21 0 23 0;
#P hidden connect 22 0 21 0;
#P hidden connect 21 2 14 0;
#P fasten 14 0 20 2 336 96 288 96;
#P connect 7 0 20 1;
#P hidden connect 21 1 7 0;
#P connect 12 0 11 1;
#P connect 11 0 10 0;
#P connect 11 0 10 1;
#P connect 9 0 11 0;
#P connect 8 0 9 0;
#P connect 20 0 8 0;
#P connect 15 0 20 0;
#P connect 13 0 10 0;
#P hidden connect 23 0 13 0;
#P hidden connect 21 3 13 0;
#P hidden connect 19 0 17 0;
#P hidden connect 18 0 19 0;
#P window clipboard copycount 24;


December 26, 2006 | 4:28 am

Can you please send me the patch?


December 26, 2006 | 4:40 am

Here it is, with equal and unequal octave divisions.

Enjoy!
Philippe


December 26, 2006 | 4:47 am

Thank you Phillipe.

How can I connect this to mtof and the keyboard so it will be more useful?

If you have the patch ready it will help even more.

And again thank you very much.


December 26, 2006 | 5:14 am

No need to put a mtof object in this example.
The mtof is the following expression:

[expr (440. * exp(.057762265 * ($f1 - 69.)));]

And replaced here with:

[expr exp(ln(2)/$f2 * $f1)*$i3]

look inside [p oct.div 72 440] and you’ll understand.

A second patcher with a keyboard you can replace with a [notein] object of course.


December 26, 2006 | 1:55 pm


December 26, 2006 | 2:14 pm

Ok I got it.
Thanks for the email


December 26, 2006 | 7:09 pm

max v2;
#N vpatcher 4 44 1152 768;
#P window setfont "Sans Serif" 9.;
#P window linecount 2;
#P comment 499 445 85 196617 to feed an oscillator ….;
#P window linecount 1;
#P comment 616 294 100 196617 master tune ref: a3;
#P number 535 321 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 617 321 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 453 344 175 196617 expr exp(ln(2)/$i2 * ($f1-69))*$f3;
#P comment 534 294 85 196617 divisions/octave;
#P number 532 98 35 9 1 0 65 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 432 438 51 196617 pack 1 1.;
#P button 500 98 15 0;
#N coll ;
#P newobj 432 461 53 196617 coll;
#P newex 500 139 42 196617 Uzi 128;
#P comment 570 98 70 196617 no. of indexes;
#P newex 31 89 69 196617 unpack 1 1 1.;
#P newex 31 62 105 196617 loadmess 69 12 443.;
#P message 300 364 127 196617 443.;
#P newex 300 336 61 196617 prepend set;
#P number 124 284 35 9 0 0 256 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 287 257 100 196617 master tune ref: a3;
#P flonum 124 336 172 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 206 284 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 288 284 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 124 307 175 196617 expr exp(ln(2)/$i2 * ($f1-69))*$f3;
#P comment 205 257 85 196617 divisions/octave;
#P connect 9 0 10 0;
#P fasten 10 0 6 0 36 195 129 195;
#P connect 6 0 1 0;
#P connect 1 0 4 0;
#P fasten 10 1 3 0 65 194 211 194;
#P connect 3 0 1 1;
#P fasten 10 2 2 0 94 194 293 194;
#P connect 2 0 1 2;
#P fasten 1 0 7 0 129 330 305 330;
#P connect 7 0 8 0;
#P fasten 12 2 15 0 537 226 437 226;
#P connect 15 0 13 0;
#P fasten 12 2 18 0 537 250 458 250;
#P fasten 18 0 15 1 458 399 478 399;
#P connect 14 0 12 0;
#P connect 16 0 12 1;
#P fasten 10 1 20 0 65 212 540 212;
#P connect 20 0 18 1;
#P fasten 10 2 19 0 94 212 622 212;
#P connect 19 0 18 2;
#P pop;

mit freundlichen Grüßen,

Matthias Schneider-Hollek

digital masters
c/o Musik der Jahrhunderte
Siemensstr. 13
7o469 Stuttgart

studio: xx-49-711-6o7o78o
mobil: xx-49-177-2o57o58

http://www.hollek.de
http://www.digitalmasters.de
http://www.durbanpoison.info

Am 26.12.2006 um 04:58 schrieb Dimitris Lambrianos:

>
> Guys just post the patch beacuase sometimes what you are saying
> does not work or it is difficult for me to understand.
>
> Ragarding microtonal synthesis there is no something like that,
> there are only microtonal intervals.
>
> Anyway I need microtonal scales not in 12-tone scale but equal
> division, unequal will be even more interesting.
> –
> http://www.dimitrislambrianos.com/


December 26, 2006 | 7:34 pm

My MaxMSP-based application Quintet.net (www.quintet.net) is capable
of playback of any microtonal scale. (Victor Cerullo’s Magic
Microtuner application has an option to export Scala tunings in a
format that can be understood by Quintet.net.)

Playback is either via
1. built-in sampler (a bank editor is part of the release)
2. MIDI/DLS instruments
3. vst plugins or
4. custom-designed plugins (audioextensions) in Quintet.net own
plugin format (basically MaxMSP patches).

What sets Quintet.net apart from other microtonal applications is
that it features real-time notation in 8th-tone approximation. In
addition, a number processes can be used to alter the musical input
(e.g. harmonization) which in turn can be send through a filter to
approximate added pitches to the selected tuning or to other tunings;
for instance, a motif in Bohlen-Pierce tuning can be approximated to
22TET or Harry Partch’s non-equidistant, just tuning.

Quintet.net can be used as a standalone microtonal sampler but also
as a multimedia performance environment in which 5 players, one
conductor and any number of VJs can interact over local networks or
the Internet.

Caveat: Quintet.net is not an environment which one can figure out in
a two-minute session, but once you delve into it you’ll probably
realize its potential which is built on the endless possibilities of
MaxMSP.

Georg

On Dec 26, 2006, at 3:14 PM, Dimitris Lambrianos wrote:

>
> Ok I got it.
> Thanks for the email
> –
> http://www.dimitrislambrianos.com/


December 27, 2006 | 4:44 am

Hi Georg!

Are you using the mtof and/or coll export features of MMMicrotuner, or do you directly load Scala files as scl, mtx, tun, etc. file formats?

Thanks,
Philippe


December 27, 2006 | 6:39 am

I have to buy MM Microtuner.
Can I import file into Max/Msp from Microtuner?


December 27, 2006 | 6:40 am

I have to buy MM Microtuner.
Can I import file into Max/Msp from Microtuner?


December 27, 2006 | 6:52 am

Yes. This software allows to export custom ‘mtof’ objects built from the current frequencies table, or text files in frequencies or cents for the coll object. Such tables for coll have then to be ‘read’ from coll to be loaded (see the coll features).
Try both and find by yourself the most useful way of working for your own project.

Bye,
Philippe


December 27, 2006 | 7:46 am

Thank you for the information I will definately buy this software now.


December 27, 2006 | 7:58 am

Phillipe, Lewis you are very helpful to me.


December 27, 2006 | 9:42 am

Quote: dimitris108 wrote on Wed, 27 December 2006 08:46
—————————————————-
> Thank you for the information I will definitely buy this software now.
—————————————————-

I frequently work with the author, Victor Cerullo.
Subscribe to its group at Yahoo for all bug repports and feature requests, or any other question.

< http://launch.groups.yahoo.com/group/16tone/>

Also, take a look at the Files repertory. You’ll find several useful archives, pdf, etc.

Bye,
Philippe


December 27, 2006 | 9:44 am

Quote: dimitris108 wrote on Wed, 27 December 2006 08:58
—————————————————-
> Philippe, Lewis you are very helpful to me.
—————————————————-

Kind words!
So, you’re welcome ;-)


December 27, 2006 | 10:33 am

HI Philippe,

I use one of the coll export formats, which Victor implemented on my
request.

Regards,

Georg

On Dec 27, 2006, at 5:44 AM, Philippe Gruchet wrote:

>
> Hi Georg!
>
> Are you using the mtof and/or coll export features of MMMicrotuner,
> or do you directly load Scala files as scl, mtx, tun, etc. file
> formats?
>
> Thanks,
> Philippe


December 27, 2006 | 11:18 am

>> Are you using the mtof and/or coll export features of
>> MMMicrotuner, or do you directly load Scala files as scl, mtx,
>> tun, etc. file formats?
> I use one of the coll export formats, which Victor implemented on
> my request.

Oh yes, I remember now from your post about the Ircam cents.
Thanks!


January 28, 2009 | 8:50 pm


January 28, 2009 | 9:06 pm


January 28, 2009 | 9:49 pm

With munger you can do this using the scale-message by creating a pitch-sieve ( see munger-help file) I made a small utility some years ago. You will need the Ltocoll-object from Peter Elsea’s L-objects.
so hope this helps :
max v2;
#N vpatcher 10 45 1151 767;
#P origin 6 19;
#P number 932 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 976 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 1020 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 1064 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 712 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 756 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 800 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 844 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 888 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 492 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 536 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 580 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 624 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 668 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 272 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 316 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 360 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 404 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 448 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 52 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 96 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 140 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 184 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 228 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 1050 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 1006 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 962 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 918 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 874 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 830 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 786 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 742 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 698 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 654 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 610 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 566 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 522 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 478 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 434 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 390 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 346 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 302 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 258 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 214 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 170 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 126 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 82 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 38 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 408 642 50 196617 open;
#P hidden message 21 507 174 196617 scale 3.04 1.07 1.07 4. 4. 4. 0.07 0.07 7.08 7.08 7.08 -0.06 -12.46 0.06 0.06 -0.19 -0.19 -0.19 22.1 22.1 -8.06 -8.06 -8.06 -8.06 4.9 4.9 4.9;
#P button 41 381 35 0;
#P comment 77 380 108 196620 5) send directly to munger;
#P hidden newex 21 603 93 196617 send to_munger;
#P hidden newex 21 442 160 196617 prepend scale;
#P hidden newex 21 465 151 196617 prepend set;
#P newex 191 441 60 196617 prepend set;
#P newex 38 214 93 196617 send to_munger;
#P comment 571 581 135 196617 If that address is beyond the set range , it is used , but the automatic sequence will start at the beginning.;
#P comment 570 530 135 196617 Int in left sets address to use next. Automatic address sequencing will continue from that point.;
#P comment 239 535 102 196617 If there are no Args , addresses run from 0 to 250.;
#P comment 239 579 100 196617 Reset begins the address series over.;
#P button 395 421 35 0;
#N coll Munger-Sieves;
#P newobj 457 662 80 196617 coll Munger-Sieves;
#P number 509 633 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 509 571 35 9 0 0 65 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 457 596 62 196617 Ltocoll 0 250;
#P message 354 551 32 196617 reset;
#N vpatcher 40 55 519 554;
#N comlet multiples;
#P inlet 142 45 15 0;
#N comlet number list;
#P inlet 78 45 15 0;
#N vpatcher 40 55 502 273;
#P button 271 112 15 0;
#P newex 243 171 75 196617 print •multiple;
#P message 243 143 175 196617 both lists must have the same length!;
#P inlet 243 45 15 0;
#P newex 243 77 36 196617 listlen;
#P newex 86 77 36 196617 listlen;
#P newex 86 110 167 196617 if $i1==$i2 then $i1 else out2 bang;
#P outlet 86 162 15 0;
#P inlet 86 45 15 0;
#P connect 0 0 3 0;
#P connect 3 0 2 0;
#P connect 2 0 1 0;
#P connect 5 0 4 0;
#P connect 4 0 2 1;
#P connect 8 0 6 0;
#P connect 2 1 6 0;
#P connect 6 0 7 0;
#P pop;
#P newobj 78 86 74 196617 p check-listlen;
#P newex 78 268 220 196617 collect;
#P button 22 268 15 0;
#P outlet 78 398 15 0;
#P message 78 300 344 196617 3.04 1.07 1.07 4. 4. 4. 0.07 0.07 7.08 7.08 7.08 -0.06 -12.46 0.06 0.06 -0.19 -0.19 -0.19 22.1 22.1 -8.06 -8.06 -8.06 -8.06 4.9 4.9 4.9;
#P newex 149 179 48 196617 sequence;
#P newex 78 179 48 196617 sequence;
#P newex 78 209 27 196617 Uzi;
#P newex 78 239 81 196617 float;
#P newex 78 150 81 196617 t b b;
#P newex 78 116 27 196617 Uzi;
#P button 288 239 15 0;
#P comment 103 367 112 196617 1994 by Karlheinz Essl;
#P comment 103 386 100 196617 changed to float version by A.B.2002;
#P connect 14 0 11 0;
#P connect 14 0 13 0;
#P connect 13 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 7 0;
#P connect 7 0 6 0;
#P connect 6 0 5 0;
#P connect 5 0 12 0;
#P connect 11 0 9 0;
#P connect 12 0 9 0;
#P connect 9 0 10 0;
#P connect 15 0 7 1;
#P connect 15 0 13 1;
#P connect 4 1 8 0;
#P connect 8 0 5 1;
#P connect 14 0 8 1;
#P connect 14 0 2 0;
#P connect 15 0 2 0;
#P connect 2 0 12 1;
#P pop;
#P newobj 191 418 129 196617 p float-multiple;
#P message 191 480 551 196617 3.04 1.07 1.07 4. 4. 4. 0.07 0.07 7.08 7.08 7.08 -0.06 -12.46 0.06 0.06 -0.19 -0.19 -0.19 22.1 22.1 -8.06 -8.06 -8.06 -8.06 4.9 4.9 4.9;
#P newex 270 361 50 196617 t b l;
#P message 191 394 437 196617 3.04 1.07 4. 0.07 7.08 -0.06 -12.46 0.06 -0.19 22.1 -8.06 4.9;
#P newex 191 361 71 196617 prepend set;
#P message 948 356 172 196617 1 2 3 2 3 1 1 2 3 2 4 3;
#N vpatcher 50 40 1011 466;
#P newex 112 322 31 196617 show;
#N comlet display;
#P outlet 112 346 15 0;
#N comlet multiplying factor;
#P inlet 811 94 15 0;
#N comlet list-length;
#P inlet 884 47 25 0;
#P newex 52 281 50 196617 zl slice;
#N comlet multiplying factor;
#P inlet 745 93 15 0;
#N comlet multiplying factor;
#P inlet 778 93 15 0;
#N comlet multiplying factor;
#P inlet 613 93 15 0;
#N comlet multiplying factor;
#P inlet 679 93 15 0;
#N comlet multiplying factor;
#P inlet 547 93 15 0;
#N comlet multiplying factor;
#P inlet 481 93 15 0;
#N comlet multiplying factor;
#P inlet 349 93 15 0;
#N comlet multiplying factor;
#P inlet 415 93 15 0;
#N comlet multiplying factor;
#P inlet 283 93 15 0;
#N comlet multiplying factor;
#P inlet 85 93 15 0;
#N comlet multiplying factor;
#P inlet 151 93 15 0;
#N comlet multiplying factor;
#P inlet 217 93 15 0;
#N comlet multiplying factor;
#P inlet 712 93 15 0;
#N comlet multiplying factor;
#P inlet 580 93 15 0;
#N comlet multiplying factor;
#P inlet 646 93 15 0;
#N comlet multiplying factor;
#P inlet 514 93 15 0;
#N comlet multiplying factor;
#P inlet 448 93 15 0;
#N comlet multiplying factor;
#P inlet 316 93 15 0;
#N comlet multiplying factor;
#P inlet 382 93 15 0;
#N comlet multiplying factor;
#P inlet 250 93 15 0;
#P newex 52 242 785 196617 pack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#N comlet multiplying factor;
#P inlet 52 93 15 0;
#P button 30 219 15 0;
#N comlet multiplying factor;
#P inlet 118 93 15 0;
#N comlet multiplying factor;
#P inlet 184 93 15 0;
#N comlet multiple list;
#P outlet 52 346 15 0;
#P connect 24 0 3 0;
#P connect 13 0 3 0;
#P connect 11 0 3 0;
#P connect 12 0 3 0;
#P connect 10 0 3 0;
#P connect 9 0 3 0;
#P connect 7 0 3 0;
#P connect 8 0 3 0;
#P connect 6 0 3 0;
#P connect 1 0 3 0;
#P connect 2 0 3 0;
#P connect 16 0 3 0;
#P connect 4 0 3 0;
#P connect 28 0 3 0;
#P connect 25 0 3 0;
#P connect 22 0 3 0;
#P connect 23 0 3 0;
#P connect 21 0 3 0;
#P connect 20 0 3 0;
#P connect 18 0 3 0;
#P connect 19 0 3 0;
#P connect 17 0 3 0;
#P connect 14 0 3 0;
#P connect 15 0 3 0;
#P connect 4 0 5 0;
#P connect 3 0 5 0;
#P connect 5 0 26 0;
#P connect 26 0 0 0;
#P connect 16 0 5 1;
#P fasten 27 0 26 1 889 271 97 271;
#P connect 26 0 30 0;
#P connect 30 0 29 0;
#P connect 2 0 5 2;
#P connect 15 0 5 3;
#P connect 1 0 5 4;
#P connect 14 0 5 5;
#P connect 6 0 5 6;
#P connect 17 0 5 7;
#P connect 8 0 5 8;
#P connect 19 0 5 9;
#P connect 7 0 5 10;
#P connect 18 0 5 11;
#P connect 9 0 5 12;
#P connect 20 0 5 13;
#P connect 10 0 5 14;
#P connect 21 0 5 15;
#P connect 12 0 5 16;
#P connect 23 0 5 17;
#P connect 11 0 5 18;
#P connect 22 0 5 19;
#P connect 13 0 5 20;
#P connect 25 0 5 21;
#P connect 24 0 5 22;
#P connect 28 0 5 23;
#P pop;
#P newobj 52 325 1073 196617 p multifier;
#P number 1049 14 59 14 0 24 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 2 14 35 0;
#P newex 38 139 160 196617 prepend scale;
#P newex 38 162 151 196617 prepend set;
#P message 38 193 469 196617 scale 3.04 1.07 4. 0.07 7.08 -0.06 -12.46 0.06 -0.19 22.1 -8.06 4.9;
#N vpatcher 50 40 1007 425;
#N comlet semitones;
#P inlet 660 134 15 0;
#N comlet semitones;
#P inlet 532 134 15 0;
#N comlet semitones;
#P inlet 404 134 15 0;
#N comlet list-length;
#P inlet 884 47 25 0;
#P newex 52 281 50 196617 zl slice;
#N comlet microtones;
#P inlet 724 134 15 0;
#N comlet microtones;
#P inlet 756 134 15 0;
#N comlet microtones;
#P inlet 468 134 15 0;
#N comlet microtones;
#P inlet 596 134 15 0;
#N comlet microtones;
#P inlet 276 134 15 0;
#N comlet microtones;
#P inlet 340 134 15 0;
#N comlet microtones;
#P inlet 212 134 15 0;
#N comlet microtones;
#P inlet 84 134 15 0;
#N comlet microtones;
#P inlet 148 134 15 0;
#N comlet semitones;
#P inlet 692 134 15 0;
#N comlet semitones;
#P inlet 788 134 15 0;
#N comlet semitones;
#P inlet 628 134 15 0;
#N comlet semitones;
#P inlet 436 134 15 0;
#N comlet semitones;
#P inlet 500 134 15 0;
#N comlet semitones;
#P inlet 564 134 15 0;
#N comlet semitones;
#P inlet 244 134 15 0;
#N comlet semitones;
#P inlet 308 134 15 0;
#N comlet semitones;
#P inlet 372 134 15 0;
#N comlet semitones;
#P inlet 180 134 15 0;
#P newex 52 242 749 196617 pack 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.;
#P button 24 214 15 0;
#N comlet semitones;
#P inlet 52 134 15 0;
#N comlet semitones;
#P inlet 116 134 15 0;
#N comlet multiple list;
#P outlet 52 307 15 0;
#P connect 13 0 3 0;
#P connect 22 0 3 0;
#P connect 23 0 3 0;
#P connect 14 0 3 0;
#P connect 28 0 3 0;
#P connect 12 0 3 0;
#P connect 20 0 3 0;
#P connect 9 0 3 0;
#P connect 27 0 3 0;
#P connect 10 0 3 0;
#P connect 21 0 3 0;
#P connect 11 0 3 0;
#P connect 26 0 3 0;
#P connect 6 0 3 0;
#P connect 18 0 3 0;
#P connect 7 0 3 0;
#P connect 19 0 3 0;
#P connect 8 0 3 0;
#P connect 17 0 3 0;
#P connect 5 0 3 0;
#P connect 15 0 3 0;
#P connect 1 0 3 0;
#P connect 16 0 3 0;
#P connect 2 0 3 0;
#P connect 2 0 4 0;
#P connect 3 0 4 0;
#P connect 4 0 24 0;
#P connect 24 0 0 0;
#P connect 16 0 4 1;
#P fasten 25 0 24 1 889 271 97 271;
#P connect 1 0 4 2;
#P connect 15 0 4 3;
#P connect 5 0 4 4;
#P connect 17 0 4 5;
#P connect 8 0 4 6;
#P connect 19 0 4 7;
#P connect 7 0 4 8;
#P connect 18 0 4 9;
#P connect 6 0 4 10;
#P connect 26 0 4 11;
#P connect 11 0 4 12;
#P connect 21 0 4 13;
#P connect 10 0 4 14;
#P connect 27 0 4 15;
#P connect 9 0 4 16;
#P connect 20 0 4 17;
#P connect 12 0 4 18;
#P connect 28 0 4 19;
#P connect 14 0 4 20;
#P connect 23 0 4 21;
#P connect 22 0 4 22;
#P connect 13 0 4 23;
#P pop;
#P newobj 38 114 1073 196617 p make-pitch-sieve;
#P comment 463 13 137 196620 2) adjust pitch sieve;
#P comment 477 260 132 196620 4) weight definition;
#P comment 38 13 203 196620 3) send directly to munger;
#P comment 889 13 159 196620 1) define length of list;
#P comment 430 422 111 196620 6) bang to send to coll;
#P comment 887 358 53 196617 weight list;
#P comment 306 639 100 196617 copy & paste where ever you need it;
#P hidden fasten 19 0 33 0 196 438 26 438;
#P hidden connect 33 0 32 0;
#P hidden connect 32 0 37 0;
#P hidden fasten 36 0 37 0 46 426 4 426 4 477 4 484 26 484;
#P hidden connect 37 0 34 0;
#P connect 39 0 7 0;
#P connect 7 0 10 0;
#P connect 10 0 9 0;
#P fasten 11 0 8 0 7 183 43 183;
#P connect 9 0 8 0;
#P connect 8 0 30 0;
#P connect 67 0 13 0;
#P connect 40 0 7 1;
#P connect 66 0 13 1;
#P connect 41 0 7 2;
#P connect 65 0 13 2;
#P connect 42 0 7 3;
#P connect 64 0 13 3;
#P fasten 7 0 15 0 43 134 28 134 28 356 196 356;
#P connect 15 0 16 0;
#P fasten 17 0 16 0 275 386 196 386;
#P connect 16 0 19 0;
#P connect 19 0 31 0;
#P fasten 25 0 18 0 400 473 196 473;
#P connect 31 0 18 0;
#P connect 43 0 7 4;
#P connect 63 0 13 4;
#P connect 44 0 7 5;
#P fasten 13 0 17 0 57 351 275 351;
#P connect 72 0 13 5;
#P connect 45 0 7 6;
#P fasten 17 1 19 1 315 383 646 383 646 413 315 413;
#P connect 71 0 13 6;
#P connect 46 0 7 7;
#P connect 70 0 13 7;
#P connect 47 0 7 8;
#P connect 69 0 13 8;
#P connect 48 0 7 9;
#P connect 68 0 13 9;
#P fasten 18 0 21 0 196 507 462 507 462 526 462 526;
#P fasten 20 0 21 0 359 580 462 580;
#P connect 21 0 24 0;
#P fasten 38 0 24 0 413 658 462 658;
#P connect 49 0 7 10;
#P connect 77 0 13 10;
#P connect 22 0 21 1;
#P connect 21 1 23 0;
#P connect 50 0 7 11;
#P connect 76 0 13 11;
#P connect 51 0 7 12;
#P connect 75 0 13 12;
#P connect 52 0 7 13;
#P connect 74 0 13 13;
#P connect 53 0 7 14;
#P connect 73 0 13 14;
#P connect 54 0 7 15;
#P connect 82 0 13 15;
#P connect 55 0 7 16;
#P connect 81 0 13 16;
#P connect 56 0 7 17;
#P connect 80 0 13 17;
#P connect 57 0 7 18;
#P connect 79 0 13 18;
#P connect 58 0 7 19;
#P connect 78 0 13 19;
#P connect 59 0 7 20;
#P connect 86 0 13 20;
#P fasten 13 1 14 0 1120 349 953 349;
#P connect 60 0 7 21;
#P connect 85 0 13 21;
#P connect 61 0 7 22;
#P connect 84 0 13 22;
#P connect 62 0 7 23;
#P connect 83 0 13 23;
#P fasten 12 0 7 24 1054 46 1099 46;
#P fasten 12 0 13 24 1054 46 1113 46;
#P pop;

_Andreas


January 29, 2009 | 4:43 am

wow! thanks a lot for this.

On Wed, Jan 28, 2009 at 4:49 PM, Andreas Breitscheid <
abreitscheid@sonicscene.de> wrote:

>
> With munger you can do this using the scale-message by creating a
> pitch-sieve ( see munger-help file) I made a small utility some years ago.
> You will need the Ltocoll-object from Peter Elsea’s L-objects.
> so hope this helps :
> max v2;
> #N vpatcher 10 45 1151 767;
> #P origin 6 19;
> #P number 932 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 976 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 1020 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 1064 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 712 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 756 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 800 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 844 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 888 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 492 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 536 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 580 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 624 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 668 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 272 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 316 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 360 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 404 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 448 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 52 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 96 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 140 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 184 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 228 300 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 1050 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 1006 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 962 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 918 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 874 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 830 84 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 786 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 742 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 698 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 654 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 610 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 566 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 522 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 478 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 434 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 390 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 346 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 302 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 258 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 214 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 170 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 126 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 82 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 38 85 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P message 408 642 50 196617 open;
> #P hidden message 21 507 174 196617 scale 3.04 1.07 1.07 4. 4. 4. 0.07 0.07
> 7.08 7.08 7.08 -0.06 -12.46 0.06 0.06 -0.19 -0.19 -0.19 22.1 22.1 -8.06
> -8.06 -8.06 -8.06 4.9 4.9 4.9;
> #P button 41 381 35 0;
> #P comment 77 380 108 196620 5) send directly to munger;
> #P hidden newex 21 603 93 196617 send to_munger;
> #P hidden newex 21 442 160 196617 prepend scale;
> #P hidden newex 21 465 151 196617 prepend set;
> #P newex 191 441 60 196617 prepend set;
> #P newex 38 214 93 196617 send to_munger;
> #P comment 571 581 135 196617 If that address is beyond the set range , it
> is used , but the automatic sequence will start at the beginning.;
> #P comment 570 530 135 196617 Int in left sets address to use next.
> Automatic address sequencing will continue from that point.;
> #P comment 239 535 102 196617 If there are no Args , addresses run from 0
> to 250.;
> #P comment 239 579 100 196617 Reset begins the address series over.;
> #P button 395 421 35 0;
> #N coll Munger-Sieves;
> #P newobj 457 662 80 196617 coll Munger-Sieves;
> #P number 509 633 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P number 509 571 35 9 0 0 65 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 457 596 62 196617 Ltocoll 0 250;
> #P message 354 551 32 196617 reset;
> #N vpatcher 40 55 519 554;
> #N comlet multiples;
> #P inlet 142 45 15 0;
> #N comlet number list;
> #P inlet 78 45 15 0;
> #N vpatcher 40 55 502 273;
> #P button 271 112 15 0;
> #P newex 243 171 75 196617 print •multiple;
> #P message 243 143 175 196617 both lists must have the same length!;
> #P inlet 243 45 15 0;
> #P newex 243 77 36 196617 listlen;
> #P newex 86 77 36 196617 listlen;
> #P newex 86 110 167 196617 if $i1==$i2 then $i1 else out2 bang;
> #P outlet 86 162 15 0;
> #P inlet 86 45 15 0;
> #P connect 0 0 3 0;
> #P connect 3 0 2 0;
> #P connect 2 0 1 0;
> #P connect 5 0 4 0;
> #P connect 4 0 2 1;
> #P connect 8 0 6 0;
> #P connect 2 1 6 0;
> #P connect 6 0 7 0;
> #P pop;
> #P newobj 78 86 74 196617 p check-listlen;
> #P newex 78 268 220 196617 collect;
> #P button 22 268 15 0;
> #P outlet 78 398 15 0;
> #P message 78 300 344 196617 3.04 1.07 1.07 4. 4. 4. 0.07 0.07 7.08 7.08
> 7.08 -0.06 -12.46 0.06 0.06 -0.19 -0.19 -0.19 22.1 22.1 -8.06 -8.06 -8.06
> -8.06 4.9 4.9 4.9;
> #P newex 149 179 48 196617 sequence;
> #P newex 78 179 48 196617 sequence;
> #P newex 78 209 27 196617 Uzi;
> #P newex 78 239 81 196617 float;
> #P newex 78 150 81 196617 t b b;
> #P newex 78 116 27 196617 Uzi;
> #P button 288 239 15 0;
> #P comment 103 367 112 196617 1994 by Karlheinz Essl;
> #P comment 103 386 100 196617 changed to float version by A.B.2002;
> #P connect 14 0 11 0;
> #P connect 14 0 13 0;
> #P connect 13 0 3 0;
> #P connect 3 0 4 0;
> #P connect 4 0 7 0;
> #P connect 7 0 6 0;
> #P connect 6 0 5 0;
> #P connect 5 0 12 0;
> #P connect 11 0 9 0;
> #P connect 12 0 9 0;
> #P connect 9 0 10 0;
> #P connect 15 0 7 1;
> #P connect 15 0 13 1;
> #P connect 4 1 8 0;
> #P connect 8 0 5 1;
> #P connect 14 0 8 1;
> #P connect 14 0 2 0;
> #P connect 15 0 2 0;
> #P connect 2 0 12 1;
> #P pop;
> #P newobj 191 418 129 196617 p float-multiple;
> #P message 191 480 551 196617 3.04 1.07 1.07 4. 4. 4. 0.07 0.07 7.08 7.08
> 7.08 -0.06 -12.46 0.06 0.06 -0.19 -0.19 -0.19 22.1 22.1 -8.06 -8.06 -8.06
> -8.06 4.9 4.9 4.9;
> #P newex 270 361 50 196617 t b l;
> #P message 191 394 437 196617 3.04 1.07 4. 0.07 7.08 -0.06 -12.46 0.06
> -0.19 22.1 -8.06 4.9;
> #P newex 191 361 71 196617 prepend set;
> #P message 948 356 172 196617 1 2 3 2 3 1 1 2 3 2 4 3;
> #N vpatcher 50 40 1011 466;
> #P newex 112 322 31 196617 show;
> #N comlet display;
> #P outlet 112 346 15 0;
> #N comlet multiplying factor;
> #P inlet 811 94 15 0;
> #N comlet list-length;
> #P inlet 884 47 25 0;
> #P newex 52 281 50 196617 zl slice;
> #N comlet multiplying factor;
> #P inlet 745 93 15 0;
> #N comlet multiplying factor;
> #P inlet 778 93 15 0;
> #N comlet multiplying factor;
> #P inlet 613 93 15 0;
> #N comlet multiplying factor;
> #P inlet 679 93 15 0;
> #N comlet multiplying factor;
> #P inlet 547 93 15 0;
> #N comlet multiplying factor;
> #P inlet 481 93 15 0;
> #N comlet multiplying factor;
> #P inlet 349 93 15 0;
> #N comlet multiplying factor;
> #P inlet 415 93 15 0;
> #N comlet multiplying factor;
> #P inlet 283 93 15 0;
> #N comlet multiplying factor;
> #P inlet 85 93 15 0;
> #N comlet multiplying factor;
> #P inlet 151 93 15 0;
> #N comlet multiplying factor;
> #P inlet 217 93 15 0;
> #N comlet multiplying factor;
> #P inlet 712 93 15 0;
> #N comlet multiplying factor;
> #P inlet 580 93 15 0;
> #N comlet multiplying factor;
> #P inlet 646 93 15 0;
> #N comlet multiplying factor;
> #P inlet 514 93 15 0;
> #N comlet multiplying factor;
> #P inlet 448 93 15 0;
> #N comlet multiplying factor;
> #P inlet 316 93 15 0;
> #N comlet multiplying factor;
> #P inlet 382 93 15 0;
> #N comlet multiplying factor;
> #P inlet 250 93 15 0;
> #P newex 52 242 785 196617 pack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> 0 0;
> #N comlet multiplying factor;
> #P inlet 52 93 15 0;
> #P button 30 219 15 0;
> #N comlet multiplying factor;
> #P inlet 118 93 15 0;
> #N comlet multiplying factor;
> #P inlet 184 93 15 0;
> #N comlet multiple list;
> #P outlet 52 346 15 0;
> #P connect 24 0 3 0;
> #P connect 13 0 3 0;
> #P connect 11 0 3 0;
> #P connect 12 0 3 0;
> #P connect 10 0 3 0;
> #P connect 9 0 3 0;
> #P connect 7 0 3 0;
> #P connect 8 0 3 0;
> #P connect 6 0 3 0;
> #P connect 1 0 3 0;
> #P connect 2 0 3 0;
> #P connect 16 0 3 0;
> #P connect 4 0 3 0;
> #P connect 28 0 3 0;
> #P connect 25 0 3 0;
> #P connect 22 0 3 0;
> #P connect 23 0 3 0;
> #P connect 21 0 3 0;
> #P connect 20 0 3 0;
> #P connect 18 0 3 0;
> #P connect 19 0 3 0;
> #P connect 17 0 3 0;
> #P connect 14 0 3 0;
> #P connect 15 0 3 0;
> #P connect 4 0 5 0;
> #P connect 3 0 5 0;
> #P connect 5 0 26 0;
> #P connect 26 0 0 0;
> #P connect 16 0 5 1;
> #P fasten 27 0 26 1 889 271 97 271;
> #P connect 26 0 30 0;
> #P connect 30 0 29 0;
> #P connect 2 0 5 2;
> #P connect 15 0 5 3;
> #P connect 1 0 5 4;
> #P connect 14 0 5 5;
> #P connect 6 0 5 6;
> #P connect 17 0 5 7;
> #P connect 8 0 5 8;
> #P connect 19 0 5 9;
> #P connect 7 0 5 10;
> #P connect 18 0 5 11;
> #P connect 9 0 5 12;
> #P connect 20 0 5 13;
> #P connect 10 0 5 14;
> #P connect 21 0 5 15;
> #P connect 12 0 5 16;
> #P connect 23 0 5 17;
> #P connect 11 0 5 18;
> #P connect 22 0 5 19;
> #P connect 13 0 5 20;
> #P connect 25 0 5 21;
> #P connect 24 0 5 22;
> #P connect 28 0 5 23;
> #P pop;
> #P newobj 52 325 1073 196617 p multifier;
> #P number 1049 14 59 14 0 24 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P button 2 14 35 0;
> #P newex 38 139 160 196617 prepend scale;
> #P newex 38 162 151 196617 prepend set;
> #P message 38 193 469 196617 scale 3.04 1.07 4. 0.07 7.08 -0.06 -12.46 0.06
> -0.19 22.1 -8.06 4.9;
> #N vpatcher 50 40 1007 425;
> #N comlet semitones;
> #P inlet 660 134 15 0;
> #N comlet semitones;
> #P inlet 532 134 15 0;
> #N comlet semitones;
> #P inlet 404 134 15 0;
> #N comlet list-length;
> #P inlet 884 47 25 0;
> #P newex 52 281 50 196617 zl slice;
> #N comlet microtones;
> #P inlet 724 134 15 0;
> #N comlet microtones;
> #P inlet 756 134 15 0;
> #N comlet microtones;
> #P inlet 468 134 15 0;
> #N comlet microtones;
> #P inlet 596 134 15 0;
> #N comlet microtones;
> #P inlet 276 134 15 0;
> #N comlet microtones;
> #P inlet 340 134 15 0;
> #N comlet microtones;
> #P inlet 212 134 15 0;
> #N comlet microtones;
> #P inlet 84 134 15 0;
> #N comlet microtones;
> #P inlet 148 134 15 0;
> #N comlet semitones;
> #P inlet 692 134 15 0;
> #N comlet semitones;
> #P inlet 788 134 15 0;
> #N comlet semitones;
> #P inlet 628 134 15 0;
> #N comlet semitones;
> #P inlet 436 134 15 0;
> #N comlet semitones;
> #P inlet 500 134 15 0;
> #N comlet semitones;
> #P inlet 564 134 15 0;
> #N comlet semitones;
> #P inlet 244 134 15 0;
> #N comlet semitones;
> #P inlet 308 134 15 0;
> #N comlet semitones;
> #P inlet 372 134 15 0;
> #N comlet semitones;
> #P inlet 180 134 15 0;
> #P newex 52 242 749 196617 pack 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
> 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.;
> #P button 24 214 15 0;
> #N comlet semitones;
> #P inlet 52 134 15 0;
> #N comlet semitones;
> #P inlet 116 134 15 0;
> #N comlet multiple list;
> #P outlet 52 307 15 0;
> #P connect 13 0 3 0;
> #P connect 22 0 3 0;
> #P connect 23 0 3 0;
> #P connect 14 0 3 0;
> #P connect 28 0 3 0;
> #P connect 12 0 3 0;
> #P connect 20 0 3 0;
> #P connect 9 0 3 0;
> #P connect 27 0 3 0;
> #P connect 10 0 3 0;
> #P connect 21 0 3 0;
> #P connect 11 0 3 0;
> #P connect 26 0 3 0;
> #P connect 6 0 3 0;
> #P connect 18 0 3 0;
> #P connect 7 0 3 0;
> #P connect 19 0 3 0;
> #P connect 8 0 3 0;
> #P connect 17 0 3 0;
> #P connect 5 0 3 0;
> #P connect 15 0 3 0;
> #P connect 1 0 3 0;
> #P connect 16 0 3 0;
> #P connect 2 0 3 0;
> #P connect 2 0 4 0;
> #P connect 3 0 4 0;
> #P connect 4 0 24 0;
> #P connect 24 0 0 0;
> #P connect 16 0 4 1;
> #P fasten 25 0 24 1 889 271 97 271;
> #P connect 1 0 4 2;
> #P connect 15 0 4 3;
> #P connect 5 0 4 4;
> #P connect 17 0 4 5;
> #P connect 8 0 4 6;
> #P connect 19 0 4 7;
> #P connect 7 0 4 8;
> #P connect 18 0 4 9;
> #P connect 6 0 4 10;
> #P connect 26 0 4 11;
> #P connect 11 0 4 12;
> #P connect 21 0 4 13;
> #P connect 10 0 4 14;
> #P connect 27 0 4 15;
> #P connect 9 0 4 16;
> #P connect 20 0 4 17;
> #P connect 12 0 4 18;
> #P connect 28 0 4 19;
> #P connect 14 0 4 20;
> #P connect 23 0 4 21;
> #P connect 22 0 4 22;
> #P connect 13 0 4 23;
> #P pop;
> #P newobj 38 114 1073 196617 p make-pitch-sieve;
> #P comment 463 13 137 196620 2) adjust pitch sieve;
> #P comment 477 260 132 196620 4) weight definition;
> #P comment 38 13 203 196620 3) send directly to munger;
> #P comment 889 13 159 196620 1) define length of list;
> #P comment 430 422 111 196620 6) bang to send to coll;
> #P comment 887 358 53 196617 weight list;
> #P comment 306 639 100 196617 copy & paste where ever you need it;
> #P hidden fasten 19 0 33 0 196 438 26 438;
> #P hidden connect 33 0 32 0;
> #P hidden connect 32 0 37 0;
> #P hidden fasten 36 0 37 0 46 426 4 426 4 477 4 484 26 484;
> #P hidden connect 37 0 34 0;
> #P connect 39 0 7 0;
> #P connect 7 0 10 0;
> #P connect 10 0 9 0;
> #P fasten 11 0 8 0 7 183 43 183;
> #P connect 9 0 8 0;
> #P connect 8 0 30 0;
> #P connect 67 0 13 0;
> #P connect 40 0 7 1;
> #P connect 66 0 13 1;
> #P connect 41 0 7 2;
> #P connect 65 0 13 2;
> #P connect 42 0 7 3;
> #P connect 64 0 13 3;
> #P fasten 7 0 15 0 43 134 28 134 28 356 196 356;
> #P connect 15 0 16 0;
> #P fasten 17 0 16 0 275 386 196 386;
> #P connect 16 0 19 0;
> #P connect 19 0 31 0;
> #P fasten 25 0 18 0 400 473 196 473;
> #P connect 31 0 18 0;
> #P connect 43 0 7 4;
> #P connect 63 0 13 4;
> #P connect 44 0 7 5;
> #P fasten 13 0 17 0 57 351 275 351;
> #P connect 72 0 13 5;
> #P connect 45 0 7 6;
> #P fasten 17 1 19 1 315 383 646 383 646 413 315 413;
> #P connect 71 0 13 6;
> #P connect 46 0 7 7;
> #P connect 70 0 13 7;
> #P connect 47 0 7 8;
> #P connect 69 0 13 8;
> #P connect 48 0 7 9;
> #P connect 68 0 13 9;
> #P fasten 18 0 21 0 196 507 462 507 462 526 462 526;
> #P fasten 20 0 21 0 359 580 462 580;
> #P connect 21 0 24 0;
> #P fasten 38 0 24 0 413 658 462 658;
> #P connect 49 0 7 10;
> #P connect 77 0 13 10;
> #P connect 22 0 21 1;
> #P connect 21 1 23 0;
> #P connect 50 0 7 11;
> #P connect 76 0 13 11;
> #P connect 51 0 7 12;
> #P connect 75 0 13 12;
> #P connect 52 0 7 13;
> #P connect 74 0 13 13;
> #P connect 53 0 7 14;
> #P connect 73 0 13 14;
> #P connect 54 0 7 15;
> #P connect 82 0 13 15;
> #P connect 55 0 7 16;
> #P connect 81 0 13 16;
> #P connect 56 0 7 17;
> #P connect 80 0 13 17;
> #P connect 57 0 7 18;
> #P connect 79 0 13 18;
> #P connect 58 0 7 19;
> #P connect 78 0 13 19;
> #P connect 59 0 7 20;
> #P connect 86 0 13 20;
> #P fasten 13 1 14 0 1120 349 953 349;
> #P connect 60 0 7 21;
> #P connect 85 0 13 21;
> #P connect 61 0 7 22;
> #P connect 84 0 13 22;
> #P connect 62 0 7 23;
> #P connect 83 0 13 23;
> #P fasten 12 0 7 24 1054 46 1099 46;
> #P fasten 12 0 13 24 1054 46 1113 46;
> #P pop;
>
> _Andreas
>


May 17, 2010 | 1:12 am

"A second patcher with a keyboard you can replace with a [notein] object of course"


April 6, 2011 | 1:18 am

oct.div is here now – http://ppooll.klingt.org/index.php/max_externals


Viewing 55 posts - 1 through 55 (of 55 total)