• cfry

    @oid Allright, I will try to do some safety net to make sure connections are sane. That should do it. Thank you so much for your cool patch I will continue working on understanding it! ;)

    posted in technical issues read more
  • cfry

    @oid thanks for the update. Its really cool but I got a lot of errors from Pd not finding a matching send/receive and that was sort of expected, but it also only works if you enable disable connections in a specific way. Try my version with the synth to see what I mean:


    I think Pd disables the r~/s~ if it accidentally becomes duplicates of the s~.
    ...why can not Pd have a single send and receive object that accepts both multiple sends and receives at the same time... but I am just guessing what the problem may be.

    EDIT: Would it make sense to mix the dynamic patch approach with using cyclones matrix~ for signal domain and vanilla s/r for control domain?

    posted in technical issues read more
  • cfry

    @oid said:

    No problem with s~ and r~, just add them to the routes and pass the list from the [text] foreward so we can set the first and third items of the [list store] as well, something like this but without the error in the message like I did, setting the wrong index.
    And you can add in throw~ and catch~ if they suit a task better.

    Sorry but I can not figure out where to put this :/ The pd.pd abstraction looks slightly different. It looks like you have merged what was previously two paths with parallel [route] objects.

    EDIT: I managed to set up some logic to make the controller ccs work with this setup. Seem promising!

    posted in technical issues read more
  • cfry

    @whale-av I looked at [matrix] but I couldn't figure out how to use all the eggs(!) and eyes(!) etc. I would assume you use the same principles in [matrix~] ( or [mtx_*~] ) Could one use [matrix~] with control values too or should one then use two parallell matrixes?

    Do you mind giving me an example on how to set this up? Re-route some objects in control and signal domain from input to output?

    Are @oid dynamic object solution combinable with this approach? I could try both anyway. Is either one less mean on the cpu? If possible I would like to put the code on a raspberry pi later on.

    The controller can do a dump of the current physical patching and knob values but it is of course great to be able to save multiple presets.

    thank you for your input this is so cool.

    posted in technical issues read more
  • cfry

    Amazing, thank you so much. Indeed it was better to do this with dynamic patching. It works really good.

    I made a version with a synth just to try it out:


    -The original software can't use stackable cables but I think it can be possible on the controller end. Will find out.

    -To me it seems like when you init the patching for the text object r and s should switch places. r works as s and s works as r at the moment. Maybe [route s r] or [list store r 0 s 0 0] should be adjusted but I don't get the patch fully yet so I do not want to randomly change things. Working on it though.

    -Some of the patch points on the controller are "audio", simulating an audio connection. Can this be done with dynamic patching too? For example using [s~ ] [r~ ] or does it have to be another solution?

    -My intention is to make a (sort of) replica of the ms20 as per functions but not necessarily sound wise. Then exchange objects to make it sound better, if need be. I hope to learn something more on general synthesis along the way. I can also imagine just using the patchbay/controller for some completely different routing and synthesis. That is why I think it is great that there is the "default connections" option, for further use. I do not think the controller works like that though. I also would like to try to combine this setup with control data from other things and sensors through arduino/serial usb connections.



    posted in technical issues read more
  • cfry

    Could you please show me how this is done? I have a hard time grasping dynamic patching.

    Also, how do you suggest using text? Would it only store current patching as two values or would it be set up similar to a list with each line and a single value is used? That is why I skipped using text, I have not figured out how to use it in the best way.

    I made a simulation of how the CCs are coming in. It's pretty wild, will need to clean them up a bit.


    posted in technical issues read more
  • cfry


    if I would give each jack the the three states of :

    0 = not connected
    same = cable inserted (index 2 = 2)
    other value = connected to this jack (index 2 = 4 means 2 and 4 are connected)

    Then all I need is [list], right?

    I made a proof of concept. But it will be a lot of connections to cover all possible patching...

    Could I avoid making all these connections "by hand" by using [matrix~]? Or what would be the benefit? ...or in combination with [snake~] ?


    posted in technical issues read more
  • cfry


    I got a MS20 controller and I have finally come around to try to make it work with Pd. For starter I would like to create a patch where the 34 jack patchbay and the knobs work as with the original software. The patchbay generates midi cc triggered by the patch chords in a specific sequence.

    Question 1: I would like to have something like a list or an array with two elements for each index slot. Then a search or compare function where I can find what is connected to what.

    Question 2. Creating the matrix for routing signals in the upcoming synth... I guess there are good and less good ways to go about it? Any suggestions is appreciated!


    Skärmavbild 2024-04-30 kl. 17.48.26.png 20240430_174738.jpg

    posted in technical issues read more
  • cfry

    @oid how can I change the save directory of [command]? I would like to have all log recordings in a folder (log-recs).
    I tried with the new [file cwd] object but that doesn't seem to work.

    posted in technical issues read more
  • cfry

    @oid Thank you, I used the third version (which outputs only the last request). Seems to work fine.

    A thought/question: First I tried to have all messages to all motors of the robot to be sent through a single pd [command] object. This did not work that well since messages was blocked/cancelled because [command] was not keeping up. When I used a separate instance of [command] for each channel I was sending on it worked better. This leads me to think that you could send through command at a higher speed if you had several [command] objects that you cycle through. I have no need for this here but I just want to understand how [command] works.

    Another thought- when you do these nice examples/abstractions maybe you could add some comments in the patch too? I can figure out what is happening but I think it would be very beneficial for other ppl browsing and maybe make it more likely that others can take part of what we come up with. If it is not too much extra work for you, hit command+5 and throw in a few words?

    Cheers! Good job with the procrastination! ;)

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!