Forums > MaxMSP

N Breakpoint Envelope Generator w/ y axis range >1?

January 18, 2007 | 11:00 pm

I’m thinking about getting Max/MSP, but I’m wondering if the following module (don’t know if this is the right term) has been created:

A N Breakpoint Envelope Generator, where N = any positive integer, and where the y-axis has a range greater than 1, preferably user definable, and preferably with a GUI that allows creation and moving of breakpoints by clicking and dragging with a mouse, but which also allows entering numerical values for any given breakpoint using the computer’s keyboard. Hopefully it would be easy for the user to set the numerical precision too (for example, set (X,Y) to (1.01, 2.03), or to (1.0132423, 2.0342344), i.e. switching from 3 digits to 8 digits precision.

I want to use such an envelope to control the frequency of a sine oscillator, as a function of tiime. I’d like input the frequency values directly into the envelope generator (for example if I want to set a breakpoint’s frequency to 542.543, I could simply click on the desired breakpoint, and type in "542.543").

Is there such a module available in Max/MSP or the user developed content?

Thanks, any help is appreciated


January 19, 2007 | 8:55 am

you could make a patch that did that fairly easily.
emmanuel jordans breakpoint editor is very useful

http://www.e–j.com/sphpblog/


January 19, 2007 | 3:17 pm

Max Planck wrote:
> Is there such a module available in Max/MSP or the user developed
> content?

Yes, out of the box a graphical breakpoint function editor. All you
mention is possible. You might need to think about scaling things
appropriate to deal with screen resolution. But this is very possible…

There are also 3rd party objects which adress more esoteric needs…

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com


January 19, 2007 | 11:26 pm

Thanks for the replies guys.

Quote: Stefan Tiedje wrote on Fri, 19 January 2007 08:17
—————————————————-

> Yes, out of the box a graphical breakpoint function editor. All you
> mention is possible. You might need to think about scaling things
> appropriate to deal with screen resolution. But this is very possible…
—————————————————-

I am currently a Reaktor user, and I realize that this is "possible" in Reaktor too. However, it would take a lot more effort and time than I want to put in to build such an envelope generator, or to modify one of the already existing envelope generators for my needs (they are very complicated!).

This is why I’m wondering if there is a way to do what I’m trying to do in Max/MSP that won’t require me to build my own envelope generator, or dissect a someone else’s very complicated envelope generator in order to modify it for my needs. I’m trying to see if there is something that I can use in Max/MSP that will meet my needs here "out of the box," without me having to modify it (other than me having to set the resolution, zoom factors, etc.).

I can live without the GUI although it would be nice. The essential feature would be its allowing me to enter values from 20 to 20,000, with an unlimited or at least very large possible number of breakpoints, and with an unlimited or at least very large possible time scale (x-axis length).

Is there such an object or module that can meet my needs here without my having to dissect/modify a complex structure or build my own object or module from scratch?

Sorry to ask redundantly, but I just want to be sure. Thanks again.


January 19, 2007 | 11:37 pm

I think you are looking for the zigzag~ object. Seems like that will do
exactly what you want.

Andrew B.


January 19, 2007 | 11:51 pm

I think you’ll find there’s plenty available right out of the box, including a lot of possibilities you may not have thought of. Using the bpfunction object should allow you to do everything you’ve said without having to "hack it". Any "hacking" would actually be the controls and mini-UI you design *around* the bpfunction object to enter / manage your data inside. The UI lets you manipulate points, and if you want to enter them with the keyboard, that’s straightforward too.

As mentioned, look into the ejies functions, he has a very updated bpfunction object that provides zoom and multiple bpfunctions to appear simultaneously. The zoom alone is worth it for flexibility…

Think beyond just the traditional envelope generator idea—there are all kinds of simple and powerful ways to manage / automate / modulate the data going in and out of your envelope…. not to mention how and at what rate you access the data… or where you send it… or what it does… or how you get it into the envelope… etc.

You should become a Maxer!

-C


January 20, 2007 | 5:37 am

Quote: andrewb@cycling74.com wrote on Fri, 19 January 2007 16:37
—————————————————-
> I think you are looking for the zigzag~ object. Seems like that will do
> exactly what you want.
>
> Andrew B.
>
—————————————————-

Can you recommend where I can learn more about the zigzag object? I am playing with Max MSP now and have found it, but I can’t find any info about it in the manuals, nor any info explaining it online…


January 20, 2007 | 5:41 am

Quote: Stefan Tiedje wrote on Fri, 19 January 2007 08:17
—————————————————-
>out of the box a graphical breakpoint function editor. All you
> mention is possible. You might need to think about scaling things
> appropriate to deal with screen resolution. But this is very possible…

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

This graphical breakpoint function editor seems to only allow a max y value of 1. Is this true? If not, how can I adjust the max value?

If the max value really is 1, then can you recommend an alternative that will allow a y axis range of 20 to 20,000?


January 20, 2007 | 6:51 am

ummm…the manual? Don’t think you are looking hard enough! page 455-460 of the MSP reference manual. Plus examples that use it in the examples folder.

David


January 20, 2007 | 6:51 am

Actually, it is "zigzag~". In Max, objects that end with a tilde "~", are
MSP
objects. When ever you are in doubt and need more info on an object,
select that object and hit the F1 key for help info on the object. You can
also right click and select help. The help files are by far the greatest
thing about
Max.

To display values ranging from 20 – 20000, you will need to scale them
to 0 – 1. Use the "scale" object.

Anthony

—– Original Message —–
From: "Max Planck"
To:
Sent: Friday, January 19, 2007 11:37 PM
Subject: [maxmsp] Re: Re: N Breakpoint Envelope Generator w/ y axis range
>1?

>
> Quote: andrewb@cycling74.com wrote on Fri, 19 January 2007 16:37
> —————————————————-
> > I think you are looking for the zigzag~ object. Seems like that will do
> > exactly what you want.
> >
> > Andrew B.
> >
> —————————————————-
>
>
> Can you recommend where I can learn more about the zigzag object? I am
playing with Max MSP now and have found it, but I can’t find any info about
it in the manuals, nor any info explaining it online…


January 20, 2007 | 10:46 pm

> This graphical breakpoint function editor seems to only allow a max y value of 1. Is this true? If not, how can I adjust the max value?
>
> If the max value really is 1, then can you recommend an alternative that will allow a y axis range of 20 to 20,000?

to change the range to 20,000 you would have to connect
a box before the envelope with "/ 20000." in it,
and an other box with "* 20000."

if thats aleady too much custom programming work for you, i
can recommend itunes as the perfect music program for you.

for such specific things you will always get help here at
the forums so stop worrying about ungelegte eier.

-110 :)


