Re: [PD] [PD-announce] collaboration Belgium

2012-03-07 Thread Ludwig Maes
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?

2012-02-06 Thread Ludwig Maes
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?

2011-12-16 Thread Ludwig Maes
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?

2011-09-28 Thread Ludwig Maes
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?

2011-09-28 Thread Ludwig Maes
-- 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?

2011-09-28 Thread Ludwig Maes
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?

2011-08-11 Thread Ludwig Maes
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?

2011-08-07 Thread Ludwig Maes
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

2011-08-06 Thread Ludwig Maes
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?

2011-08-03 Thread Ludwig Maes
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

2011-02-10 Thread Ludwig Maes
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

2011-01-10 Thread Ludwig Maes
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

2011-01-10 Thread Ludwig Maes
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

2010-12-11 Thread Ludwig Maes
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

2010-12-11 Thread Ludwig Maes
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

2010-12-08 Thread Ludwig Maes
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

2010-12-03 Thread Ludwig Maes
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?

2010-11-15 Thread Ludwig Maes
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?

2010-11-15 Thread Ludwig Maes
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

2010-11-02 Thread Ludwig Maes
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

2010-11-02 Thread Ludwig Maes
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

2010-11-02 Thread Ludwig Maes
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

2010-11-02 Thread Ludwig Maes
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

2010-11-02 Thread Ludwig Maes
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

2010-10-28 Thread Ludwig Maes
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

2010-09-28 Thread Ludwig Maes
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

2010-09-27 Thread Ludwig Maes
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?

2010-09-16 Thread Ludwig Maes
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

2010-08-22 Thread Ludwig Maes
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