-
sebpiq
Thanks Gilberto!
And thanks for the bug reports!
Once again this is very early proto, so if anybody else finds bugs ... and there is many for sure ... please report them here : https://github.com/sebpiq/pd-fileutils/issues
Thanks!
-
sebpiq
Hi all,
We just opened a web service that allows to render Pd patches as SVG images.
Usage is simple. Just use the following url https://enzienaudio.com/a/dave?fetch=<patchUrl> replacing
<patchUrl>
by the url of your patch.For example, here is a patch hosted on a github repository : https://raw.githubusercontent.com/mhroth/ZenGarden/master/test/MessageInteger.pd and here is the url of its rendered image https://enzienaudio.com/a/dave?fetch=https://raw.githubusercontent.com/mhroth/ZenGarden/master/test/MessageInteger.pd
I think this could be really useful on http://forum.pdpatchrepo.info as many people post pictures of patches, while this service could save you from having to make a screenshot.
The whole thing is open source. The service uses pd-fileutils to parse / render the patches (https://github.com/sebpiq/pd-fileutils) and the source code of the service is there : https://github.com/sebpiq/pd-to-image-service
This is still alpha, and we'd be really happy to get your feedback and contributions. If you find any bugs, if you want to improve the look of the rendered SVG, or anything else, please head there https://github.com/sebpiq/pd-fileutils and file an issue or send a pull request!
Cheers!
-
sebpiq
@bang sorry! Slow to answer ... I don't know about [h_multimap] it's not in pd-extended right?
@seb-harmonik-ar I don't really want to get into that. Feels a bit complicated for such a simple thing.
I kind of thought it's such a common thing to do with general purpose programming languages, that there must be an object implementing it in pd-extended .... but apparently there might not be!?
-
sebpiq
[coll] is more of a list really. Indexes are Integers. I have indexes that are symbols. and I want to associate them with other symbols.
-
sebpiq
Hi all!
I was wondering of there is a simple dictionary (key-> value storage) object in pd-extended. Something with basically operations "set key", "get key" and "delete key"
Any idea what I could use?
-
sebpiq
Hi!
I have been playing with mixers, creating some feedback loops ... those of you who have tried probably know the huge variety of sounds you can get with this method.
Now I am trying to do the same with Pd. For the moment I have implemented a simple model of a mixer in feedback :
[delread~] -> [gain] -> [filter bank] -> [clip -1 1] -> [delwrite~]
-> [dac~]In my filterbank I have 4 band-pass filter in parallel.
I do have some feedback sounds, but it always sounds the same. Cannot even get close to what I get with my mixer. Any ideas how to enhance this a bit?
-
sebpiq
Hi!
Kind of ashamed of myself to ask help for this dumb stuff, but I really can't see what could be the problem.
I am trying to illustrate Fourier's theorem by summing a few osc to make a sawtooth. However, the sawtooth won't appear, though I think I used the right formula.
-
sebpiq
Hi all !
I'm trying to use [switch~] to fill-in an array instantly.
first thing I did is a test patch with a simple ramp [line~], but it doesn't work as I expected I've tried a lot of different stuff, changing the block size, and so on ... nothing goes.
My test patch is attached, so that you can test yourself ! The ramp should go from 0 to 500 in 3 seconds. The array is 3*44100, so it should contain the whole ramp exactly. I want to compute the whole thing at once, so I've set the block size to 3*44100 as well. What I have instead, is a full array, but the ramp only goes up to ~250 instead of 500
Can someone tell me what I am doing wrong ?
Thanks
Sébastien
-
sebpiq
Hi !
I think the question is pretty clear. I have a patch that is hard to read because cables are crossing all over. So I was thinking of replacing some with send/receive objects. But then I thought "hmmm, ... is it going to make things slower !?". And here I am asking you
Sébastien
-
sebpiq
Hi !
I am trying to do something, and have no clue how to do it (google didn't help) :
My goal is ... on a website that I am writing, when people click some stuff, I want the web-server to quickly generate a sound, and send it back to the page so that it can be played to the user. So the generation of the sound has to be as quick as possible.an example - I have a very simple patch :
[receive x1] -> [osc~] -> [dac~]
And I would like to programatically (i.e., not using the GUI) generate say 5 seconds of sound of this patch. And where it becomes more complicated, is that I would like to change the osc's frequency at given time (for example, at 0 send 440, at 1.2 seconds, send 880, ...).
Of course, in order to send the file as quick as possible, the generation shouldn't be real-time like it is when using the GUI. So basically, I want to use pd as a calculating machine (unaware of time), writing directly to a .wav (or whatever file format).
Does someone know if this is possible ? Or has any suggestion ?
Thanks and cheers !
-
sebpiq
yeah ... I know it's not that simple
That's why I'm asking if any ideas to make this more interesting!!! -
sebpiq
Thanks! I know ... I just wanted to illustrate how to approximate a sawtooth using additive synthesis. So I have 10 partials, and you can toggle them on and off, and see the result change and getting little by little closer to a sawtooth
-
sebpiq
Aaww! Yes! My problem was that even though in theory I should know how to re-synthesize a sawtooth I couldn't get the right shape...
In fact, if I remembered a bit more my maths, I could have guessed what the phase was from the formula
Thanks a lot!!!
-
sebpiq
But ... also, can somebody explain me why if I set the block size to a bigger block, then the ramp is computed really weirdly (each point is roughly at Y/2, where Y is the expected y coordinate) ? I tried to find some explanation, but couldn't find any guide, any article on PD's block size, and thus no answer to this "unexpected" behaviour
-
sebpiq
Thanks for the info Katja ! I had kind of understood there was something like that, but it's good to know what happens.
Hey Nau ! Thanks ! Actually I spent quite a while trying to read, and find some docs about [switch~], and didn't find anything valuable. I actually tried to reproduce the third example (which computes instantly a random array), with my ramp, but didn't succeed. Also, the options are not really explained ! This oversampling thing, I didn't understand so I thought "yeaaaah ! Probably useless ".
[rpole~] seems to be a bit more technical ! I guess I'll try it tomorrow !
My final goal is actually to build a time machine for a looper : basically it would record continuously the audio in a ~2 second array, overwriting at each passage, and when you send [stop(, it would stop recording, and generate 2 ramps (built with a modulo), as a control signal to read into the array with [tabread~4]. That way you get your loop + the 2 seconds before, in order to adjust it live !
I managed to generate the ramps without pb, but I was thinking they should be generated instantly, otherwise it doesn't make sense -
sebpiq
Actually, I like send/receive very much, I have some patches right now that look very ugly and they would definitely need that.
-
sebpiq
Hahaha ! Noooo. My patch is ridiculously small. I was just curious that's all
> you should try to generate two enormous patches
That's a good idea, and I will do it - when I find time
-
sebpiq
Except for one thing ... if you create send with no argument, you can route dynamically.
So if send with no argument and send with an argument use the same native object, then it's got to be more complicated than a normal cable. No ?
-
sebpiq
I remembered having read the same thing, ... but somehow it seems hard to believe