January 21, 2007 | 6:27 pm

Quote: Roman Thilenius wrote on Sat, 20 January 2007 15:46
—————————————————-
>
> > This graphical breakpoint function editor seems to only allow a max y value of 1. Is this true? If not, how can I adjust the max value?
> >
> > If the max value really is 1, then can you recommend an alternative that will allow a y axis range of 20 to 20,000?
>
>
>
> to change the range to 20,000 you would have to connect
> a box before the envelope with "/ 20000." in it,
> and an other box with "* 20000."
>
> if thats aleady too much custom programming work for you, i
> can recommend itunes as the perfect music program for you.
>
> for such specific things you will always get help here at
> the forums so stop worrying about ungelegte eier.
>
>
> -110 :)
>
>
>
—————————————————-

lol @ itunes, thanks for the info.

I’ve considered doing it in the way that you’re suggesting, but the problem is that I want to enter the frequency values (20 to 20,000) in the GUI, rather than entering a value from 0 to 1 and having it scaled up.

Is there any way to have a graphical breakpoint editor where the y-axis range can be adjusted? Someone mentioned zigzag~, can this do that?


January 21, 2007 | 6:40 pm


January 21, 2007 | 7:01 pm

maybe i’m missing something, but function does *ALL* of that. have
you looked at the help-file and Reference of that object at all?

