[music-dsp] Job openings at Apple.

2018-03-30 Thread James McCartney
A lot of job postings on this list recently..
Here are a few of the audio openings at Apple:

Audio DSP Engineer
Core Audio Software Manager
Spatial Audio Software Engineer
Spatial Audio Software Engineer
Core Audio Software Engineer
Core Audio Software Engineer
Core Audio Software Engineer
Core Audio Software Engineer
Core Audio Software Engineer

go here :
https://jobs.apple.com/us/search?#=audio%20=0==0*USA=0

(I'm not a recruiter, so don't contact me.)

-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

[music-dsp] The Synthesis of Complex Audio Spectra by Means of Discrete Summation Formulas - James A. Moorer.

2018-03-14 Thread James McCartney
I made a Desmos graph of the formulas from James A. Moorer's paper, The
Synthesis of Complex Audio Spectra by Means of Discrete Summation Formulas


https://www.desmos.com/calculator/q1m3hfiuo7


paper: http://www.jamminpower.com/PDF/Sine%20Summation.pdf


-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] band-limited website

2017-12-23 Thread James McCartney
You need to sample it more frequently.

On Sat, Dec 23, 2017 at 1:06 PM, Phil Burk <philb...@mobileer.com> wrote:

> I tried to access the Archive at http://musicdsp.org/archive.php
> and got this message:
>
> Bandwidth Limit Exceeded
>
> The server is temporarily unable to service your request due to the
> site owner reaching his/her bandwidth limit. Please try again later.
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>
>


-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Music software interface design

2017-04-17 Thread James McCartney
I remember Morton Subotnik demonstrating the singing the envelope thing
with his ghost box electronics back in the 80s.

On Fri, Apr 14, 2017 at 8:48 AM, Arthur Carabott <arth...@gmail.com> wrote:

> Hello all,
>
> I've been doing some work on re-designing the interactions / interfaces
> for music software. The focus isn't on the DSP, more on how we can better
> interact with it. That said, there are some engineering implications
> (particularly with the first prototype).
>
> Hope you enjoy! http://arthurcarabott.com/mui/
>
> If the work interests you feel free to mail me off list as well.
>
> Best,
>
> Arthur
>
> www.arthurcarabott.com
>
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>



-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Can anyone figure out this simple, but apparently wrong, mixing technique?

2016-12-14 Thread James McCartney
On Wed, Dec 14, 2016 at 11:07 AM, James McCartney <asy...@gmail.com> wrote:

>
>
> On Wed, Dec 14, 2016 at 11:03 AM, James McCartney <asy...@gmail.com>
> wrote:
>
>>
>>
>> On Wed, Dec 14, 2016 at 8:47 AM, Ethan Fenn <et...@polyspectral.com>
>> wrote:
>>
>>>
>>> Another interesting family of curves is given by f(x) = x /
>>> (1+x^N)^(1/N) for even N. The fractional power is kind of annoying, but if
>>> you have a hardware square root then you can compute this for N=2,4,8
>>> easily enough.
>>>
>>
>> extends to all real N > 0 by using absolute value :
>>
>>  f(x) = x / (1+abs(x^N))^(1/N)
>>
>
> whoops, just extends to odd N. My graphing program was fooling me.
>

This is the correct one:

 f(x) = x / (1+abs(x)^N)^(1/N)


>
>
>>
>>
>>
>> --
>> --- james mccartney
>>
>
>
>
> --
> --- james mccartney
>



-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Can anyone figure out this simple, but apparently wrong, mixing technique?

2016-12-14 Thread James McCartney
On Wed, Dec 14, 2016 at 11:03 AM, James McCartney <asy...@gmail.com> wrote:

>
>
> On Wed, Dec 14, 2016 at 8:47 AM, Ethan Fenn <et...@polyspectral.com>
> wrote:
>
>>
>> Another interesting family of curves is given by f(x) = x / (1+x^N)^(1/N)
>> for even N. The fractional power is kind of annoying, but if you have a
>> hardware square root then you can compute this for N=2,4,8 easily enough.
>>
>
> extends to all real N > 0 by using absolute value :
>
>  f(x) = x / (1+abs(x^N))^(1/N)
>

