Two quick thoughts;
Watch out for clashes with square~ (as in x^2) - I thinkk I've seen patches with that trivial abstraction, but it might have been [squared~]
Maybe truncate trianglebl~ and varitriangle~ to tribl~ varitri~ (good to keep names less than 8 chars)
On Fri, 21 Dec 2007 16:36:03 -0800 Hans-Christoph Steiner hans@eds.org wrote:
I think we can safely eliminate the "osc" from the names since there won't be a lot of overlap. Also, since everything is a float, I think it makes sense to standardize on 0-to-1 range. That's the standard range for amplitude, OpenGL colors, and the mapping library, and I think it makes sense to use it here.
For example, the pulse width could be 0.000001 to 1, with 1 being DC. For parameters that are an angle, then radians makes the most sense, and Hertz for frequency, IMHO. Here's my sketch for the names:
square~ (50% duty cycle standard square) squarebl~ (bandlimited square type) triangle~ (standard triangle) trianglebl~ (bandlimited triangle) pwm~ (pulse width 0.0001 to 1 duty) sawtooth~ (sawtooth - just a 0 centered phasor) sawtoothbl~ (bandlimited saw) varitriangle~ (vari-slope triangle, from sawtooth to inverse sawtooth) circle~ (circle - square root of cosine) pulse~ (sin(x)/x pulse with variable width)
Are there existing Pd implementations of all these? I think there could be an 'oscillators' lib made of all Pd patches. Then someone could make a 'simd_oscillators' with the exact same names and interface, for optimization.
.hc
On Dec 21, 2007, at 3:20 PM, Andy Farnell wrote:
Yes! Must have implemented them all a hundered times over by now and getting rather fed up of it.
I suggest the names
sqrosc~ (50% duty cycle standard square) sqrblosc~ (bandlimited square type) triosc~ (standard triangle) triblosc~ (bandlimited triangle) pwmosc~ (pulse width 0.0001 to 99.9999 duty) sawosc~ (sawtooth - just a 0 centered phasor) sawblosc~ (bandlimited saw) vstosc~ (vari-slope triangle, from sawtooth to inverse sawtooth) circosc~ (circle - square root of cosine) pulseosc~ (sin(x)/x pulse with variable width)
On Fri, 21 Dec 2007 12:43:17 -0800 Hans-Christoph Steiner hans@eds.org wrote:
There are a number of standard oscillators used in synthesis, I think it would be very useful to have a standard library of them. I think at this point there are already implementations of all of the oscillators that I can think of, what needs to be done now is to define a standard interface and naming scheme, and collect them into a standard library.
One question I have is whether they should all be bandwidth-limited, based on the current sample rate, or whether this library should have both versions.
Anyone interested in working on this? I think this would also be a building block for the standard synth lib that Ed is proposing.
.hc
¡El pueblo unido jamás será vencido!
PD-dev mailing list PD-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
-- Use the source
PD-dev mailing list PD-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
As we enjoy great advantages from inventions of others, we should be glad of an opportunity to serve others by any invention of ours; and this we should do freely and generously. - Benjamin Franklin