• impression

    Hey David,

    Thanks a lot. Funny enough, I actually switched to SuperCollider recently, and I'm having those issues actually mainly in SuperCollider.

    But for some reason I can't get access to the SuperCollider forum, I've been waiting for the administrator’s approval for days. :(

    But I'm glad to hear that it seem a general problem with the UDP messages, I will try if changing the buffer can fix it.

    Thanks again!

    posted in technical issues read more
  • impression

    Hi,

    I have a Raspberry Pi connected to a lot of buttons, encoders, and a display.
    Initially, I planned to communicate using OSC messages, but I’m running into a bottleneck very quickly.

    For example, I have 16 buttons for a step sequencer, and I need to send an OSC message for each step to briefly turn a button’s light on, and then another message a few milliseconds later to turn it off again, so I can show the current step position. Basically a running light through the steps. That alone seems to overload OSC, depending on the tempo of my sequencer.

    I could probably optimise this better, but I’m a bit shocked at how quickly I can overload OSC messages. There’s much more I still need to send, for example my encoders would also send many messages within milliseconds, and there are multiple encoders running at once.

    I just read about using stdin and stdout for communication. I don't have any experience with it though. Would that work better in my case, or is it still better to stick with OSC and try to optimise it as much as possible?
    Or are there any other/better ideas?

    posted in technical issues read more
  • impression

    I think its all good. Maybe something got messed up in my OS.
    Out of the sudden, I couldn`t boot anymore, so I had to reinstall everything from scratch. Now it seems to be working. I am so happy :smiley:
    Also I am now on 0.55 as well.

    Thank you very much for your help though :)

    posted in technical issues read more
  • impression

    Hmm, that's interesting. Can I ask which pure data version and raspberry PI OS you are using?
    Yea, by "no inputs" i meant keyboard and mouse. I cant create any nodes or change values, basically i cant do anything as long as there is a window underneath the actual pure data window.

    I am also SSH into the pi, but I also tried connecting directly. The issue is the same.

    posted in technical issues read more
  • impression

    Hi,

    I’m having an issue that makes me want to bang my head against the wall.
    Basically, whenever there is a PD window above another one, the top window ignores all inputs, as if the one below is blocking everything.
    Working around this is a big pain because I already have a small screen resolution and constantly have to move windows around just to be able to edit the top one.

    Is there any solution for this ?
    I’m using Pure Data 0.53.1. For every other version, I would need to compile.

    I also thought maybe purr data could work better but I couldn`t even get a version I could install

    posted in technical issues read more
  • impression

    Yea I saw the video, but still couldn`t get it working somehow.
    Thank you so much both of you. I think its all working now :)

    posted in technical issues read more
  • impression

    Hi.

    I’m a complete beginner with Pure Data.
    I tried making a very simple FM synth, but I can’t get the feedback to work.
    Basically, when I try to route the output of an oscillator back into its input. How would I do something like that?

    image.png

    posted in technical issues read more
  • impression

    @Balwyn: perfect, seems all working now. Thank you so much again :pray:

    posted in technical issues read more
  • impression

    @Balwyn. Thank you so much, I think its pretty close to what I was looking for, but I thought I can skip the inlet part and send straight from my testPage into the testsynth.pd
    Maybe @whale-av you have explained that in your pd? but I can`t follow unfortunately.

    That's how far I got basically:
    It sends cutoff data to either the testSynthClone 1 or testSynthClone 2. But I am not sure if that interfers with my actual "notes" and "velocity" data for clone later on. If I could I would love to skip the inlet part and send straight into the testsynth, or is that not possible?
    image.png
    testSynth.zip

    posted in technical issues read more
  • impression

    Hey Balwyn.

    Thank you so much for your help, but I’m not sure if that’s what I’m trying to do, or maybe I just don’t fully understand it yet?
    I tried simplifying it as much as I can. I basically call the testSynthClone abstraction and give it the number 3., because later on I will have multiple abstractions.
    I want to pass this number down to the actual testSynth abstraction, so that it becomes a unique identifier for that particular abstraction.
    I’m able to pass it down to testSynthClone, but passing it further to testSynth using $1 doesn’t work.
    If that makes sense?

    image.png

    posted in technical issues read more
  • impression

    Hi.

    I have an issue I can`t manage to solve

    I created a polyphonic synthesizer.
    I have an abstraction for the actual synthesizer, which contains the filter and velocity envelopes.
    I then use [clone] to load this abstraction in order to achieve polyphony.
    After that, I made the [clone] instance itself into another abstraction, so I can call this polyphonic synthesizer multiple times and assign it to different tracks or step sequencers.
    So far, that’s all working — let’s call this abstraction synthclone.

    Now I’d like to send values like cutoff, resonance, etc., to one of these synthclone abstractions.
    How would I do that?

    Because it’s basically an abstraction inside an abstraction, I’m not sure how to send values to each synthclone — which in turn needs to pass these values down to its internal polyphonic synthesizer abstraction.

    My solution so far: I created an inlet for the polyphonic synthesizer abstraction, and in my synthclone abstraction, I added inlets which passes values down to the polyphonic synth abstraction.
    I think I also have to send the message all $1 to it in order to make it work, but that seems pretty complicated overall. Also I would probably need so many inlets for all the values I want to control, its hard to keep that in order.
    I’d rather use send and receive directly in the polyphonic synth abstraction, if that’s possible.

    Sorry, to basically make it short, if I create my synthclone abstraction like synthclone 4, I would need to pass the 4 to my synthabstraction inside clone. I am able to pass it to synthclone with $1 but then I can`t get this value inside the clone object

    posted in technical issues read more
  • impression

    So typical, I tried whole day yesterday and now that I wrote into the forum I got it working.
    I basically installed python-osc and in pure data I am using mrpeach/udpreceive. That worked for me.
    Thanks for your help though :)

    posted in I/O hardware diyread more
  • impression

    just saw this post and didn`t noticed its actually already on the top.

    I am basically running into the same issue.

    Basically, I want to send button inputs, and later rotary encoder values to a Pure Data patch running on a Raspberry Pi via GPIO.

    I managed to get the button working, and it's definitely sending data over UDP or TCP, that part works fine.

    But Pure Data just doesn't receive anything. I've mostly tried using [netreceive], but I get nothing.
    I am also not sure if UDP/TCP is the right way to go?

    Are there any news on how to get this working or is there a python script out there which could help me?
    I am surprised after almost 8 years there is still no easy solution to this? :disappointed:

    posted in I/O hardware diyread more
  • impression

    ah thanks a lot. I am happy there are multiple option. Will give them a try. Thank you

    @oid. I am sorry you are right, GOP inside GOP is working indeed. I think the GOP I created inside the other one was slightly bigger, which is why it didn’t show the whole content, and I assumed it wasn’t working.

    posted in technical issues read more
  • impression

    Hi,

    I'm running into two issues I can't seem to solve:

    1. Is there a way to dynamically load and clear abstractions?
      Let’s say I have multiple synthesizer engines with different GOP settings and sliders.
      I’d like to switch between them by always loading just one engine at a time and replacing the GOP of the previous engine.

    2. I’d like to create a virtual display/dynamic GUI. I know that I can’t hide objects in Pure Data, but I could move the GOP to different sections to give the impression of switching display pages.
      The problem is that I have 16 tracks, and each track might need 6–8 pages. That’s already over 100 pages — not including the different synthesizer engines with their own settings for each page.
      Altogether, that could easily add up to 400+ pages, which is way too much to handle just by shifting the GOP.

    I also considered using one abstraction per track. But that would require showing a GOP inside another GOP, which looks like that won`t work either?

    Are there any other options I could try?

    posted in technical issues read more
  • impression

    Thanks a lot for all the explanations. :) I actually had a look at supercollider before but tbh. as a beginner in programming I am quite happy PD keeps it a bit more visually. I think in supercollider I would be even more lost :sweat_smile:
    I've been studying your script the last couple of days and tried to rebuilt it on my own. I already learned a lot. But a couple of things I am quite not sure about.

    • for what are you using text search parsing->moses->1000 for? I just noticed it turns voice number 1 into a zero, but don`t really get how and why.
    • also I don't fully understand "pd notecount", even you explained already what it does, it lets my brain explode:smile:
      You count up + 1 once a note is pressed and count down -1 once its released. I don`t know what's the idea of "max 0" feeding itself back into + though.

    Also, I found this from another forum thread you posted, which is an interesting read in general.
    https://forum.pdpatchrepo.info/uploads/files/1605338689951-pd-things-i-wish-i-knew.png

    It all works as you showed, but when I set list split to 3 it basically freezes PD. Do you know by any chance why?
    I would need to split my list into 3 later on.

    Thank you again so much for your help

    posted in technical issues read more
  • impression

    Omg, never in my life would I have figured that out.:open_mouth:
    Thank you so much. Really appreciate your help.
    I think I will be busy for a few days studying it properly.

    posted in technical issues read more
  • impression

    Yea. That was my initial idea. But it seems like it comes to a similar issue.
    What comes out from notein i would need to write into a text. If i play polyphonic I would get multiple notes which i would also need to iterate through at first and bring them in order if I am not mistaken🤔.
    It all works if its monophonic. But polyphonic I can't sort it out.

    posted in technical issues read more
  • impression

    @ddw_music said:

    I'm curious, why is that? There's probably a solution. If it's the first time you're using [clone], I can see how it might be tricky to figure out, but "haven't figured it out" may not be the same as "can't use it."

    agreed :)
    I should have probably phrase it better.
    .
    .
    I am fairly close, but can't solve this last one issue.
    Once I am reading out my list, I am iterating through each value, the issue is though, its probably not always in order, which messes up the actual notes.
    I guess I would need to go through each list and combine it into another list. So basically I would need to take the next first input of each list(textNotes,textVelocity,textLength) and combine it into another list so that I have pitch, velocity and length in one list for each note, set by the index. I just don`t know how to achieve that.

    I thought maybe list split could help? Always just splitting the next first one and writing it into a list for all of them? But I would need to iterate through that as well I guess

    image.png

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!