• cerupcat

    I have a tone and chord generator that can produce 1 - 8 tones simultaneously. What's the proper way to ensure that the there's never any clipping and the amplitude stays the same when playing 1 tone or 8? Should I be dynamically dividing the amplitude by the number of tones being played?

    posted in technical issues read more
  • cerupcat

    It seems that [sigmund~] is really great for frequencies from 200hz - 15000hz, but when it gets below 200hz it starts having problems (especially below 100hz).

    [helmholtz~] on the other hand works great all way down to 20hz, but it cuts off at 2000hz.

    Is there a good way to combine them so that sigmund~ could handle the upper range and helmholtz~ handle the lower range? For example, should I route the audio to sigmund and helmholtz at the same time and then let helmholtz have preference if they both find a value? Or should I do some kind of cutoff filter and send the highs to sigmund and the lows to helmholtz?

    Or maybe I have the wrong parameters for lower notes in sigmund?

    posted in technical issues read more
  • cerupcat

    I'm trying to align the frequency discovered by [sigmund~] with a spectrum graph.
    I tried using a logarithmic scale, but they're not aligning. I'm currently using the E-01-spectrum example. How can I plot the input frequency so that it'll align with spikes on the spectrum?

    posted in technical issues read more
  • cerupcat

    I currently am storing numbers in a list. The numbers are in sets of 3s for representing Pitch, Volume, Pan. For example, [70 127 .5] is one set and each list has multiple sets. I would like to be able to remove or skip reading a set if the first number in the set (Pitch) matches one already in the set. For example in [34 127 .5, 39 127 .1, 34 127 .7] the last set would be skipped or removed (when reading the list) since the first number (34) matches the first number in the first set. Essentially, I don't want any duplicate Pitch's to go through.

    Is there a way to sort lists in sets of 3? If so, I could just use the 'change' object. How would I best do this. I thought about using an array or table, storing the set only if the first number wasn't already utilized in the array, but I don't know how I would handle all 3 numbers (3-axis) in one array.

    Any thoughts?

    posted in technical issues read more
  • cerupcat

    I'm doing a project for iOS and therefore the GPL objects from PD (like expr, limiter~, z~) can't be used. Is there another simple way to create a limiter? Maybe using env and then lowering the volume if it's above 1? Any best practices, advice, or sample patches for something like this?

    posted in technical issues read more
  • cerupcat

    Instead of rendering to a audio file (wav, aiff, etc), I'd like to save/record real-time parameter changes to a text file (with timestamp) so they can later be loaded in and playback what was recorded. I'm not sure what the best way to go about this would be. Are there any recommendations?

    I imagine each parameter worth saving would have a [change] object after it to see if it's changed and if so it sends the parameter to be saved along with a timestamp that PD could read in and send those parameters in time based on the timestamp. I'm not sure about the playback part and how to send a float/notein based on a timestamp.

    Any thought on a clean solution would be great. Maybe it's as simple as using the [change] and [textfile] object?

    posted in technical issues read more
  • cerupcat

    What are the different ways for creating a GUI for a PD patch (other than using canvases)?

    I don't know much about this, but is there an openGL external for creating a GUI for PD patches?

    Also, is there a way to open PD and a PD patch through another program. For example, if a GUI is created for PD in another program/application/C++/etc. is there a way for PD/Patch to load on the startup of the GUI? Or do you need to startup PD separately? What connections may be necessary for this?

    Thank you for any thoughts =)

    posted in technical issues read more
  • cerupcat

    I have a patch that receives an ID number when an object is added on a physcial table, and receives the ID number of an object when it is removed (from the table).

    All add IDs come through the same outlet, and all the remove IDs come out another outlet.

    Is there a way I can sort or list out what IDs are currently active or save the numbers received through the add or remove outlets? Since the ID numbers aren't received in a single list or message (but one after the other) how can I keep track of them when they come out the same outlet?

    For example, the add outlet may receive a 1, then a 2, then a 3, then a 4 and then the remove outlet may receive a 3. This means only 1, 2, and 4 are still active.

    One thought I had was creating a

    all add objects, but is there a way to remove things from a list if they match what is inside? For example, if a 1 is in the add list, and the remove ID outlet receives a 1, it'll remove the number "1" from the add list.

    posted in technical issues read more
  • cerupcat

    Is there a way to "set" a new array into tabrecieve? I tried sending it a set message, just like tabread4, but that doesn't work.

    Is there some way I can switch between different arrays for tabrecieve? Maybe a work around?

    Also, is there a [spigot] like gate object for signals (not controls)?

    posted in technical issues read more
  • cerupcat

    Hi,

    Is there something like the "float" object (right inlet stores, left inlet can send), but for messages?

    I have an array that I'm sending "set newarray" into, but I don't want it to actually send it until it gets a bang.

    The reason is I have one MIDI note that picks the array to send, but I want the second MIDI note to trigger it actually being sent. First note picks it, second note needs to send it, therefore I need to store it first.

    Basically I am wondering if there's an object that can store messages, and will send them when it gets another bang.

    Any thoughts?

    It would be better if it wasn't an extended object also :-\

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!