Re: [PD] [PD-announce] collaboration Belgium
Hi, I live in G(h)ent! could you give some more details about what the project is about? On 7 March 2012 16:00, Joe Higham joehig...@hotmail.com wrote: Hi everyone (or nearly everyone), I'm looking for someone to collaborate with on a project for April (2012 of course), here in Belgium. I suddenly got the idea that there might be some Belgian Pure Data sound manipulators out there on the list! If you read this and your interested, get back in contact as soon as possible. Big thanks everyone, and sorry to use this for this type of thing but it seemed a good place to look/ask. Thanks. Joe (Higham). ___ Pd-announce mailing list pd-annou...@iem.at http://lists.puredata.info/listinfo/pd-announce ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Equal-power crossfade?
Make sure to use the interval 0 - Pi/2, panning beyond will only crossfade back and forth On 6 February 2012 15:29, Jaime Oliver jaime.oliv...@gmail.com wrote: Here's an argument for plain linear crossfade. I get power boosts with cosine crossfades... best, J On Mon, Feb 6, 2012 at 8:53 AM, Pierre Massat pimas...@gmail.com wrote: Thanks Frank! Pierre 2012/2/6 Frank Barknecht f...@footils.org Hi, On Mon, Feb 06, 2012 at 02:22:34PM +0100, Pierre Massat wrote: I need a simple equal-power crossfade between two signals. I asked the same question a few years ago, but i just can't remember how to do it... This is used in rj's e_pan.pd: left = cos(p) * signal right = sin(p) * signal where p is in radians from 0 to PI/2 (i.e. multiply your 0...1 panning by 1.5708...) Ciao -- Frank Barknecht Do You RjDj.me? _ __footils.org__ ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- Jaime E Oliver LR jo2...@columbia.edu www.jaimeoliver.pe 858 750 0924 (cel) ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] number to fractions external?
If you guys 'd done your math, you'd know there is an ancient algorithm for approximating numbers by fractions and its called continued fractions. On 16 December 2011 18:38, Lorenzo Sutton lorenzofsut...@gmail.com wrote: On 16/12/11 16:05, Alexandre Torres Porres wrote: looks like a job for an external Not really answering the OP question but something could be done in Python: def find_frac(num): f = float(num) last_error = 1000 best = (0,0) for i in xrange(1,1001): for j in xrange(1,i+1): divide = (float(i) / float (j)) if divide == f: return ((i,j),0) err = abs(divide - f) if err last_error: best = (i,j) last_error = err return (best,last_error) This would try to find the exact fraction or the one with the smallest error (trying up to 1000/1000). It would return (numerator, denominator, error). Guess it would work well at least up to 100 but only for positive numbers... and... not for numbers 1.. and surely it's not optimised etc. etc. :) find_frac(2) ((2, 1), 0) find_frac(1.5) ((3, 2), 0) find_frac(1.**333) ((4, 3), 0) find_frac(2.4) ((12, 5), 0) find_frac(2.8) ((14, 5), 0) find_frac(2.987654321) ((242, 81), 1.234568003383174e-11) find_frac(50.32) ((956, 19), 0.004210526315787888) find_frac(50.322) ((956, 19), 0.006210526315790332) find_frac(50.4) ((252, 5), 0) find_frac(10.33) ((971, 94), 0.00021276595744623705) find_frac(10.**33) ((31, 3), 0) Lorenzo. 2011/12/16 i go bananas hard@gmail.com mailto:hard@gmail.com actually, i'm not going to do anything more on this. i had a look at the articles claude posted, and they went a bit far over my head. my patch will still work for basic things like 1/4 and 7/8, but i wouldn't depend on it working for a serious application. As you first suggested, it's not so simple, and if you read claude's articles, you will see that it isn't. it's not brain science though, so maybe someone with a bit more number understanding can tackle it. On Sat, Dec 17, 2011 at 12:51 AM, Alexandre Torres Porres por...@gmail.com mailto:por...@gmail.com wrote: i had a go at it thanks, I kinda had to go too, but no time... :( yeah, my patch only works for rational numbers. you know what, I think I asked this before on this list, deja'vu will have a look at the article / method you posted, claude. are you going at it too? :) by the way, I meant something like 1.75 becomes 7/4 and not 3/4, but that is easy to adapt on your patch thanks cheers 2011/12/16 i go bananas hard@gmail.com mailto:hard@gmail.com by the way, here is the method i used: first, convert the decimal part to a fraction in the form of n/10 next, find the highest common factor of n and 10 (using the 'division method' like this: http://easycalculation.com/**what-is-hcf.phphttp://easycalculation.com/what-is-hcf.php) then just divide n and 10 by that factor. actually, that means it's accurate to 6 decimal places, i guess. well...whatever :D __**_ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/** listinfo/pd-list http://lists.puredata.info/listinfo/pd-list __**_ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/** listinfo/pd-list http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] Variable number of objects?
Im not sure what the best way is to instantiate variable number of objects, for example consider polysynth.pd: Theres a fixed number of manually placed voices, suppose I want to have the top patch to contain a counter through which one may increase or decrease the number of voices, how would I go about that (without manually placing a load of voices and disabling them...)? Whats the vanilla way to do this? Whats the pd-extended way to do this? ... ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] Fwd: Variable number of objects?
-- Forwarded message -- From: Ludwig Maes ludwig.m...@gmail.com Date: 28 September 2011 19:29 Subject: Re: [PD] Variable number of objects? To: Ingo i...@miamiwave.com I actually meant more in general, also for non-~ signals (i.e. also control rate .pd patches). I referred to polysynth such that people would see more easily what I meant. Are there really no such primitives? That seems like quite a restriction... How can that take 10 seconds?? I dont see what would cause such a huge overhead, i'd expect an increase in computations memory though (say from 10 voices to 11: 10% increase in cpu workload ram dedicated to these voices..., I fail to see what would necessitate a long initialization...) also, how is it done even with the long delays? On 28 September 2011 18:33, Ingo i...@miamiwave.com wrote: To my experience there will be definitely audio dropouts with dynamic voice creation. In the case of my rather complex patch (with currently only 8 voices) I have to wait up to ten seconds until the patch is ready again for playback. I am using a 3.2 GHz Athlon II X2 which is not that slow. Simpler synth voices might be faster, though. I think it is much better to create as many voices as needed beforehand and turn unused voices off with the [switch~] object. Ingo Von: pd-list-boun...@iem.at [mailto:pd-list-boun...@iem.at] Im Auftrag von Ludwig Maes Gesendet: Mittwoch, 28. September 2011 17:56 An: Pd List Betreff: [PD] Variable number of objects? Im not sure what the best way is to instantiate variable number of objects, for example consider polysynth.pd: Theres a fixed number of manually placed voices, suppose I want to have the top patch to contain a counter through which one may increase or decrease the number of voices, how would I go about that (without manually placing a load of voices and disabling them...)? Whats the vanilla way to do this? Whats the pd-extended way to do this? ... ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Variable number of objects?
Perhaps better rephrased: how does one use arrays of .pd objects? or variable length vectors/lists? On 28 September 2011 19:29, Ludwig Maes ludwig.m...@gmail.com wrote: -- Forwarded message -- From: Ludwig Maes ludwig.m...@gmail.com Date: 28 September 2011 19:29 Subject: Re: [PD] Variable number of objects? To: Ingo i...@miamiwave.com I actually meant more in general, also for non-~ signals (i.e. also control rate .pd patches). I referred to polysynth such that people would see more easily what I meant. Are there really no such primitives? That seems like quite a restriction... How can that take 10 seconds?? I dont see what would cause such a huge overhead, i'd expect an increase in computations memory though (say from 10 voices to 11: 10% increase in cpu workload ram dedicated to these voices..., I fail to see what would necessitate a long initialization...) also, how is it done even with the long delays? On 28 September 2011 18:33, Ingo i...@miamiwave.com wrote: To my experience there will be definitely audio dropouts with dynamic voice creation. In the case of my rather complex patch (with currently only 8 voices) I have to wait up to ten seconds until the patch is ready again for playback. I am using a 3.2 GHz Athlon II X2 which is not that slow. Simpler synth voices might be faster, though. I think it is much better to create as many voices as needed beforehand and turn unused voices off with the [switch~] object. Ingo Von: pd-list-boun...@iem.at [mailto:pd-list-boun...@iem.at] Im Auftrag von Ludwig Maes Gesendet: Mittwoch, 28. September 2011 17:56 An: Pd List Betreff: [PD] Variable number of objects? Im not sure what the best way is to instantiate variable number of objects, for example consider polysynth.pd: Theres a fixed number of manually placed voices, suppose I want to have the top patch to contain a counter through which one may increase or decrease the number of voices, how would I go about that (without manually placing a load of voices and disabling them...)? Whats the vanilla way to do this? Whats the pd-extended way to do this? ... ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] how to tell poly object release time?
to make the poly object more compatible with the ADSR philosophy, it would be nice if you could tell poly the release time (after note-offs) to keep a voice free if its possible. ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] Versioning for patches?
Hi is there some git project or similar for versioning of patches? ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] stuff/synth
Hi, ive been playing around with the synth in the stuff folder and noticed some mistakes/strange manipulations, the weird thing is that it works out of the box. Originally I considered it as a serious example, but since certain things dont work properly or are strange I thought perhaps this was meant as a fix-me to learn from? i.e. as a didactical example for students to find common mistakes? I could be wrong of course so please point out what I dont seem to understand examples: *after dbtorms (_root_mean square), 2 extra roots are taken before sending it as 'amplitude' to the adsr, whose output is squared twice again... so what we get is that changing the input db by say 20, we are really only changing the output db with 5(=20/4)... I have no problem with rescaling midi velocities to sensible ranges but: one could just as well divide by 4 before the dbtorms so that the patch is more comprehensible *in the adsr patch (gadsr.pd) the attack phase is completely skipped (the rise message for the attack is sent to the line~ object, but instantly followed by the rise message for the decay, so that it rises to the decay amplitude), this is easily fixed by correcting the delay if this is a fixme, what other ones am I missing? yow! ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] pd message order?
so standard objects have right to left ordering of outlet processing, but what about send and receive for messages? if multiple objects receive for the same name, which one gets it first? is there a triggerlike object for messages, or should I send multiple messages each with a differentiated tag like s bla1, s bla2, s s bla3 even when I send the same message? ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Need Help Understanding pack
Here in belgium, in dutch, we also say other right/left, but since french is one of our languages, that could be the origin, on the other hand I dont really believe its language related: from inside a head your left eye is not the same as from outside the head (like face culling in OpenGL,...). Instead I would think its just a softening for pointing out a mistake through use of humor. 2011/2/9 Mathieu Bouchard ma...@artengine.ca: On Wed, 9 Feb 2011, András Murányi wrote: It's not a brain damage, but a neurological thing. But brain damage *is* a neurological thing :} But the phenomenon of confusing left and right is so common, that in Québec, we routinely call «gauche» «l'autre droite» (left is also known as the other right), and call «droite» «l'autre gauche» (right is also known as the other left), whenever someone picks the wrong direction after being given an instruction. (I don't know about the existence of such an expression anywhere else) ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] optimizing big patches
wow, I always felt message passing was unnecessarily expensive but I didnt realise message passing was that expensive! I seriously think it would be good to have a pd front end for gcc, a few of us should take the time to learn GIMPLE and implement a compile menu item to compile patches/subpatches. 2011/1/10 Mathieu Bouchard ma...@artengine.ca: On Sun, 9 Jan 2011, Pedro Lopes wrote: i Guess the question could go a bit further, how can we devise a profiling system for a dataflow programming environment? I made two or three of those... GridFlow had several incarnations of such a thing but it only worked for GridFlow's own objects. Then I made one for the whole of Pd, and it's somewhere in the DesireData branch, but it caused occasional crashes for mysterious reasons, and no-one else looked at the code. Here's a screenshot of the latter : http://artengine.ca/desiredata/gallery/simple-benchmark.png You see that [cos] is over twice slower than [*] but [t f f] minus those two is also a lot, but that's the cost of message-passing, because [t f f] doesn't do any processing. And so on... the top number is the total time for the first message to return (every message-passing down a wire is accompanied later by an opposite movement once the job is done... that's the stack). GridFlow's profiler instead had a menu in Pd's main window which had a reset and a dump and the latter would print non-cumulative measurements (i.e. it doesn't include time in objects sent to) in the console (or in the terminal back when there wasn't a console) sorted by decreasing importance. Ideally we would have both cumulative and non-cumulative figures, because neither is nearly as useful as both together. ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] change in compression detection
Or more generally, watch the histogram of samples On 10 January 2011 11:09, Roman Haefeli reduz...@gmail.com wrote: On Sun, 2011-01-09 at 20:26 -0500, Mathieu Bouchard wrote: On Mon, 10 Jan 2011, ~E. wrote: I'm searching how i can detect the change in the compression of an audio signal. The purpose is to detect (and quantified) the compression changes between the music and the ads in a radioshow. Have any ideas ? If you don't have the original uncompressed recordings, I don't see how you could be doing that. You'd have to guess how complex sounds are supposed to fade out normally, to find out how much the fade out has been messed with. And then, in the compressor, you have both a measurement of input volume and a formula for turning that input volume into a gain to be applied, and both of those parts are subject to a lot of variation and tweaking. Assuming that the more compression is applied, the more the RMS amplitude [1] approaches the Peak amplitude [2] of an audio signal, you could measure the two and probably get a raw grasp how much compression was applied. This is simply an idea for which I don't have any reference that it is really working. I could imagine that recordings of certain sets of natural instruments show always a similar relation between peak and RMS amplitude for that set. However, usually there is already some compression applied when releasing the recording which makes it hard to distinct compression applied in the radio station from the compression shipped with the recording. I also could imagine, that it's much harder to find applicable rules for synthesized sounds. Roman [1] http://en.wikipedia.org/wiki/Amplitude#Root_mean_square_amplitude [2] http://en.wikipedia.org/wiki/Amplitude#Peak_amplitude ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] Helmholtz Motion Verifier
How would one (and how hard or easy would it be) write a patch which does the following: Instruct the user to play a sustained note on the violin; then give feedback about how accurate Helmholtz motion is achieved; Could we measure how short the transient takes from nonHelmholtz motion to helmholtz motion? How about changing from a note on one string to one on another, ... Could we write a patch that trains the user to minimize install and end times for helmholtz motion and to somehow show a level of periodicity during the systaining period? ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Helmholtz Motion Verifier
And a different question: Just like how the different non harmonic partials are shifted and forced into a harmonic compromise in a bowed string, does something similar happen when playing simultaneous harmony? I.e. would partials on 2 strings sharing bow and bridge, say fingered at a frequency ratio of close to 2:3 but not exactly 2:3 (i.e. equal temperament), also modelock to the just(=pythagorean/integer ratio) interval 2:3? would the one out of 2 slips on one string be simultaneous with one out of 3 slips on the other? On 11 December 2010 20:29, Ludwig Maes ludwig.m...@gmail.com wrote: How would one (and how hard or easy would it be) write a patch which does the following: Instruct the user to play a sustained note on the violin; then give feedback about how accurate Helmholtz motion is achieved; Could we measure how short the transient takes from nonHelmholtz motion to helmholtz motion? How about changing from a note on one string to one on another, ... Could we write a patch that trains the user to minimize install and end times for helmholtz motion and to somehow show a level of periodicity during the systaining period? ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Osc phase and number of periods for subsonic touch-music
Could you be more specific, im not sure I entirely understand the problem... On 8 December 2010 08:32, Daniel K. konarsonarsmo...@gmail.com wrote: I'm working on re-realizing a piece I wrote for subwoofer that is meant to be felt by touching the speaker cone instead of hearing it. This is done by using sine waves from around 15 to 26 Hz at low volume adn utilizing difference frequencies to get lower frequency pulses. My problem is that the way I have my synth set up, the osc~ objects end up receiving midi messages a unpredictable times in the period which is leading to interference and thus unintended dynamic shifts. Another problem is clicks on note-offs. I can get around those with [line~] or a low pass filter but it would seem more elegant if I could solve both problems by generating sine waves with finite numbers of periods that always started with the same phase. I haven't been able to figure out to this and I've thrown enough hours at it that I think it's time to ask for some help. Any suggestions would be much appreciated. -Daniel Konar ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] pd-pidip into Debian
The processor running Pd must not be inside the vacuum cleaner, so we can still use his precious code :) as long as the processor blows its OK i guess... On 4 December 2010 02:40, João Pais jmmmp...@googlemail.com wrote: From now on I refuse to allow my code to be used in anything that sucks. so you'll never try to control a vacuum cleaner with Pd... ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] HHT HilbertHuangTransform objects in Pd?
I was wondering if somebody made HHT objects in Pd like: [EMD x], splitting a signal in IMF (intrinsic mode) functions...? How hard would it be to implement? Greetings! ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] HHT HilbertHuangTransform objects in Pd?
I even mean a third algorithm... I am focused more the empirical mode decomposition put forward by Huang, ... after splitting the signal in IMFs they are individually analyzed by Hilbert transform, or other time frequency transform of choice... Im more looking to EMD, but I just found some matlab code which octave seems to be able to run, and theres some C functions... going to look how achievable it is, and going to ask permission from the author to make Pd externals based on them... ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Non-Linear Quantization / Bitcrush
could you give examples of idealized input and output for cases 1-4? im not sure I understand what exactly you want... interested greetings! Ludwig On 1 November 2010 13:09, brandon zeeb zeeb.bran...@gmail.com wrote: Hey All, I've been burning my brain over this issue lately and I can't seem to come up with an elegant solution, and stay with me here as I attempt to explain it best I can. For me and my needs, being able to quantize an arbitrary signal to any arbitrary series is the Holy Grail (and I'm not talking about simple table lookup!). I'm looking to quantize an incoming signal (or value) given a max and min quantization value and an arbitrary curve. Think quantization of note events to a series of note lengths or your standard bitcrush algorithm, it's pretty much the same. The arbitrary curve should influence the degree to which the bitcrush algorithm is applied to the signal such that one could have less quantization at smaller values of the input signal, and greater quantization and larger values (or vice versa). Simple table-lookup is insufficient as it requires you to pre-define a maximum input signal amount. I'm willing to waive this requirement if an implementation is not possible without it. This will be used in the following circumstances: To quantize envelopes signals to any arbitrary series (say !, Fibonacci, x^2, 2^x, etc) To quantize signal loop length values to an arbitrary series of note values (say 1/16, 1/8, 1/2, 1/1) To apply non-linear bitcrushing to a signal such that higher values are expressed with less of an effect than smaller values To quantize pitch events to a pre-defined series Is this making sense? My attempts thus far has extended the RjDj bitcrush abstraction with mild success. I can recreate the effect but the output signal bears too many artifacts from the input signal (ie: the curve retains part of it's original slope from the input signal and is not flattened or held until the next value). Thanks, ~Brandon ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Non-Linear Quantization / Bitcrush
So you want amplitude 'a' dependant quantization size 'q' ? take your chosen q(a); in your example it seems you want a simple line: q=q(0)-k*a; define f(a) as integral of 1/q from a=0 to a; also calculate the inverse of f(a) i.e. a(f); now for each sample do: out=a(round(f(in))) where round is any floor or the like... have fun! ps: in your example: q=q0-k*a with for example q(0)=0.001 and q(0.8)=0.0001: q:=0.001-0.0009/0.8*a then f=2558.427881-.11*ln(10.-9.*a) and inverse=easy On 2 November 2010 19:20, Ludwig Maes ludwig.m...@gmail.com wrote: This is pretty easy actually, I use such things mostly to guide my rhythmical quantization... On 2 November 2010 19:19, brandon zeeb zeeb.bran...@gmail.com wrote: This is even better. If I could minimize the jumps around Y = 0.5 to -0.5 It'll be exactly what I'm looking for... or a start at least. Do you see what I mean now? See how the amount of quantization changes with Y and a minimum quantization value? I think I'm getting towards the answer now... -- Brandon Zeeb Columbus, Ohio ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Non-Linear Quantization / Bitcrush
The reason you use the inverse is so that the amplitude remains the same albeit quantized. The reason we use another function before flooring is to distritube the floor levels.But afterwards we need to bring the values back to their original place On 2 November 2010 19:37, Ludwig Maes ludwig.m...@gmail.com wrote: So you want amplitude 'a' dependant quantization size 'q' ? take your chosen q(a); in your example it seems you want a simple line: q=q(0)-k*a; define f(a) as integral of 1/q from a=0 to a; also calculate the inverse of f(a) i.e. a(f); now for each sample do: out=a(round(f(in))) where round is any floor or the like... have fun! ps: in your example: q=q0-k*a with for example q(0)=0.001 and q(0.8)=0.0001: q:=0.001-0.0009/0.8*a then f=2558.427881-.11*ln(10.-9.*a) and inverse=easy On 2 November 2010 19:20, Ludwig Maes ludwig.m...@gmail.com wrote: This is pretty easy actually, I use such things mostly to guide my rhythmical quantization... On 2 November 2010 19:19, brandon zeeb zeeb.bran...@gmail.com wrote: This is even better. If I could minimize the jumps around Y = 0.5 to -0.5 It'll be exactly what I'm looking for... or a start at least. Do you see what I mean now? See how the amount of quantization changes with Y and a minimum quantization value? I think I'm getting towards the answer now... -- Brandon Zeeb Columbus, Ohio ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Non-Linear Quantization / Bitcrush
And we want f' to be 1 (integer step) / (per) quantization size (for that amplitude) On 2 November 2010 19:41, Ludwig Maes ludwig.m...@gmail.com wrote: The reason you use the inverse is so that the amplitude remains the same albeit quantized. The reason we use another function before flooring is to distritube the floor levels.But afterwards we need to bring the values back to their original place On 2 November 2010 19:37, Ludwig Maes ludwig.m...@gmail.com wrote: So you want amplitude 'a' dependant quantization size 'q' ? take your chosen q(a); in your example it seems you want a simple line: q=q(0)-k*a; define f(a) as integral of 1/q from a=0 to a; also calculate the inverse of f(a) i.e. a(f); now for each sample do: out=a(round(f(in))) where round is any floor or the like... have fun! ps: in your example: q=q0-k*a with for example q(0)=0.001 and q(0.8)=0.0001: q:=0.001-0.0009/0.8*a then f=2558.427881-.11*ln(10.-9.*a) and inverse=easy On 2 November 2010 19:20, Ludwig Maes ludwig.m...@gmail.com wrote: This is pretty easy actually, I use such things mostly to guide my rhythmical quantization... On 2 November 2010 19:19, brandon zeeb zeeb.bran...@gmail.com wrote: This is even better. If I could minimize the jumps around Y = 0.5 to -0.5 It'll be exactly what I'm looking for... or a start at least. Do you see what I mean now? See how the amount of quantization changes with Y and a minimum quantization value? I think I'm getting towards the answer now... -- Brandon Zeeb Columbus, Ohio ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Non-Linear Quantization / Bitcrush
Watch out in my numeric example, I was a bit careless and the q I chose continues to increase for more and more negative amplitudes! On 2 November 2010 19:44, Ludwig Maes ludwig.m...@gmail.com wrote: And we want f' to be 1 (integer step) / (per) quantization size (for that amplitude) On 2 November 2010 19:41, Ludwig Maes ludwig.m...@gmail.com wrote: The reason you use the inverse is so that the amplitude remains the same albeit quantized. The reason we use another function before flooring is to distritube the floor levels.But afterwards we need to bring the values back to their original place On 2 November 2010 19:37, Ludwig Maes ludwig.m...@gmail.com wrote: So you want amplitude 'a' dependant quantization size 'q' ? take your chosen q(a); in your example it seems you want a simple line: q=q(0)-k*a; define f(a) as integral of 1/q from a=0 to a; also calculate the inverse of f(a) i.e. a(f); now for each sample do: out=a(round(f(in))) where round is any floor or the like... have fun! ps: in your example: q=q0-k*a with for example q(0)=0.001 and q(0.8)=0.0001: q:=0.001-0.0009/0.8*a then f=2558.427881-.11*ln(10.-9.*a) and inverse=easy On 2 November 2010 19:20, Ludwig Maes ludwig.m...@gmail.com wrote: This is pretty easy actually, I use such things mostly to guide my rhythmical quantization... On 2 November 2010 19:19, brandon zeeb zeeb.bran...@gmail.com wrote: This is even better. If I could minimize the jumps around Y = 0.5 to -0.5 It'll be exactly what I'm looking for... or a start at least. Do you see what I mean now? See how the amount of quantization changes with Y and a minimum quantization value? I think I'm getting towards the answer now... -- Brandon Zeeb Columbus, Ohio ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] IPA Vowel space analyzer
Hi, I was wondering how one would locate a vowel in the IPA vowel quadrangle using pd... Of course I would expect the corners of the vowel to depend on individual characteristics, but I dont know where to start. Anyone any ideas? Greetings, Ludwig ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] PureData to C/C++ language
As I said, I am no expert at all in this, but I can explain what motivated me to make these specific remarks, and express my beliefs or doubts: On 28 September 2010 19:35, Mathieu Bouchard ma...@artengine.ca wrote: On Mon, 27 Sep 2010, Ludwig Maes wrote: I think that if we could write a Pd = GIMPLE converter (hence a Pd frontend) for gcc, that gcc could do quite a lot of optimization for us. What's the advantage over simply producing a large lump of C code ? Because, learning GIMPLE takes time, whereas learning C... everyone willing to take on that task already knows all of C. I would think that having an extra intermedia language would hide information from the middle end, I trust that the gcc developers know what they do, otherwise by the same argument it would be much easier for the other GCC front ends to compile to C and hand that over to the C compiler and thus indirectly to the middle end. Since all the supplied front ends emit gimple I think there are good reasons for this. One example of why I think taking the detour (in code transformations, but possibly shortcut in ease of programming) along C would be organizing code into threads, since C/C++ were originally not develloped for multithreading but assumed a rather pure Von Neumann architecture. I could be wrong but I have the impression that every message between Pd objects is sent as an abstracted structure and not optimized for architecture to the extent compilers do (could be wrong, but would be positively amazed if I am). Pd is often hard to categorise, but I'd call its message-system an « AST intepreter », even though the «T» is supposed to stand for Tree, and it's not a Tree in the context of Pd. An AST interpreter is faster than one which constantly reparses, but is usually at least a bit slower than bytecode, which is much slower than a conversion to C compiled with -O0. As I said I dont really know the message system, I just notice my system monitors network histogram (on ubuntu) soar as I use Pd. Surely passing information through registers when possible would be faster, or are processor caches even aware of Pd messaging system? This ability would further not only the goals of optimization freaks but also those of dataflow programming in general (stepping into C or other is like admitting -whether correct or not- dataflow is insufficient, at least in practice as long as we cant compile...) Also people would be able to write general software in dataflow languages. Whether it be drivers, pd-developer code, ... Dataflow programming as a whole is not a programming paradigm, it's a collection of them. The Pd/Max paradigm could be called « imperative dataflow » (in the case of the message-system). Before I came, the totality of programming languages called dataflow had very little to do with Pd/MAX, while Pd/MAX weren't called dataflow ; and those that were called dataflow didn't always have so much to do with each other. There are still lots of researchers who use the phrase « dataflow programming » in a specific manner that excludes Pd/MAX. Anyway, what I want to say is that there is not much that you can do that can apply to the whole of what is called dataflow. Here I must say that I hesitated a lot and didnt know how to phrase it. I know that since at least the sixties there was 'dataflow' (I got interested in dataflow because I stumbled on old MIT papers about them, back when they tried to make 'dataflow' hardware before it appeared to be inefficient for multiple reasons...). I know dataflow means a lot of different things. This is not mathematics. I realise that even if people were willing to create such a system, that there would be multiple possible graphlike languages, each with their pros and cons. What is more important to me is that one would be made, so that people who stand for different forms of dataflow programming would adapt it to their needs or respond to a higher bar by making their dataflow language compilable through existing compiler middle ends. These wouldnt directly apply to the whole of dataflow, but at least it could create courage to the whole to apply compilability to their specific view of dataflow. We could bootstrap Pd for example, so that users who at first use Pd for audio, then start to code in GEM later could also start to adapt their interface or fix inner workings of Pd I don't understand what you mean. Suppose Pd (or other dataflow language) were rewritten in the dataflow language, so that Pd almost becomes a sub operating system, to run a mixture of uncompiled and compiled code (for example in theory if the sources of running code (including Pd) were provided in the dataflow format, then during normal usage, a user could freeze the program, change and recompile part of the graph and continue the program...) Another example: a user want bezier curves to connect the boxes, or color code hot inlets, or ..., then he could adapt Pd gui to do so without
Re: [PD] PureData to C/C++ language
I think that if we could write a Pd = GIMPLE converter (hence a Pd frontend) for gcc, that gcc could do quite a lot of optimization for us. I could be wrong but I have the impression that every message between Pd objects is sent as an abstracted structure and not optimized for architecture to the extent compilers do (could be wrong, but would be positively amazed if I am). This ability would further not only the goals of optimization freaks but also those of dataflow programming in general (stepping into C or other is like admitting -whether correct or not- dataflow is insufficient, at least in practice as long as we cant compile...) Also people would be able to write general software in dataflow languages. Whether it be drivers, pd-developer code, ... We could bootstrap Pd for example, so that users who at first use Pd for audio, then start to code in GEM later could also start to adapt their interface or fix inner workings of Pd, in my view the original poster is a vote towards this end. The opensource fanatics fear could be that software written in Pd, could be shared in a non-opensource way. I have the impression this is the reason none of the devellopers work on this: http://puredata.info/docs/faq/standalone states: This is currently not possible to compile a patch into a binary program. Pd patch files are always plain text and need the Pd program to run. However, the main reason why Max/MSP and similar allow you to create a standalone application is to distribute a patch without having to pay license fees to the distributor. Since Pure Data is Free Software, you can just distribute your patch along with the needed Pd binary. On Mac OS X, Pd-extended 0.41.4 makes it easy to make such a distribution. You can make a standalone .app using the Make app from menu options in the File menu. First it is mentioned that it is currently not possible (without any concrete reference to existant intention or not) Then it inverts the reason why Pd does or does not have this to the reason why Max/MSP have mechanisms to distribute without having to pay the distributor (being Max/MSP?) as opposed to the patch creator? Without speaking for the original poster, I view his question as a desire for compiling dataflow (in his example Pd). He clearly states he searches for a way to do this without having to recode the entire patch (devaluating his original work in Pd itself). That a similar question resides in Frequently (!) Asked Questions confirms my suspicion that there is a user base which would benefit from such possibility. I think as soon as the GIMPLE Front End has materialized enough (currently a Google Summer of Code project) would be a very good time to design a Pd = Gimple converter (Front End). (GIMPLE is the intermediate language AST GCC uses, C++ and other Front Ends convert to GIMPLE so that language independent optimization can take place). I am searching for people who would be interested in helping this make happen, having a list of emails of interested people could be a good start. Every year computer science students around the world have to design a simple compiler in their education programme. Chances are a few of them are interested in Pd already. Some might be allowed to write a Pd front end by their teachers. We Pd users are also not incapable to do this. Lets get together and make this happen! Greetings! On 25 September 2010 20:45, ankur gandhe ankoo...@gmail.com wrote: I was working on a Sound renderer project made in PD and to reduce the latency, we wanted to write the module in C, implementing all the features. Is their a simple way of doing so? If so, please do help Ankur ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] what happen to Pd on June 8th?
interesting indeed, somebody might have posted a cool puredata tutorial on youtube? or ... On 17 September 2010 00:16, Hans-Christoph Steiner h...@at.or.at wrote: I was just looking at the Pd-extended download stats and there was a huge spike on June 8th and 9th of this year, from about 300 a day to almost 3,000 in one day. Anyone know what happened in Pd land on that day? http://sourceforge.net/projects/pure-data/files/pd-extended/0.41.4/stats/timeline?dates=2010-02-01+to+2010-09-16 hc Man has survived hitherto because he was too ignorant to know how to realize his wishes. Now that he can realize them, he must either change them, or perish. -William Carlos Williams ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] FIR~ convolution array length bug
The FIR~ object apparently only allows convolution lengths =3, I couldnt get it to work with length 2. probably some offset problem? or hardcoded assumption that it will be longer than 2? Greetings, Ludwig ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list