[PD] Nestable Dictionaries in Pd

Pierre Alexandre Tremblay tremblap at gmail.com
Wed Sep 8 09:38:52 CEST 2021


Thanks all for the pointers. Now it is on mer to check the other tutorials and find a way around. Our object does parse json in and out to file and std if needs be, the only idea here is a batch interface with Pd so users can input and retrieve en masse to our dataset world (with mlp and umap and other fun ML goodies - all working so soon on a repo near you if I can crack that last interface problem :)

> On 8 Sep 2021, at 08:26, João Pais <jmmmpais at gmail.com> wrote:
> 
> is jmmmp/cellblock a model of what you could use? but adapted to lists and maybe not so complex?
> 
> I tried opening your first example in [text]. As I thought, the issue is that commas are already reserved in pd for line changes. The output is this (I added a line number at the start of each line) when using carriage returns:
> 
> print:  0 {
> print:  1 "cols" : 3
> print: 2
> print:  3 "data" : {
> print:  4 "entry-0" : [ -0.06755
> print:  5 0.44185
> print:  6 -0.33835 ]
> print: 7
> print:  8 "entry-1" : [ -0.12305
> print:  9 -0.24085
> print:  10 0.31295 ]
> print: 11
> print:  12 "entry-2" : [ -0.0595
> print:  13 -0.2881
> print:  14 0.0597 ]
> print:  15 }
> print: 16
> print:  17 }
> print: 18
> 
> Or this without them:
> 
> print:  0 { "cols" : 3
> print:  1 "data" : { "entry-0" : [ -0.06755
> print:  2 0.44185
> print:  3 -0.33835 ]
> print:  4 "entry-1" : [ -0.12305
> print:  5 -0.24085
> print:  6 0.31295 ]
> print:  7 "entry-2" : [ -0.0595
> print:  8 -0.2881
> print:  9 0.0597 ] } }
> print: 10
> 
> which makes it a bit hard to read json files without some hacking, as all those commas create a new line. Unless there is another method, is it better to code your own json interpreter?
> 
> One advantage of [text] is that it can be used to declare data structures directly - examples might be in my tutorial, I'm not sure anymore how far I got with it.
> 
> Files are attached.
> 
> Joao
> 
>> Thanks for the quick reply!
>> 
>> 2 use-cases.
>> 
>> 1- we can generate or retrieve a dataset's content to use natively in the creative coding environment (Max Pd Sc) so that it integrates in other workflows of data mangling and drawing. We already have in our dataset object file support and single point entry and query but this allow batch dump and load. The structure is:
>> 
>> {
>> 	"cols" : 3,
>> 	"data" : 	{
>> 		"entry-0" : [ -0.06755, 0.44185, -0.33835 ],
>> 		"entry-1" : [ -0.12305, -0.24085, 0.31295 ],
>> 		"entry-2" : [ -0.0595, -0.2881, 0.0597 ]
>> 	}
>> 
>> }
>> 
>> 
>> 2- we can retrieve or set the state of a complex objects. Our object will spit out its internal status ( for instance, a neural net) and we can use the values of its parameters, like below. More interestingly, we can also query its structure and use that information too.
>> 
>> {
>> 	"layers" : [ 		{
>> 			"activation" : 3,
>> 			"biases" : [ -3.076234734727154, 0.772760846709679 ],
>> 			"cols" : 2,
>> 			"rows" : 1,
>> 			"weights" : [ [ 6.015551733036155, -1.826803841455323 ] ]
>> 		}
>> , 		{
>> 			"activation" : 3,
>> 			"biases" : [ -0.490600074475542 ],
>> 			"cols" : 1,
>> 			"rows" : 2,
>> 			"weights" : [ [ -3.115116035462417 ], [ -3.969281643687132 ] ]
>> 		}
>> ]
>> }
>> 
>> The key-value nesting is quite powerful for this type of open structure...
>> 
>>> On 7 Sep 2021, at 15:51, Christof Ressi <info at christofressi.com> wrote:
>>> 
>>> Can you give an example of how the data is structured?
>>> 
>>> In which ways are users supposed to interact with the data?
>>> 
>>> Christof
>>> 
>>> On 07.09.2021 16:37, Pierre Alexandre Tremblay wrote:
>>>> Dear all
>>>> 
>>>> I am trying to find the most Pd-vanilla-way to interface with our Dataset object in the FluCoMa project. In Max and SuperCollider we use Dictionaries, which are nestable and queryable in powerful programmatic ways, working essentially like interfaces to JSON-like data structures.
>>>> 
>>>> I’ve looked at [struct] but the [set] object does not allow to do symbols and (list of) floats, and [appends] seem to have the same limitations. In all cases, I’m not certain it is the best approach in any cases to create such a list in Pd...
>>>> 
>>>> I wonder how people do it and if I am missing an obvious workflow, especially with nested structures.
>>>> 
>>>> Any pointer (pun intended) welcome
>>>> 
>>>> p
> 
> <json-test.pd><test.json>






More information about the Pd-list mailing list