my first post in this forum, i just started with max
using the demo version and going through the tutorials
so far so good, the interface is really cool and i’m quite loving the whole thing
i’m a visual artist (audiovisual wannabe) and a vvvv user, and i see in max the perfect environment to get into audio..
also i’m really waiting for maxforlive, and i hope it will work as an API for live, so we can control live from outside and also send datas out (such as sound spectrums, track status and name, and so on..)
sending from maxforlive to vvvv via osc
this will be possible right? or am i getting it wrong?
i already have a couple of questions about max, the way it’s working and if it’s possible to achieve something i have in mind:
1) i learned how max is processing nodes from right to left and bottom to top, so my first question is: if i trigger 3 metro objects with one single bang, will they be in perfect sync? or the right one will be processed first and start first?
2) this is probably a more advanced question, anyway, is it possible to achieve the following:
i have a high number of objects in vvvv (a particle system)
i want to produce a sound with each particle, depending for example on the behaviour/direction.. so each particle will likely produce a different sound, but it can happen that 2 of them behave the same so they sound the same
so midi is not a solution because if 2 particles trigger the same note there will be a conflict, thats why i thought about using audio (dont ask me exactly what i mean, i’m a beginner, so not sure what the possibilities are..:)
so how can i build this kind of setup?
what i get from vvvv is a spread (basically a list) of float datas, and i want to use those datas in max to produce sounds
i would send the list via osc (i guess it’s the better way, or..?)
sorry for the long post, you know it’s the first one :)
i’m not askin for a complete solution for my problem, any hints or directions to follow would be highly appreciated
thanks a lot
On Wed, 4 Feb 2009, Pedro Mari wrote:
-&e->i already have a couple of questions about max, the way it’s working
-&e->and if it’s possible to achieve something i have in mind:
-&e->1) i learned how max is processing nodes from right to left and
-&e->bottom to top, so my first question is: if i trigger 3 metro objects
-&e->with one single bang, will they be in perfect sync? or the right one
-&e->will be processed first and start first?
You’d likely want to use a single metro object and divide time as needed
if they are in fact running different ratios of the "world clock",
multiple things doing the same thing independently are more likely to
cause problems. This isn’t a "max thing", this is pretty much true for
programming any real time system where inter-process sync is a concern.
Even an orchestra of the world’s best musicians, all with excellent
knowledge of the piece and tempo refer to a single conductor.
And also, for the love of all that is holy, *never* count on object
position for order. Assume that doesn’t exist if only for your own sanity
(for example, adjusting a patch’s layout to make more sense shouldn’t
affect it’s operation!) and get familiar with using the [trigger] object
to "hard code" order.
-&e->2) this is probably a more advanced question, anyway, is it possible
-&e->to achieve the following:
-&e->i have a high number of objects in vvvv (a particle system) i want to
-&e->produce a sound with each particle, depending for example on the
-&e->behaviour/direction.. so each particle will likely produce a
-&e->different sound, but it can happen that 2 of them behave the same so
-&e->they sound the same
-&e->so midi is not a solution because if 2 particles trigger the same
-&e->note there will be a conflict, thats why i thought about using audio
-&e->(dont ask me exactly what i mean, i’m a beginner, so not sure what
-&e->the possibilities are..:)
IIRC, there is nothing in midi spec that inherently states that two notes
of the same note value can’t exist at the same time (although which which
note gets turned off by the noteoff message gets ugly). I actually have
some hardware synths that allow multiple instances of a same valued note
(sounds a lot better than "voice stealing" – cutting off the prior note
abruptly and restarting it).
Your best bet would be to use OSC based messaging if vvvv supports that.
-&e->so how can i build this kind of setup? what i get from vvvv is a
-&e->spread (basically a list) of float datas, and i want to use those
-&e->datas in max to produce sounds i would send the list via osc (i guess
-&e->it’s the better way, or..?)
Exactly! It really comes down to the nature of the change data, and
whether you want it all sent at the same time. If for example, vvvv is
allowing you the luxury of not having every thing update at the same time,
then you’d want to break that "list" up into individual change messages,
with each particle having a correposponding "voice" in max.
If this is what you’re looking for, some really neat solutions could exist
in some of the advanced features of the poly~ object (specifically,
targeting control data to a named voice). The big "aha!" would be working
around the fact that poly~ implies midi-like operation (where triggerred
value is tied to it’s pitch). The "midi-like" assignment of notes to
voices in the poly~ system can be wholly independent of pitch and instead
used to track particle[vvvv] to voice[max/msp] correllation.
So instead of a fixed matrix of data sending regular updates, you just
tie objects (particles) in vvvv to voices in max by name whenever they
feel like it. Less parsing and pulsing that way. It will also scale
better, and only use the CPU you’re actually needing. If you do it right
with just a couple particles+voices to start, you should just be able to
ramp up the number of players and maintain the same behavior as the
numbers increase (well, until you run out of cpu, clog your osc plumbing,
or hit the max voice wall in poly~).
hello AndyW, tnx a lot for your immediate feedback
"You’d likely want to use a single metro object and divide time as needed "
yes i thought about that, but how to divide a metro then? sorry probably the answer to this question is obvious :) i know how to divide time argument, but the metro only outputs bangs right?
so if i use a single metro how can i divide its output?
about my second question, yes exactly "voice stealing" is a problem with midi
so i need many voices that i can control indipendently separetly, kind of instances but with different behaviours (like particles)
that’s why i think that you’re right and poly~ is the way to go :)
tnx a lot for pointin me to it, i will study and learn how it works
here is one way to divide metro ticks using counters:
----------begin_max5_patcher---------- 1027.3oc4Ys0aihCF84jeEehm1QpyH7EtsZeY+crZzJGvIgY.bD3n1ril+6q u.MsSanljTWZmGJM13Kmuy4X6OferbQvJwc7t.3Og+AVr3GKWrvTkthE8kWD TytKuh0YZVPtntl2HCtwdOI+Noo9+5ycRV680uVzH6J+Ot9dH7WB6qtYesXu rhKMC1Ps6Xx7skMa92VdtzBl3PUefXcOAJUeEqpA9ZeOJKLSpX029LM9gyYC q1LmA+caIqJ33zV1LLqHcc+b4R8kat3ntk2oFWfUUA4Uh7u2A2tk2.FxPER. qoPUPramtPm.ja4G.VKGJUM5PS9vPVU1vyE6aLiK4Jwh3DC0QRzWQ1+QSedd Dm9lxiJVDJJWul2ptOXXBXsnUyWcbPM.R.2yv+ASJY4aAEZVwaAiEVSmplBc JbC2xN.RCUCB0k1NcobUT0Jpz0VCLkLwqptAJWCGD6gBgRatw7yZUmYUJk5V lBBpNpQVoD1uyJeLoYf6EasRp0diMP25PnuAFjHK0WDv247c1YtW1+zyp6IW IcmhxzRcVrQ2yrxeH4DBehGDdqVMocGvmN9HnziwWT3XaOfiFlT6PKOriaGj fRsQDBVwZ1DbeWe+vAIHm4.5GUNfZ3.Tj4bBR5nj.5CJIfil.ID9AkDPwQNS BnrOnjPZn6bP5rgCp4ccrM7mjSP3jnEzHKPvFBwxND7WhTbzIRBBkbRZYxbA 9L3hU6kRQSvYFgQYCR9HBe7IivGq3Wt2leqZBehrJEa3EGk6Kd2OanSrGCN5 SJfhFOz8oo+LEZhNINk8MI0Akl3Kk9bcsnIDLzYdvfvotGL3YdvPmfvfdi2O oiWAnqVBk8quhdvlJmJxydwcS7xQFmfVLOSo5oiCADfhmD+PeY9Aax1JMYTm wKlq4ve5hSkphloNngM0bwAk79wAguVNnA9wEGT5uiFngCRbw.E8tw.kds7O CzSu+AMF8D+6n+g599Oz2M1G50x9PIN6dHyM2i5Im1TwOyj4reJkwykCOZD+ pmIWMW1Jfnvq1C9aib6q+199gNYtJNlD6YrJvzWyq4+W9NaF.qq+wLUmXea9 vrO7Frgintf2IKaXxRUd8GajZ+Ufdea1VVTvad3GIntrXmPoh8X.95yJaNCI pCPRm+mOwjKP5Qs40FQHGPDY1gn3ognH66SCc+mXbnjGfZ5E.U86MxiP0rX3 bwJAc8vZnCfE620Iot.oPuBoXWjzLuBIhKPJ0uamj3pymLuvT57CRwyOHQ7K jbZMWheM3tj5EJ1qXxo7bhNmSaR6+5IlybdTAhs.AoaltvEFCYtDC9M0Hm1J i5UH4j4C6UH4Td+dNKaWxnIa1kPSxrKelnYW5LWxxMUget7+A3IZ5rB -----------end_max5_patcher-----------
hopefully, though you are trying out max5 in which case the ITM objects, like transport, are best. see helpfiles for "transport" and "metro" in Max5 to see how you can link many different metros to the same transport.
here’s an unusual way i use the transport object’s tick outlet to get many different note resolutions:
----------begin_max5_patcher---------- 983.3oc4ZstaZCCF82vSgUzpzlDvvWxElllzdNlplBDCjoDajiyV2p569hsS VoTRhCDRiz9Co10w96b7weWL73zINq4OPyb.eB7MvjIONcxDcWpNlT1dhSZ3 CaRByzCyYCOMkxjNyL+OI8Aot+OOOkGkmvA7CTQnLlyx.7b4gbIHJd6Vpn3k .a34LY162rOjsiBj6owBPnXWtZFAbAHixh.gfTZVVXw.hYRd4nDw61KUSXBU BJ5cWwivSm4Ox3R5bAMimjqrfOTYkIwLpdDJS0urys7BaI9OTUePzhkkcyxS MKiFuU8dHTtYeLa22EzMRCeQzuD.CcUOfDcK3R7hkf6Keq3HM2vW+i4j.miV WVXpdcc9pHNLw44kNlUsxPUeOMcp5iYW4lSlLTHm+EmdB4vkAJrhHqTOHDci k0fa+A.2L5uJVqWA6DdXjRKAvcB4vFPdfqAr5G9nFQta0pZla4uOPMyhiy+F +MjTVmKkblSWgH1Wueh88q.WCPjTKDWWbD+YX9lAFLxdvfG4fAsZoALAV.Fz XGLjRYlmEfANTfoFGIYzD.rS9PPse.y0HM8ZB43UMi7YWfuDT+wK2Afd8kq0 JZwDNEGznfXYszRrJH+aGizuJkRuWVoTbG6JETuoTvHqUJ3f+KTJUgFrRofG 4Jkf9RnTwJkBEzB2FXExXUnjRkBdMRE3B2Utv.+NyLdFhQyOtMF7E55YYz2a H0TWgMB5Atnn5ubgtJveFljWTNamYplpxy2bhBqqtC423IqgnVmKMeKuivQy oag8FrzsxSWSE8kSPX0wcR6pZLpwi6ytPs8XMmyprssJ9.bbDeXaBuXN59gY T6kuaNF2heOT84dWXZgCqHo7JwdkJQRSOvAuqeiNTQSl62wU+ILnNZJn+tli KQlH461kP6r+PnAbkXrYGhMnDdQtA2JWA2AH8VJQDh0oDgvi0ThjhPVlNxuj lI6XDjUsKJ7gVDsG0ZHjxG+yawq+iyMpqhX0uq99tO4V80nU0+KY6LdtXSkY WciCfmwaTA+Fyz2m+QCRcueGMn8wQQT1wIRkFGcfW.rRi.b+Y26s0lTk62pM chgeqsIU81syS3g0lBrgmbGVaBaCOgFVahXCOMv6cPa3I3fZSHa16vCqMQr4 bmN2sgjnrwootP5tXTP2.c3YecxIPrIory0pnQ0.uRjbpQVydt2vRuJ2C9sc 1X43ylNwg73vlHiOaBgGeGWQCaLIccT8tQAWQzdF7L0vU5PQ0ZPjZCbXcua. CZbshCL+HGvluwgiZT4Ot7WAwYacje7qVkXUjFz032onwSS+KjgBNE. -----------end_max5_patcher-----------
best of luck.
Quote: defetto wrote on Wed, 04 February 2009 23:01
> about my second question, yes exactly "voice stealing" is a problem with midi
> so i need many voices that i can control indipendently separetly, kind of instances but with different behaviours (like particles)
You could also dedicate a different MIDI channel to each particle. There’s no problem with having the same note on different channels.
tnx for the patchers man, i’ll have a look tonight :)
ok but then the number is limited to 16 cause the channels are 16 right?
the poly object seems to allow up to 1023 different instances, didn’t try it yet, but seems to be the way to go
I would also advise to have a look at Darwin Gross’s synth building tutorials (1_8) not exactly what you are looking for but a good introduction on using
the Poly object http://www.cycling74.com/story/2007/8/20/10530/5988