• oid

    @cfry To get around each command needing the same format the easiest is just to make them all the same, have a null argument like bang.
    Untitled1.png
    Now we can just skip the commas and have as many commands per line as you want. If you want to run the command "stop" you just make the message "stop bang" and it sends a bang to [r stop]. Would probably want to add a [list prepend $1] between the [list split] and the message and make the message [; $1$2 $3( so you can pass the parent patch's $0 and prepend it to the symbol but that might not be needed for your use?

    If you want commands with more than one argument things get more difficult since you don't want to always have to type in all those null characters or symbols, but it is not that difficult to create a simple editor which does it for you, especially now that we got [list box), I have one somewhere from when I made a tracker like thing years ago, I will see if I can find it later if you want to check it out.

    If you really want commands with an arbitrary number of arguments and no nulls, use commas and exploit the right outlet of [text get]. This does complicate things regarding line number vs message number but making that [sel 1] into a [sel 0 1] and using the 0 outlet to bang a second counter for the line number might be enough?
    Untitled2.png

    posted in technical issues read more
  • oid

    @cfry I was thinking you were using [list split] in place of [unpack] to deal with hex being made up of both floats like 11 and symbols like a1. I can't quite figure out what you are doing with the [list split],. I suspect you just need to develop a more complex counter and maybe tweak how your data is stored and you will be able to make things cleaner. Providing some more information might help in offering alternatives, the format of your data and how you need to access it, perhaps a simple mockup of your patch.

    posted in technical issues read more
  • oid

    @cfry Dealing with hex is almost always irritating in pd, I generally try and make the hex UI only and keep it as floats under the hood, but that is not always practical. The comma behavior is fairly useful, just need to format your data to exploit it and it makes sense when you think about it since if it did not work that way the object the [text get] is connected to would see a line like 1, 2, 3, 4; as four separate messages and not the single message 1, 2, 3, 4, it would be the same as [1, 2, 3, 4( into a [list] which generally will not give the desired result . That one caused me some grief at first until I learned to use it to my advantage.

    posted in technical issues read more
  • oid

    @cfry Don't think you will find an external or abstraction which will be easier/better for this than [text] unless someone made exactly what you were looking for and even then it will only be easier until you decide to change things and start banging your head against the limitations of the external or abstraction. This is a pretty simple thing to throw together using [text] and [text get] or [text sequence] depending on your needs, a simple looping [text get] sequencer is not complex and easy to expand to a full tracker like interface even.
    Untitled.png
    [text sequence] is even simpler but has some limitations, it is great when your needs align with it but almost everytime I use it my needs grow beyond its limitations and I switch to [text get]. [text get] also tends to result in neater, easier to read patches since you don't have all those messages going to one inlet.

    Edit: Must not have been quite awake when I patched that moses in, bet I thought I was being clever.

    posted in technical issues read more
  • oid

    @atux This should work for parsing the file, but you will need to add the stuff for resetting the counters/moses/max and before running it you will want to zero the arrays. Not 100% certain I got the order on the array sizing correct, the summer heat is melting my brain.
    parse.pd
    Untitled.png

    plot the four graphs on the same canvas?

    Not completely certain about your intention here, do you mean canvas literal or graph? Are you trying to get it to look like your screen shot? or just a standard pd graph? If you want it to look like your screen shot but don't need it to be interactive you can easily use dynamic patching, if you need it to be interactive then data structures are probably your best bet but it can be managed without by hiding some sliders under a canvas. Need more info to offer help here.

    posted in technical issues read more
  • oid

    @atux Your Y-range is is backwards, Y-range goes from Ymax to Ymin. Or is it that pd's Y-range is backwards? It has to do with data structures and GOPs and how they are drawn, left to right and top to bottom.

    posted in technical issues read more
  • oid

    @whale-av That is the same as mine, I just updated list-inter to modern objects. But I think the goal is something along the lines of this:
    list-interpolate2.pd
    li.png
    But there are many variations on this and I can't figure a way to effectively/efficiently cover all bases and not quite sure about @mezko's specific needs yet.

    Edit: Fixed a couple errors in the patch but not the image.

    posted in technical issues read more
  • oid

    @mezko It sounds like you are trying to implement a bandpass filter in the message rate to determine which partials should be on and how strong they should be? If so, a bandpass filter on the output of the synth would do the same thing and be simpler, more versatile and give better control over the sweep. Something like this but you probably would not want to use vanilla [bp~] and this would change how you would set the level of each partial but I think the same results could be gotten?
    bp.png
    Or am I missing something? If I am missing something, some more details about your additive synth or sharing the patch would probably help.

    Edit: it is probably too hot to think, I feel like I am missing something obvious.

    posted in technical issues read more
  • oid

    @KoaN I have never experienced any midi latency of note with pd, I would expect it has something to do with your setup. Giving some idea of how long of a latency you are talking about, your midi setup and what OS you are on would be very useful if you want assistance in troubleshooting this latency.

    posted in technical issues read more
  • oid

    @patricio.tics Putting the array 'delays' ontop of a second array (delaysdummy in this case) will solve the issue, or you can use the place array in last array feature and just have a single array but I just did a quick copy and paste. Mouse events always go to the bottom object so delaysdummy receives the mouse events which are sent to [array get] and then delays is updated.
    multislider2.pd

    posted in tutorials read more
  • oid

    @impression If you go the route of moving the GOP, [iemguts/canvasposition] will be of help, stick one in the subpatches/abstractions to get their location as needed so you don't have to track all the GOP positions manually, something like this:
    Untitled.png

    posted in technical issues read more
  • oid

    @impression Dynamic patching can do all you need, [iemguts/canvasdelete] will be of great use and simplify everything, the iemguts library might have other externals which will be of use to you as well. Using [send] and [receive] and their audio counterparts instead of physical connections is nice when practical, lets you just pass the names to the [send]/[send~]/[throw~]s in the abstraction through its arguments. Previous post has some on dynamic patching and there is a good amount about it on the forum.

    Moving the GOP could probably work, pd can handle a surprising amount, just stick a [switch~] inside of any abstraction which does audio rate stuff so you can turn it off and be sure to turn off any message rate stuff in the appropriate way when you hide it.

    You can show a gop in a gop, what is not working for you?

    posted in technical issues read more
  • oid

    @atux [bonk~] might work for you. It has been years since I have played with it but if memory serves for a simple source of 3 fairly different sounds like kick, snare, and hihat I did not even have to use the [learn( method, just get it configured right and I was able to use the color temp part of the right outlet and some [moses] to get bangs for each instrument. But I don't really remember the details and can not seem to locate the patch I used it in. The help file is not the greatest but other than the [learn( method it was fairly easy to figure out.

    posted in technical issues read more
  • oid

    There is also pd-next which is mostly vanilla pd but with color themes and [closebang]/[initbang]. Nice for those that prefer vanilla but don't want to stare at a white screen.
    https://forum.pdpatchrepo.info/topic/10943/a-little-pd-mod

    posted in Off topic read more
  • oid

    @gentleclockdivider Realized I completely missed your point. This behavior is the same as it is with messages.
    Untitled.png
    My guess is that the logic is that it will cause an error in the log window instead of possibly difficult to find problems. Imagine if you had a bunch of [text]s or [value]s or [send]s or what ever all with a common basename and one with just the basename, [v i], [v i1], [v i2] etc and were passing those names to abstractions through a float in their arguments with a [symbol i$1] in the abstraction, passing the escaped dollar argument means you get an error instead of accidentally setting the wrong [v] since it is very unlikely anyone would have an escaped dollar argument in the name of their [v] or what ever. If the symbol just combined with the empty symbol to create [symbol i] things would seem to work or might do something bad depending what your [v]s are used for and you will have no error message to control click on to find the problem, all you would know is that it did not work correctly.

    posted in technical issues read more
  • oid

    @polyplexmescalia Most people won't notice the difference between aliasing and the weird smearing of low quality mp3s, so downsampling might be enough for your needs? Perhaps fake the smearing with an allpass filter/phaser on top of the downsampling?

    posted in technical issues read more
  • oid

    @willblackhurst What are you using to make the screen capture? I never had an issue using ffmpeg and jack_rec. A bit of speculation, it is how PipeWire and Jack are setup, your screen capture app does not speak Jack and PipeWire is trying to sync the realtime audio from Jack with the non-realtime audio of what ever screen capture app you are using. Pure conjecture, I have not played with PipeWire enough to say for certain, and the time I have spent with it was quite awhile ago. Does your screen capture app speak jack or what ever you are using for audio in pd?

    When I did this I believe I did something like this:
    Untitled.png
    When you are done with your capture just run killall on ffmpeg and jack_rec and then use ffmpeg to combine the audio and video. Audio and video were not quite synced but they were close enough for the majority of cases and you really had to look for it to see they were out of sync, not difficult to fix if needed.

    posted in technical issues read more
  • oid

    A little ridiculous, had to jump through some hoops to get that symbol back into a float. I used the -u flag of [fudiparse] so I could just use a simple [list split] in an earlier version but [fudiparse] and [fudiformat] should drop in now. There is some external which would make the symbol to float conversion easier but I can never remember which one it is and I have been trying to figure out the logic of why some float symbols will not convert with [float] and they weirdly are not even consistent regarding which hoops you have to jump through, first time I had to form a list and put it into a [text].
    impossiblesymbol.png

    posted in technical issues read more
  • oid

    What about implementing your own fixed or floating point encoding for sysex? Break the float into two ints at the decimal, first first bit of the message is the length of the first int, reconstruct after the fudiparse?

    Edit: Suppose a simple integer based fp implementation would not actually work here, did not think that through.

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!