/*j

max v2;
#N vpatcher -1269 278 1680 543;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 140 31 64 196617 range of bpf;
#P newex 384 72 53 196617 autopattr;
#X prestore domain 1 0 45000.;
#X prestore function 159 0 45000. 20. 22050. 0. 20. 0 864.848145
2717.551025 0 1422.814697 3616.734619 0 2036.577881 4965.510254 0
2706.137695 7438.265137 0 3152.510986 9911.020508 0 3403.595947
11934.183594 0 4015.748047 14706.666016 0 4798.512207 17778.876953 0
5189.088867 19802.041016 0 5802.852051 20701.224609 0 6416.615234
21825.203125 0 7204.724609;
#X prestore function 159 40 22050. 0 7839.429688 21825.203125 0
9206.447266 21150.816406 0 10071.295898 20026.835938 0 12247.365234
16879.693359 0 13865.46875 14406.938477 0 15455.672852 11259.795898 0
16878.488281 9236.632812 0 18022.318359 7663.061035 0 19500.929688
4965.510254 0 20867.947266 2717.551025 0 21565.40625 4740.714355 0
21816.492188 6089.489746 0 22095.474609 8337.449219;
#X prestore function 159 80 0 22430.253906 8562.245117 0 23323.
5639.897949 0 23797.273438 3616.734619 0 24885.306641 2267.959229 0
26447.613281 2492.755127 0 27200.869141 3167.142822 0 28177.310547
3841.530518 0 29711.716797 2717.551025 0 30632.363281 1818.36731 0
31664.601562 1593.571411 0 32864.230469 2043.163208 0 33366.398438
2492.755127 0 33868.570312 4066.326416 0;
#X prestore function 159 120 34259.144531 4515.918457 0 35374.015625
5078.741699 0 36267.824219 4066.326416 0 38443.894531 2267.959229 0
39336.640625 1143.979614 0 40173.59 469.591827 0 40871.046875
244.795914 0 41345.320312 244.795914 0 42042.777344 244.795914 0
42907.625 244.795914 0 43605.085938 244.795914 0 43911.964844
244.795914 0 45000. 20. 0;
#X prestore range.max 1 0 22050.;
#X prestore range.min 1 0 20.;
#P objectname u486000001;
#P flonum 192 49 91 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname range.max;
#P flonum 140 49 49 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname range.min;
#P newex 100 72 91 196617 pak setrange 0. 0.;
#P message 279 72 33 196617 clear;
#P flonum 20 51 71 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname domain;
#P message 20 72 70 196617 setdomain $1;
#P user function 20 104 2926 179 1 1 0 0;
#X frgb 255 255 255;
#X brgb 26 0 66;
#X rgb2 132 132 132;
#X rgb3 255 181 181;
#X rgb4 0 255 123;
#X rgb5 0 0 0;
#X add 0. 20. 0;
#X add 864.848145 2717.551025 0;
#X add 1422.814697 3616.734619 0;
#X add 2036.577881 4965.510254 0;
#X add 2706.137695 7438.265137 0;
#X add 3152.510986 9911.020508 0;
#X add 3403.595947 11934.183594 0;
#X add 4015.748047 14706.666016 0;
#X add 4798.512207 17778.876953 0;
#X add 5189.088867 19802.041016 0;
#X add 5802.852051 20701.224609 0;
#X add 6416.615234 21825.203125 0;
#X add 7204.724609 22050. 0;
#X add 7839.429688 21825.203125 0;
#X add 9206.447266 21150.816406 0;
#X add 10071.295898 20026.835938 0;
#X add 12247.365234 16879.693359 0;
#X add 13865.46875 14406.938477 0;
#X add 15455.672852 11259.795898 0;
#X add 16878.488281 9236.632812 0;
#X add 18022.318359 7663.061035 0;
#X add 19500.929688 4965.510254 0;
#X add 20867.947266 2717.551025 0;
#X add 21565.40625 4740.714355 0;
#X add 21816.492188 6089.489746 0;
#X add 22095.474609 8337.449219 0;
#X add 22430.253906 8562.245117 0;
#X add 23323. 5639.897949 0;
#X add 23797.273438 3616.734619 0;
#X add 24885.306641 2267.959229 0;
#X add 26447.613281 2492.755127 0;
#X add 27200.869141 3167.142822 0;
#X add 28177.310547 3841.530518 0;
#X add 29711.716797 2717.551025 0;
#X add 30632.363281 1818.36731 0;
#X add 31664.601562 1593.571411 0;
#X add 32864.230469 2043.163208 0;
#X add 33366.398438 2492.755127 0;
#X add 33868.570312 4066.326416 0;
#X add 34259.144531 4515.918457 0;
#X add 35374.015625 5078.741699 0;
#X add 36267.824219 4066.326416 0;
#X add 38443.894531 2267.959229 0;
#X add 39336.640625 1143.979614 0;
#X add 40173.59 469.591827 0;
#X add 40871.046875 244.795914 0;
#X add 41345.320312 244.795914 0;
#X add 42042.777344 244.795914 0;
#X add 42907.625 244.795914 0;
#X add 43605.085938 244.795914 0;
#X add 43911.964844 244.795914 0;
#X add 45000. 20. 0;
#X domain 45000.;
#X range 20. 22050.;
#X done;
#P objectname function;
#P comment 20 31 66 196617 length of bpf;
#P connect 3 0 2 0;
#P connect 5 0 1 0;
#P connect 4 0 1 0;
#P connect 2 0 1 0;
#P connect 6 0 5 1;
#P connect 7 0 5 2;
#P pop;

On 21 Jan 2007, at 19:27, Max Planck wrote:

>
> Quote: Roman Thilenius wrote on Sat, 20 January 2007 15:46
> —————————————————-
>>
>>> This graphical breakpoint function editor seems to only allow a
>>> max y value of 1. Is this true? If not, how can I adjust the
>>> max value?
>>>
>>> If the max value really is 1, then can you recommend an
>>> alternative that will allow a y axis range of 20 to 20,000?
>>
>>
>>
>> to change the range to 20,000 you would have to connect
>> a box before the envelope with "/ 20000." in it,
>> and an other box with "* 20000."
>>
>> if thats aleady too much custom programming work for you, i
>> can recommend itunes as the perfect music program for you.
>>
>> for such specific things you will always get help here at
>> the forums so stop worrying about ungelegte eier.
>>
>>
>> -110 :)
>>
>>
>>
> —————————————————-
>
>
> lol @ itunes, thanks for the info.
>
> I’ve considered doing it in the way that you’re suggesting, but the
> problem is that I want to enter the frequency values (20 to 20,000)
> in the GUI, rather than entering a value from 0 to 1 and having it
> scaled up.
>
> Is there any way to have a graphical breakpoint editor where the y-
> axis range can be adjusted? Someone mentioned zigzag~, can this do
> that?
>


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