whoops, just extends to odd N. My graphing program was fooling me.


>
>
>
> --
> --- james mccartney
>



-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Can anyone figure out this simple, but apparently wrong, mixing technique?

2016-12-14 Thread James McCartney
On Wed, Dec 14, 2016 at 8:47 AM, Ethan Fenn <et...@polyspectral.com> wrote:

>
> Another interesting family of curves is given by f(x) = x / (1+x^N)^(1/N)
> for even N. The fractional power is kind of annoying, but if you have a
> hardware square root then you can compute this for N=2,4,8 easily enough.
>

extends to all real N > 0 by using absolute value :

 f(x) = x / (1+abs(x^N))^(1/N)


-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Floating-point round-off noise and phase increments

2016-08-26 Thread James McCartney
On Fri, Aug 26, 2016 at 7:25 AM, Michael Gogins <michael.gog...@gmail.com>
wrote:

> Multiply not increment.
>
> Not phase += increment but phase = index * increment.
>
> Adding lets the error add up also. Multiplying keeps the error minimal.
>

If you allow frequency modulation, the phase is no longer a line, it is the
integral of the modulated frequency.


-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] a family of simple polynomial windows and waveforms

2016-08-09 Thread James McCartney
OK, I didn't know how you were defining mirror().

On Tue, Aug 9, 2016 at 6:09 AM, Tito Latini <tito.01b...@gmail.com> wrote:

