Creating a Score
Hi all,
I’m fairly new to Max, and I’ve been creating some pieces with the following basic scheme: objects controlled by sends/receives, advancing with a counter through a “score”, a series of events devised of messages sending information to those sends/receives (with the ; sign). Example attached here below.
This works for me, but it’s very cumbersome, both to operate and especially to build and change in the process. I feel like there MUST be a simpler way to do this.
Any ideas, better ideas to create and manipulate the “score”?
If this is something very basic or has been answered numerous times, my apologies, and I’d appreciate it if someone could point me in the right direction.
Thanks!
Hi URI, if this example wich probably works just fine, does not need more steps in the "Score" and
parameter list (number of objects which need to receive values) does not need to be extended,
You can leave it as is. In this extent it is easy to see what gets sent in each "Score" step.
Only 1 thing - delays will still get executed if You move to next "Score number", so it is allways a good idea to send
them message "stop" whenever other Score number gets recalled.
If the structure gets more complex and needs many "Score" Steps, You have to think about other options.
Maybe writing text scores and having some sort of routing inside.
Like prepending a number for each address and packing Values in a symbol for separation ?
like 1 "200 1 0 33 45" could send data to object 1 which would receive fromsymbol/unpacked data.
Like that You have pairs of (adress - data) in a text line and can route them as You wish.
Or write it in coll format ...
What do You think of it ?
I understand that You can't use Preset kind of storage which allways includes some data for all
objects under control.
Hi, thanks for answering!
Your note on the delays is so very true, I learnt it the hard way and already implemented the stops in my next piece.
It does work fine for such a short score, but yes, mine is much more complex (this piece originally had 40 something events).
I would love to use a text score on a separate file, but I don't know how, and I'm not sure I understood your explanation. I don't think numbering my objects would be effective, as there are dozens of them.
What would be the best way in this case to recall data from text files into Max? I'm thinking that if I can control the "deciphering" of the text file, I could easily create a very simple syntax and read it directly from the score file. I was thinking of something like, specific symbols to mark the beginning and end of each event, and within each event, every message to an object will be represented with a separate line (or else also marked with a dedicated symbol). Any idea on how to do this, or something similar?
Hi Uri, text files would probably work fine with Your Score.
The idea is to have pairs which contain 1- adress, 2- data to send to apropriate objects.
It would be easier if one could just number the objects, but I understand that having many
of them could get difficult to remember each just by number...
So this is what I would do :
Lets say that You want to send several messages per Score Step.
You fill the text line with for example Ped1Gain 22 Ped2Rate 100 EQ1 "100 22 13 55" etc
You can see adress is followed by parameter.
When You output one line of text to route object which would contain adresses
like {route Ped1Gain Ped2Rate ...} and insert {s Ped1Gain} on matching route outlet,
data next to Ped1Gain would be sent to Ped1Gain object and so on.
To keep formula Adress Data one would have to pack values for objects that contain more than
just 1 value into symbol.
I will come back in few hours and upload a patch as example.
But I think You can understand what I mean now.
Ok, I took your suggestion and tailored it a little bit to my needs, and I think it works great! It's still a bit messy, and I think I can improve it later to make it work with delayed messages as well, but all in all, great solution.
I attached my example score here (the patch, and separate text score).
Thanks again!
Now that's great. I am glad You came up with a good solution.
I don't know if You need the option to recall individual Step Numbers ?
Here is a little addition to Your patch, having coll which contains starting line numbers of
event_start (Step) numbers.
Maybe You can have some use for it...
sorry, there was a little mistake in the previous patch.
great! I was just working on doing exactly the same thing, but in a much more complicated (and unnecessary) way. I'll use it, thanks!
Well one can allways go a step further, but It has to be left to You to do so.
Here is another one with some fixes for delay object ...
And please don't hesitate to ask if You get stuck somewhere.
is there a reason why you don't just use detonate?
also, it seems to me you don't have to parse a text file into coll-- you could just create your score using the coll format and read it in directly using the read message (or even embed it in the patcher)