-
gentleclockdivider
Thanks
I already knew how to get the $0 into messages by using [float ] , and [symbol] for getting it into text-get etc..
Was just wondering of it's behaviour when "- 'was nvolved -
gentleclockdivider
If I put "symbol -$1" in a message box into the irght inlet of {symbol} object, get : -0 in the console
If i put it directly into [symbol] , I get : -$1 in the console , it adds an escape backlash character
Also , $0 in symbol just gives symbol , $0- gives us the unique id
-
-
gentleclockdivider
I also encountered another issue with merge
When I unpack an Array get into 16 floats ( converting to symbols ) into a merge 16 , the object prints twice
9_05.pd
If you click on one of messages (-,x) in the first inlet of merge 16 it will output a list as expected becauseit's hot , but so does the 13 th input ..which is weird@ porres , If you don't mind I will post this on the discord/else forum since it's out of the scope of this topic .
Thanks everybody for the suggestions . -
gentleclockdivider
Either way , else merge -unmerge is great , good job !
I don't see any benefit in using pack anymore when combining floats - symbols .
Thanks ! -
gentleclockdivider
Unjoing a symbol
Join 3 where third inlet is symbol
Then unjoin 3 , third outlet is a decimal : 1.91027e-20
Unmerge otoh is working correctly
-
gentleclockdivider
@porres
Wow , amazed that Cyclone has join .
Sadly unjoin it not behaving as it should when unjoining characters-symbols -
gentleclockdivider
True to that , some of pd modules are more flexible
List store appart from storing lists can also be used as a lookup ( get $1 ) , in max you need zl lookup etc..
Will try , thanks guys for the answers -
gentleclockdivider
@seb-harmonik.ar
That's exactly what thought
Is there any way how to actually see how pack works internally , or any other object for that matter . ?@ oid , interesting
How did you find out that pack works like that ,( not that I doubt your expertise at all ) ?Max has this wonderfull object in the pack family called join ( not zl - join ) it accepts everything no matter the selector .
You just give it the nr of input arguments and the hot inlet port ( all if needed )
Really wish pd has someting like that -
gentleclockdivider
Thanks , but dont you mean "many NON vanilla objects go against vanillas standard behaviour ? "
But what if the first inlet is not a list it unpacks, like in my examples ?
-
gentleclockdivider
Firstof all , I 'd like to say that is the second forum I am posting this on because it is doing my head in .
If I have a pak object (PAK ) with s s s as arguments , it accepts and outputs a list , but I can not conclude if these are considered symbols or not ( see next )
Like this
If I use a pack ( PACK ) with s s s , the messages 'x ' and '-' in the second and third inlet , need to be converted to symbols in order for the pack object to work , the first inlet does not need it
Like this
Now have a look at pack without the symbol boxes ,
When pressing the second and third toggle , the console says : expected symbol but got "x" or "-" ( there is no symbol box involved ) .
When pressing the first toggle , the "- "or "x" is send and received , does the pack see this as a symbol ? ( if so how can we examine this )
Furthermore , why doesn't it see the second and third as a symbol ?
This is were it's so cumbersome to actually see what's going on under the hood ..
Now I change the first argument of pack to integer , so pack = i s s , then the console says : Pack_symbol wrong type
From this I can conclude that the first message is indeed interpreted as a symbol (and rejected because it expected an integer ) , so why do the next and third inlet need an explicit symbol box , and why doesn't PAK need any at all ?Just when I got the hang of lists and it's selectors , I bump into new issues
-
-
gentleclockdivider
When I send a list with nr 10 11 to the first input of select ( content of list is pread out over inputs ) , why doesn't it respond positive when it receives float 11 ?
The spreading over the inputs is only true when the select module has float as arguments , and thus get replaced
When a symbol is used as a creation argument , it doesn't seem to be replaced . -
gentleclockdivider
Thanks for clarifying , it didn’t cross my mind that the list spreads it’s content over the inlets .
-
gentleclockdivider
Edit
Nevermind , the select modules just does NOT accept list .
If the moderators like I can delete this topic or just leave it for others who may encounter the same issue . -
gentleclockdivider
Again having an issue here with lists because pure data is so unforgiving compared to max
Scenario 1 : I have a text define object where each entry is a number and some are symbol "-" which indicates rests .
The output of "text get" goes into a select module with argument "-" , as expected the incoming symbols "-" are banged out the left output (not using them ) , and the rejected ( number data ) out of the right output , iow : works a charme .
Scenario 2 : when I switch to another " text define " where some entries are intervals of two notes , I get the error from select : inlet: expected 'symbol' but got 'float' , altough it still works as expected ( altough the intervals are not played yet but that get s resolved later on )This error most likely comes from the two note intervals which are now a list and the sel expected a symbol as selector .
I can't put a symbol object in front of the select because then the notes are not understood anymore , a list trim doesn't work either
In the end I replaced the " select - " with a " route - " and " list trim in front and this works , playing the intervals with a " zl iter 1 " after it .
I am aware that select does not output lists ( out of it's rejected output ) but why the error inlet message and how to resolve it ?
-
gentleclockdivider
@oid said:
No, it is just a message, to be a symbol it would need the symbol selector.
Torres says:
Yes, it is a symbol, hence, it is the selector of the message, so "c3 d3 e3" is a message whose selector is "c3" and the actual message is "d3 e3".I wrote :
The message c3 f3 a3 , the first selector is c3 and thus this message is an implicit symbol , correct ?So It's not implicit but c3 is a symbol .
@toress
Why would I bring this up , because this is the topic for it , no ?
And because I am writng my note notation/ rests like this : c3---f#4---g3--- ,
edit : can't (yet ) get the multiquote to work . -
gentleclockdivider
@oid said:
@gentleclockdivider said:
The message c3 f3 a3 , the first selector is c3 and thus this message is an implicit symbol , correct ?
No, it is just a message, to be a symbol it would need the symbol selector. We have three selectors; float, symbol and list, when an object gets a message it checks for those selectors to make sure it is getting the correct type of data, if it lacks one of those selectors it treats it as a method like 'set' so your [list store] knows it should set its internal state instead of operate on the data and produce output. The alternative would be to have reserved words which you would have to escape or add a selector to, so if you wanted a [list] to store the message [set 1 2 3( you would have to do [list set 1 2 3( or [\set 1 2 3(. The pd way avoids reserved words which means we don't have memorize a long list of reserved words, just the three selectors and the mostly consistent ways they are handled.
Next , the message c3,f3,a3 , three messages after each other each with a symbol identifier
None of those have a symbol selector, those are just three messages. You can run those through a [symbol] instead of a [list] and for this sort of thing that is a good idea, explicitly states that it is a symbol so you don't have to trace the patch to figure out what is going on.
But the manual clearly states that the first atom in a message is the selector , and for mesage c3 d3 e3 , the first atom is c3 .
Isn't c3 a symbol , it starts with the letter C ?
When the message is separated by commas , and send though a list , the console clearly shows these are seperate symbols , why then ?
To be fair , I think pure data is a million times more complex than supercollider or anything else I have worked withManual :
quoteMessages contain a selector followed by any number of arguments. The selector is a symbol that defines the message type. The arguments are anything that follows and may be symbols or numbers (aka atoms). For instance "list a b c" has a "list" selector, which defines the "list" data type, and "a b c" is the actual message. This message is only composed of symbols but a list message can combine two or more symbols and/or floats.
unquote
-
gentleclockdivider
I've read the updated manual back and forth but there are still some things unclear to me .
Take the following example
The message c3 f3 a3 , the first selector is c3 and thus this message is an implicit symbol , correct ?It's not a list because the list gatom does not understand it ., neither does the symbol gatom , so is it an unindentified message ?
Putting the same message through a list and the listbox understands it ( since the message starts with a symbol atom, a list must be explicitly given )
Next , the message c3,f3,a3 , three messages after each other each with a symbol identifier
Putting these through a list and we get again 3 successive messages each with a symbol identifier , the symbol gatom only understands it after list processing ( obviously only one element is shown since the message is separated )
-
gentleclockdivider
@porres said:
So
I did read the manual , read the bang book , miller s puckette electronic music journal , Kreidler etc..
Please don't think I just glanse over certain sections , it's just that certain parts are used more heavily then others .and other areas are easier forgotten when not in rotation/practised ,, an some parts (selector identifier ) are still a bit of a grey area to me .
So please stop assuming I didn't read the manual , I would have never been able to make the stuff of the past year without reading the manual ( and I am talking purely about scheduling and events , not audio dsp )
I respect all the hard work you have done and still do ( mutable port is awesome 0 ) , you have made your point countless times ( and I won't be posting on facebook anymore )
I have no problem helping people out ( did that for decades on the reaktor forum ) , I ve been helped countless of times on the supercollider forum ( yes I did read the immense manual ) no one made a problem out of it .
For some reason you have a problem with it , I stopped crossposting like you suggested but you can't make me stop asking questions , be it here or on discord , and No I won't crosspost ( since you're everywhere you will probably notice )