> On Mon, Aug 08, 2016 at 07:05:17PM -0700, James McCartney wrote:
> > On Tue, Jul 5, 2016 at 2:42 PM, James McCartney <asy...@gmail.com>
> wrote:
> >
> > > In the same vein: a family of smoothed sawtooth waves
> > >
> > > f(x) = x - x^a
> > >
> >
> > changing this to :
> >
> > f(x) = x - sgn(x)*abs(x)^a
> >
> > allows 'a' to be continuously variable, not just an odd integer.
> > sgn(x) is the signum function.
>
> ooh, what a surprise!
>
> https://lists.columbia.edu/pipermail/music-dsp/2016-July/000881.html
>
> tito lennon:
> > It is also possible to modulate 'a', floating point >= 1.0:
> >
> > x = phasor between -1 and 1
> > y = mirror(x, 0, 1) = triangular wave
> > ...
> > window = 1 - y^a
> > output = x * window
>
> where `y = mirror(x, 0, 1) = |x|' here and signum(x) is useless:
>
>   x * (1 - |x|^a)
>
>
> and nothing to get hung about
> strawberry fields forever
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>
>


-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] a family of simple polynomial windows and waveforms

2016-08-09 Thread James McCartney
On Mon, Aug 8, 2016 at 11:56 PM, Uli Brueggemann <uli.brueggem...@gmail.com>
wrote:

>
> 2016-08-09 8:49 GMT+02:00 James McCartney <asy...@gmail.com>:
>
>>
>>
>> On Aug 8, 2016, at 23:43, Uli Brueggemann <uli.brueggem...@gmail.com>
>> wrote:
>>
>> 2016-08-09 4:05 GMT+02:00 James McCartney <asy...@gmail.com>:
>>
>>>
>>>
>>> On Tue, Jul 5, 2016 at 2:42 PM, James McCartney <asy...@gmail.com>
>>> wrote:
>>>
>>>> In the same vein: a family of smoothed sawtooth waves
>>>>
>>>> f(x) = x - x^a
>>>>
>>>
>>> changing this to :
>>>
>>> f(x) = x - sgn(x)*abs(x)^a
>>>
>>> allows 'a' to be continuously variable, not just an odd integer.
>>> sgn(x) is the signum function.
>>>
>>
>> Let x=-1 and a=2:
>>
>> f(x) = x - x^a  -->  f(-1) = -1 - (-1^2) = -2
>>
>> f(x) = x - sgn(x)*abs(x)^a  -->  f(-1) = -1 - sgn(-1)*abs(-1)^2 = 0
>>
>> The results are different.
>>
>>
>> 2 is not an odd integer, which was a requirement of the original formula.
>>
>>
> Yes, I know this.
> But you have written:
>
> allows 'a' to be continuously variable, not just an odd integer
>
>
> a=2 is not just an odd integer
>

So I don't know what your point is.
The original formula created a smoothed sawtooth wave only when 'a' was an
odd integer.
The new formula creates a smoothed sawtooth wave for any real 'a' greater
than 1.0.

Specifically, at a=2 the new formula gives this:

[image: Inline image 1]

where p = 2(x-floor(x))-1

https://imgur.com/gallery/rkRCm



>
> - Uli
>
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>



-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] a family of simple polynomial windows and waveforms

2016-08-08 Thread James McCartney
On Tue, Jul 5, 2016 at 2:42 PM, James McCartney <asy...@gmail.com> wrote:

> In the same vein: a family of smoothed sawtooth waves
>
> f(x) = x - x^a
>

changing this to :

f(x) = x - sgn(x)*abs(x)^a

allows 'a' to be continuously variable, not just an odd integer.
sgn(x) is the signum function.


>
> evaluated from x = -1 to +1
>
> where 'a' is an odd integer >= 3.
>
> the greater 'a', the greater number of harmonics.
>
> plot:
>
> http://i.imgur.com/dqQQItT.png
>
>
> On Fri, Jun 10, 2016 at 6:31 PM, James McCartney <asy...@gmail.com> wrote:
>
>>
>> fun with math:
>>
>> You can create a family of functions, which can be used as windows, LFO
>> waves or envelopes from the formula:
>>
>> f(x) = (1-x^a)^b
>>
>> evaluated from x = -1 to +1
>>
>> where 'a' is an even positive integer and 'b' is a positive integer.
>>
>> 'a' controls the flatness of the top and 'b' controls the end tapers.
>>
>> here is a plot:
>>
>> http://i.imgur.com/zoFeMbi.png
>>
>> you can make it into a bipolar wave alternating positive negative like
>> this:
>>
>> x < .5 ? f(4x-1) : -f(4x-3)
>>
>> where x is a unipolar phasor (0 to 1 sawtooth).
>> 4x-1 transforms the interval 0 to .5 into -1 to 1.
>> 4x-3 transforms the interval .5 to 1 into -1 to 1.
>>
>> plot:
>>
>> http://i.imgur.com/8wvnFAE.png
>>
>> --
>> --- james mccartney
>>
>
>
>
> --
> --- james mccartney
>



-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] a family of simple polynomial windows and waveforms - DINisnoise

2016-06-14 Thread James McCartney
On Tue, Jun 14, 2016 at 5:41 PM, Alan Wolfe <alan.wo...@gmail.com> wrote:

> speaking of Bezier, the graphs shown earlier look a lot like gain (
> http://blog.demofox.org/2012/09/24/bias-and-gain-are-your-friend/)
>

lots of unipolar warping curves:

http://easings.net


> and also SmoothStep which is y=3x^2+2x^3
>

should be:  y=3x^2 - 2x^3


>
> Interestingly (to me anyways, before i learned more math) smoothstep is
> equivelant to a cubic bezier curve where the first two control points are 0
> and the seconds two control points are 1 (
> http://blog.demofox.org/2014/08/28/one-dimensional-bezier-curves/)
>
>
>
> On Tue, Jun 14, 2016 at 10:18 AM, David Lowenfels <
> david.lowenf...@gmail.com> wrote:
>
>> > On Jun 12, 2016, at 3:04 AM, Andy Farnell <padawa...@obiwannabe.co.uk>
>> wrote:
>> >
>> > I did some experiments with Bezier after being hugely inspired by
>> > the sounds Jagannathan Sampath got with his DIN synth.
>> > (http://dinisnoise.org/)
>>
>> DIN is not just an additive synth?
>> appears to be so looking at the prominent and low-res FFT display
>> everywhere.
>>
>> > Jag told me that he had a cute method for matching the endpoints
>> > of the segment (you can see in the code), and listening, sounds
>> > seem to be alias free, but we never could arrive at a proof of
>> > that.
>>
>> there’s no way those naive (linear) saw and pulse waveforms could be
>> alias free.
>> arriving at proof would be as easy as an FFT with more resolution?
>>
>> -David
>>
>> ___
>> dupswapdrop: music-dsp mailing list
>> music-dsp@music.columbia.edu
>> https://lists.columbia.edu/mailman/listinfo/music-dsp
>>
>
>
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>



-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Will Pirkle's "Designing Software Synthesizer Plug-Ins in C++"

2016-06-14 Thread James McCartney
I also like this book.
This diagram on page 173, is especially good:

http://i.imgur.com/lNiYzxJ.jpg



On Tue, Jun 14, 2016 at 10:29 AM, David Lowenfels <david.lowenf...@gmail.com
> wrote:

> Hi, I just purchased Will Pirkle’s textbook "Designing Software
> Synthesizer Plug-Ins in C++”
> and wanted to give a huge thumbs up. It demystifies so many
> state-of-the-art things about virtual analog, including filters (delay-free
> loops!), band-limited oscillators, envelope generators, modulation
> matrices, etc. And also goes into heavy detail on the ins and outs of AU
> and VST (and his own platform RAFX).
>
> As a fledgling music-dsp coder, I really wish I’d had a practical manual
> such as this!
> I was frustrated in university that I could write algorithms and DSP code
> but didn’t know how to package it into a plugin, similarly to how I could
> design crazy hardware/software on paper and breadboards but didn’t know how
> to make a PCB or surface-mount solder to put it in a box.
> I also look forward to perusing his other book on Digital Audio effects.
>
> -David
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp




-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

[music-dsp] a family of simple polynomial windows and waveforms

2016-06-10 Thread James McCartney
fun with math:

You can create a family of functions, which can be used as windows, LFO
waves or envelopes from the formula:

f(x) = (1-x^a)^b

evaluated from x = -1 to +1

where 'a' is an even positive integer and 'b' is a positive integer.

'a' controls the flatness of the top and 'b' controls the end tapers.

here is a plot:

http://i.imgur.com/zoFeMbi.png

you can make it into a bipolar wave alternating positive negative like this:

x < .5 ? f(4x-1) : -f(4x-3)

where x is a unipolar phasor (0 to 1 sawtooth).
4x-1 transforms the interval 0 to .5 into -1 to 1.
4x-3 transforms the interval .5 to 1 into -1 to 1.

plot:

http://i.imgur.com/8wvnFAE.png

-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] High quality really broad bandwidth pinknoise (ideally more than 32 octaves)

2016-04-11 Thread James McCartney
ah, yes.. oops.
thanks.

On Mon, Apr 11, 2016 at 5:15 PM, robert bristow-johnson <
r...@audioimagination.com> wrote:

>
>
> James, your point is right on, but quantitatively you gotta factor of two
> off.
>
> the 1/f for pink noise applies to power spectrum, not voltage ratios,
> which is why the magnitude response for a pinking filter is 1/sqrt(f) or -3
> dB per octave.
>
>
>
>
>  Original Message 
> Subject: Re: [music-dsp] High quality really broad bandwidth pinknoise
> (ideally more than 32 octaves)
> From: "James McCartney" <asy...@gmail.com>
> Date: Mon, April 11, 2016 7:46 pm
> To: music-dsp@music.columbia.edu
> --
>
> >>The amplitude at 20 Hz of the noise will be 20*log10(2^(20/0.447)) =
> > -113 dB
> >
> > should be:
> >
> > The amplitude at 20 Hz of the noise will be 20*log10(20/0.447) = -113
> > dB
> >
> > answer is correct, expression was wrong.
> >
>
> so i think it should be 10*log10(20/0.447) = -56 dB
>
> after another 12 octaves, somewhere around Nyquist if oversampled by a
> factor of 4, it might be -92 dB .
>
> still the point would be the flicker noise for the lowest subaudible
> frequencies would be a pretty nasty 50+ dB greater than the audible
> frequencies. (i would have to integrate 1/f, w.r.t. linear f, from -32
> octaves to -12 octaves to get the total power.  maybe it would come out to
> be 10 dB.  i think it has to be at least 6 dB more energy in the bottom 20
> octaves than in the top 12.)  we usually like to get rid of large, slowly
> varying DC which is why we need good DC-blocking filters.  still cannot see
> why the OP needs or would even want more than at most 12 octaves adherence
> to the theoretical 1/f power function.
>
> thanks for pointing out the frequency that is 30 octaves below our highest
> audible frequency.  that was an obvious point that i missed.
>
> bestest,
>
> r b-j
>
>
> > On Mon, Apr 11, 2016 at 4:42 PM, James McCartney <asy...@gmail.com>
> wrote:
> >
> >> Yes, you don't really want 32 octaves.
> >> Wide bandwidth becomes a problem with 1/f noise because the lower
> >> frequencies are so much higher amplitude than the upper frequencies.
> >> With 32 bit floats and a 24 bit mantissa you can only represent 24
> octaves
> >> of 1/f noise because 1/f = 1/(2^24) drops below the quantization limit.
> >> This means the top 8 octaves of your 32 cannot be represented.
> >>
> >> Let's assume you want a high sampling rate, say 384 kHz (the problem
> only
> >> gets worse if you lower the sample rate). Nyquist is 192 kHz. 32 octaves
> >> below that is 0.447 Hz, or 1 cycle every 3.86 days.. The amplitude
> at
> >> 20 Hz of the noise will be 20*log10(2^(20/0.447)) = -113 dB below
> the
> >> amplitude of the lowest octave. Your signal will be dominated by
> subsonic
> >> audio and the audio range will be below the threshold of hearing.
> >>
> >> On Mon, Apr 11, 2016 at 10:46 AM, robert bristow-johnson <
> >> r...@audioimagination.com> wrote:
> >>
> >>> being that this is a discussion group about music, which is a subset of
> >>> audio. and being that our hearing is at best 10 or 11 octaves, why do
> you
> >>> need 32 octaves?
> >>>
> >>> and then how closely, in dB, does your pink noise need to conform to
> the
> >>> 1/f power spectrum? +/- 0.1 dB? 0.01 dB?
> >>>
> >>> all this can be done with a good white noise source and a filter
> >>> alternating real poles and real zeros placed at just the right values.
> for
> >>> 32 octaves, i would hate to guess how many pole/zero pairs you would
> need.
> >>> maybe 10.
> >>>
> >>>
> >>>
> >>> r b-j
> >>>
> >>>
> >>>  Original Message
> 
> >>> Subject: [music-dsp] High quality really broad bandwidth pinknoise
> >>> (ideally more than 32 octaves)
> >>>
> From: "Seth Nickell" <snick...@gmail.com>
> >>> Date: Mon, April 11, 2016 12:57 pm
> >>> To: music-dsp@music.columbia.edu
> >>>
> --
> >>>
> >>>
> >>> > I'm applying an iterative function to an input signal, in this
> instance
>

Re: [music-dsp] High quality really broad bandwidth pinknoise (ideally more than 32 octaves)

2016-04-11 Thread James McCartney
>The amplitude at 20 Hz of the noise will be 20*log10(2^(20/0.447))  =
-113 dB

should be:

The amplitude at 20 Hz of the noise will be 20*log10(20/0.447)  = -113
dB

answer is correct, expression was wrong.

On Mon, Apr 11, 2016 at 4:42 PM, James McCartney <asy...@gmail.com> wrote:

> Yes, you don't really want 32 octaves.
> Wide bandwidth becomes a problem with 1/f noise because the lower
> frequencies are so much higher amplitude than the upper frequencies.
> With 32 bit floats and a 24 bit mantissa you can only represent 24 octaves
> of 1/f noise because 1/f = 1/(2^24) drops below the quantization limit.
> This means the top 8 octaves of your 32 cannot be represented.
>
> Let's assume you want a high sampling rate, say 384 kHz (the problem only
> gets worse if you lower the sample rate). Nyquist is 192 kHz. 32 octaves
> below that is 0.447 Hz, or 1 cycle every 3.86 days..  The amplitude at
> 20 Hz of the noise will be 20*log10(2^(20/0.447))  = -113 dB below the
> amplitude of the lowest octave. Your signal will be dominated by subsonic
> audio and the audio range will be below the threshold of hearing.
>
> On Mon, Apr 11, 2016 at 10:46 AM, robert bristow-johnson <
> r...@audioimagination.com> wrote:
>
>> being that this is a discussion group about music, which is a subset of
>> audio.  and being that our hearing is at best 10 or 11 octaves, why do you
>> need 32 octaves?
>>
>> and then how closely, in dB, does your pink noise need to conform to the
>> 1/f power spectrum?  +/- 0.1 dB?  0.01 dB?
>>
>> all this can be done with a good white noise source and a filter
>> alternating real poles and real zeros placed at just the right values.  for
>> 32 octaves, i would hate to guess how many pole/zero pairs you would need.
>>  maybe 10.
>>
>>
>>
>> r b-j
>>
>>
>>  Original Message 
>> Subject: [music-dsp] High quality really broad bandwidth pinknoise
>> (ideally more than 32 octaves)
>> From: "Seth Nickell" <snick...@gmail.com>
>> Date: Mon, April 11, 2016 12:57 pm
>> To: music-dsp@music.columbia.edu
>> --
>>
>>
>> > I'm applying an iterative function to an input signal, in this instance
>> > pinknoise. Because of the iteration, spectral characteristics in input
>> > signals tend to "blow up" really quickly, so I'm looking for a really
>> high
>> > bandwidth and high quality source of pink noise.
>> >
>> > My understanding is that most of the approaches like the supercollider
>> > PinkNoise.ar ugen are mostly accurate, but over a limited bandwidth. As
>> the
>> > number of octaves grows, the accurcary drops. Is my understanding
>> correct?
>> >
>> > I'm hoping to find a way to generate pink noise that is:
>> > 1) Accurate over an arbitrarily wide bandwidth, at least 32 octaves
>> > 2) Tractable to generate an arbitrarily large number of samples
>> (billions,
>> > so can't fft the whole thing in one pass)
>> >
>> > Any suggestions? I've read through
>> > http://www.firstpr.com.au/dsp/pink-noise/#Pseudo, but everyone seems
>> > focused on fast-generation of pink noise of moderate quality and a
>> > relatively narrow bandwidth. I'm sort of looking for the other side of
>> > things... what's the most ideal pink noise I can generate en masse?
>> >
>> > Thanks,
>> > -Seth
>>
>>
>> --
>>
>> r b-j  r...@audioimagination.com
>>
>> "Imagination is more important than knowledge."
>>
>>
>>
>> ___
>> dupswapdrop: music-dsp mailing list
>> music-dsp@music.columbia.edu
>> https://lists.columbia.edu/mailman/listinfo/music-dsp
>>
>
>
>
> --
> --- james mccartney
>



-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] High quality really broad bandwidth pinknoise (ideally more than 32 octaves)

2016-04-11 Thread James McCartney
Yes, you don't really want 32 octaves.
Wide bandwidth becomes a problem with 1/f noise because the lower
frequencies are so much higher amplitude than the upper frequencies.
With 32 bit floats and a 24 bit mantissa you can only represent 24 octaves
of 1/f noise because 1/f = 1/(2^24) drops below the quantization limit.
This means the top 8 octaves of your 32 cannot be represented.

Let's assume you want a high sampling rate, say 384 kHz (the problem only
gets worse if you lower the sample rate). Nyquist is 192 kHz. 32 octaves
below that is 0.447 Hz, or 1 cycle every 3.86 days..  The amplitude at
20 Hz of the noise will be 20*log10(2^(20/0.447))  = -113 dB below the
amplitude of the lowest octave. Your signal will be dominated by subsonic
audio and the audio range will be below the threshold of hearing.

On Mon, Apr 11, 2016 at 10:46 AM, robert bristow-johnson <
r...@audioimagination.com> wrote:

> being that this is a discussion group about music, which is a subset of
> audio.  and being that our hearing is at best 10 or 11 octaves, why do you
> need 32 octaves?
>
> and then how closely, in dB, does your pink noise need to conform to the
> 1/f power spectrum?  +/- 0.1 dB?  0.01 dB?
>
> all this can be done with a good white noise source and a filter
> alternating real poles and real zeros placed at just the right values.  for
> 32 octaves, i would hate to guess how many pole/zero pairs you would need.
>  maybe 10.
>
>
>
> r b-j
>
>
>  Original Message 
> Subject: [music-dsp] High quality really broad bandwidth pinknoise
> (ideally more than 32 octaves)
> From: "Seth Nickell" <snick...@gmail.com>
> Date: Mon, April 11, 2016 12:57 pm
> To: music-dsp@music.columbia.edu
> --
>
>
> > I'm applying an iterative function to an input signal, in this instance
> > pinknoise. Because of the iteration, spectral characteristics in input
> > signals tend to "blow up" really quickly, so I'm looking for a really
> high
> > bandwidth and high quality source of pink noise.
> >
> > My understanding is that most of the approaches like the supercollider
> > PinkNoise.ar ugen are mostly accurate, but over a limited bandwidth. As
> the
> > number of octaves grows, the accurcary drops. Is my understanding
> correct?
> >
> > I'm hoping to find a way to generate pink noise that is:
> > 1) Accurate over an arbitrarily wide bandwidth, at least 32 octaves
> > 2) Tractable to generate an arbitrarily large number of samples
> (billions,
> > so can't fft the whole thing in one pass)
> >
> > Any suggestions? I've read through
> > http://www.firstpr.com.au/dsp/pink-noise/#Pseudo, but everyone seems
> > focused on fast-generation of pink noise of moderate quality and a
> > relatively narrow bandwidth. I'm sort of looking for the other side of
> > things... what's the most ideal pink noise I can generate en masse?
> >
> > Thanks,
> > -Seth
>
>
> --
>
> r b-j  r...@audioimagination.com
>
> "Imagination is more important than knowledge."
>
>
>
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>



-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] Time-domain noisiness estimator

2016-02-21 Thread James McCartney

wouldn't using varying ZCR be defeated by frequency modulated or bell tones?
One could also craft a very noisy signal with a perfectly periodic ZCR.
James McCartney 


> On Feb 19, 2016, at 04:49, Dario Sanfilippo <sanfilippo.da...@gmail.com> 
> wrote:
> 
> Hello everybody. 
> 
> Following on a discussion about cheap/time-domain spectral centroid 
> estimators, I thought it could have been interesting to also discuss 
> time-domain noisiness estimators. 
> 
> I think that a common approach is the FFT-based spectral flatness algorithm. 
> In the time-domain, zero-crossing rate is another common approach, although 
> it seems to only work for specific cases like voiced Vs. unvoiced sounds, or 
> percussive Vs. non-percussive. A very high frequency sinewave would also have 
> a high ZCR, although it is not noisy.
> 
> I tried implementing a rudimentary noisiness estimator based on the idea that 
> a noisy signal is characterised by a varying ZCR, rather than a high ZCR. 
> What I did was to use a differentiator on successive averaging windows of 
> ZCR, and then I averaged the absolute value of differentiator's output to 
> obtain an index.
> 
> The algorithm seems to work fine for most cases, although some particular 
> frequencies of a sinusoidal input result in unexpected indexes. I guess that 
> a problem here is to find a good compromise in the averaging windows of the 
> ZCR. I am using 10-msec windows which seemed to work OK. I was also thinking 
> that I could make the averaging window time-variant, piloting it based on a 
> centroid estimation in order to optimes it according to the spectral content 
> of the signal.
> 
> Does any of the above make sense for you? Are you aware of other algorithms 
> using a similar technique?
> 
> If you're familiar with the Pure Data audio environment, you can have a look 
> at the patch here: https://dl.dropboxusercontent.com/u/43961783/noisiness.jpg
> 
> Thanks,
> Dario
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

[music-dsp] Generating pink noise in Python

2016-01-29 Thread James McCartney
> And in 2006 there was another discussion on this very mailing list, where
> Larry Trammell suggested a stochastic version of the algorithm. This page
> has the details: http://home.earthlink.net/~ltrammell/tech/pinkalg.htm



Actually the stochastic algorithm was earlier suggested by Magnus Jonsson
on this list in May 2002, and incorporated into SuperCollider in March 2003.

http://music.columbia.edu/pipermail/music-dsp/2002-May/049056.html

https://github.com/supercollider/supercollider/commit/7bc21edf596b2b3c8324880fbbbacdb342b85272


-- 
--- james mccartney
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp