eq-band and "width"

classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

eq-band and "width"

James Shatto
eq-band(signal, hz, gain, width)

I'm trying to write an EQ routine for audacity and I'm having trouble
understanding the width parameter.  I had thought that High Hz - Low
Hz over 2 is what should be width.  But my routine doesn't work that
way when it uses that on the larger Hz values.  But over 4 does seem
to work.  I'd like to sort out why so I don't have any gap or overlap
in the EQ bands.  When it does the EQ for the higher bands ~18kHz, it
basically nulls out the audio if /2 is used.

20000 - 16000 = 4000
4000/2 = 2000 = width?
or
4000/4 = 1000 = width?
or
Some other factor I seem to not quite get yet.  To be used like
(eq-band s 18000 2.0 2000)

Per the documentation:
--- and width (a FLONUM) is the half-gain width in octaves ---

Could someone give me a human-esque interpretation of that phrase.  Am
I supposed to make it a factor of the gain that I'm applying or
something?  If so, what does that do to the gain value?

Also, is there any sort of debugging tutorial, even if I have to use
emacs or something.  Even though my routine is fairly simple, I hate
having no ability to peak at the values (after applied arithmetic)
before they get used.

Thanks,
- James

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
rbd
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

rbd

On 10/24/10 2:50 PM, James Shatto wrote:
> eq-band(signal, hz, gain, width)
>
> I'm trying to write an EQ routine for audacity and I'm having trouble
> understanding the width parameter.  I had thought that High Hz - Low
> Hz over 2 is what should be width.  But my routine doesn't work that
> way when it uses that on the larger Hz values.  But over 4 does seem
> to work.  I'd like to sort out why so I don't have any gap or overlap
> in the EQ bands.
I guess you know there will always be overlap. These are not "brick
wall" filters.

> When it does the EQ for the higher bands ~18kHz, it
> basically nulls out the audio if /2 is used.
>
> 20000 - 16000 = 4000
> 4000/2 = 2000 = width?
> or
> 4000/4 = 1000 = width?
> or
> Some other factor I seem to not quite get yet.  To be used like
> (eq-band s 18000 2.0 2000)
>
> Per the documentation:
> --- and width (a FLONUM) is the half-gain width in octaves ---
>
> Could someone give me a human-esque interpretation of that phrase.  Am
> I supposed to make it a factor of the gain that I'm applying or
> something?  If so, what does that do to the gain value?
The gain is measured in dB. The width is measured in octaves, e.g. if
the width is 2, the range of frequencies affected by the filter is from
hz/2 (an octave below) to hz*2 (an octave above). At these points (hz/2
and hz*2), the filter gain will be gain/2, measured in dB.

To compute width, the octaves between f1 and f2, where f2 > f1, use
log2(f2 / f1). log2(x) is not built-in, but log2(x) = log(x) / log(2.0).
To hz, get the frequency in the middle, use hz = f1 * power(2.0, width /
2.0).

I wrote a little program to send a sine sweep through a filter and plot
the peak amplitude of the output as a function of frequency (works in
the Nyquist IDE, and since the output is a sound, I guess you run
something similar to this in Audacity:

function test()
   begin
     ;; probe is a sinusoidal sweep at 1Hz/s
     with probe = hzosc(pwl(0, 0, 1000, 1000, 1000, 0)),
     ;; filt is a filtered probe
          filt = eq-band(probe, 200, -6.0, 2.0),
     ;; out is the rms of the input scaled to get peak
          out = rms(filt, 10) * sqrt(2.0)
     return out
   end

exec s-plot(test(), 1000, 1000)
> Also, is there any sort of debugging tutorial, even if I have to use
> emacs or something.  Even though my routine is fairly simple, I hate
> having no ability to peak at the values (after applied arithmetic)
> before they get used.
Maybe someone has a better answer for Audacity-nyquist, but I use the
Nyquist IDE. -Roger
> Thanks,
> - James

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

James Shatto
What I'd really like to do is sort of a spline adjustment to EQ across
the board maxing out at the high end at a specific dB level.  And
close to 0dB on the low end.  Could that be done per frequency?  I'm
trying to compensate for the HF loss due to fake fur.  And I've grown
tired of entering 15 numbers for every adjustment.  Plus I'd like a
few more bands for a smoother adjustment.  Hopefully with some control
over how linear or dipped / curved the adjustment will be.

For my current setup I'm needing near 2dB to 4dB on the high end.  As
much as 6dB on previous contraptions.  So far results are promising
for the restoration of certain percussion instruments and certain
wildlife.  Plus the spoken word seems to need a bit of high end for
clarity.  My lisp is a little weak, having only used it before to do a
bunch of notch filters to counter sox's noise reduction that seems to
omit the 1000Hz multiples from it's filter.

Ultimately I'd like the actually measure the mics response in said
configuration and base compensation off of that information.  But for
now, just trying to keep it simple and mostly automated.  I don't
really care if it takes a day for an hours audio, as long as it's good
audio.

Thanks for the clarification on width.  That helps a bit.

- James


On 10/24/10, Roger Dannenberg <[hidden email]> wrote:

>
> On 10/24/10 2:50 PM, James Shatto wrote:
>> eq-band(signal, hz, gain, width)
>>
>> I'm trying to write an EQ routine for audacity and I'm having trouble
>> understanding the width parameter.  I had thought that High Hz - Low
>> Hz over 2 is what should be width.  But my routine doesn't work that
>> way when it uses that on the larger Hz values.  But over 4 does seem
>> to work.  I'd like to sort out why so I don't have any gap or overlap
>> in the EQ bands.
> I guess you know there will always be overlap. These are not "brick
> wall" filters.
>> When it does the EQ for the higher bands ~18kHz, it
>> basically nulls out the audio if /2 is used.
>>
>> 20000 - 16000 = 4000
>> 4000/2 = 2000 = width?
>> or
>> 4000/4 = 1000 = width?
>> or
>> Some other factor I seem to not quite get yet.  To be used like
>> (eq-band s 18000 2.0 2000)
>>
>> Per the documentation:
>> --- and width (a FLONUM) is the half-gain width in octaves ---
>>
>> Could someone give me a human-esque interpretation of that phrase.  Am
>> I supposed to make it a factor of the gain that I'm applying or
>> something?  If so, what does that do to the gain value?
> The gain is measured in dB. The width is measured in octaves, e.g. if
> the width is 2, the range of frequencies affected by the filter is from
> hz/2 (an octave below) to hz*2 (an octave above). At these points (hz/2
> and hz*2), the filter gain will be gain/2, measured in dB.
>
> To compute width, the octaves between f1 and f2, where f2 > f1, use
> log2(f2 / f1). log2(x) is not built-in, but log2(x) = log(x) / log(2.0).
> To hz, get the frequency in the middle, use hz = f1 * power(2.0, width /
> 2.0).
>
> I wrote a little program to send a sine sweep through a filter and plot
> the peak amplitude of the output as a function of frequency (works in
> the Nyquist IDE, and since the output is a sound, I guess you run
> something similar to this in Audacity:
>
> function test()
>    begin
>      ;; probe is a sinusoidal sweep at 1Hz/s
>      with probe = hzosc(pwl(0, 0, 1000, 1000, 1000, 0)),
>      ;; filt is a filtered probe
>           filt = eq-band(probe, 200, -6.0, 2.0),
>      ;; out is the rms of the input scaled to get peak
>           out = rms(filt, 10) * sqrt(2.0)
>      return out
>    end
>
> exec s-plot(test(), 1000, 1000)
>> Also, is there any sort of debugging tutorial, even if I have to use
>> emacs or something.  Even though my routine is fairly simple, I hate
>> having no ability to peak at the values (after applied arithmetic)
>> before they get used.
> Maybe someone has a better answer for Audacity-nyquist, but I use the
> Nyquist IDE. -Roger
>> Thanks,
>> - James
>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> Audacity-nyquist mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
>

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
rbd
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

rbd
On 10/24/10 10:22 PM, James Shatto wrote:
What I'd really like to do is sort of a spline adjustment to EQ across
the board maxing out at the high end at a specific dB level.  And
close to 0dB on the low end.  Could that be done per frequency?  I'm
trying to compensate for the HF loss due to fake fur.  And I've grown
tired of entering 15 numbers for every adjustment.  Plus I'd like a
few more bands for a smoother adjustment.  Hopefully with some control
over how linear or dipped / curved the adjustment will be.
How would you specify the spline?

There's a file in nyquist/lib/grapheq.lsp that implements NBAND-RANGE:

nband-range(input, gains, lowf, highf)
A graphical equalizer applied to input (a SOUND). The gain controls and number of bands is given by gains, an ARRAY of SOUNDs (in other words, a Nyquist multichannel SOUND). Any sound in the array may be replaced by a FLONUM. The bands are geometrically equally spaced from the lowest frequency lowf to the highest frequency highf (both are FLONUMs).

I think you could generate an array of gains according to some parametric description.
For my current setup I'm needing near 2dB to 4dB on the high end.  As
much as 6dB on previous contraptions.  So far results are promising
for the restoration of certain percussion instruments and certain
wildlife.  Plus the spoken word seems to need a bit of high end for
clarity.  My lisp is a little weak, having only used it before to do a
bunch of notch filters to counter sox's noise reduction that seems to
omit the 1000Hz multiples from it's filter.

Ultimately I'd like the actually measure the mics response in said
configuration and base compensation off of that information.  But for
now, just trying to keep it simple and mostly automated.  I don't
really care if it takes a day for an hours audio, as long as it's good
audio.
One well-known problem with EQ is that it introduces lots of frequency-dependent phase shift. Esp. for percussion, you might be better off with a simple low-order parametric filter that just boosts the highs a bit rather than a big multi-band EQ. The latter will let you model the overall amplitude response in detail, but the phase response will be erratic.
Thanks for the clarification on width.  That helps a bit.

- James


On 10/24/10, Roger Dannenberg [hidden email] wrote:
On 10/24/10 2:50 PM, James Shatto wrote:
eq-band(signal, hz, gain, width)

I'm trying to write an EQ routine for audacity and I'm having trouble
understanding the width parameter.  I had thought that High Hz - Low
Hz over 2 is what should be width.  But my routine doesn't work that
way when it uses that on the larger Hz values.  But over 4 does seem
to work.  I'd like to sort out why so I don't have any gap or overlap
in the EQ bands.
I guess you know there will always be overlap. These are not "brick
wall" filters.
When it does the EQ for the higher bands ~18kHz, it
basically nulls out the audio if /2 is used.

20000 - 16000 = 4000
4000/2 = 2000 = width?
or
4000/4 = 1000 = width?
or
Some other factor I seem to not quite get yet.  To be used like
(eq-band s 18000 2.0 2000)

Per the documentation:
--- and width (a FLONUM) is the half-gain width in octaves ---

Could someone give me a human-esque interpretation of that phrase.  Am
I supposed to make it a factor of the gain that I'm applying or
something?  If so, what does that do to the gain value?
The gain is measured in dB. The width is measured in octaves, e.g. if
the width is 2, the range of frequencies affected by the filter is from
hz/2 (an octave below) to hz*2 (an octave above). At these points (hz/2
and hz*2), the filter gain will be gain/2, measured in dB.

To compute width, the octaves between f1 and f2, where f2 > f1, use
log2(f2 / f1). log2(x) is not built-in, but log2(x) = log(x) / log(2.0).
To hz, get the frequency in the middle, use hz = f1 * power(2.0, width /
2.0).

I wrote a little program to send a sine sweep through a filter and plot
the peak amplitude of the output as a function of frequency (works in
the Nyquist IDE, and since the output is a sound, I guess you run
something similar to this in Audacity:

function test()
   begin
     ;; probe is a sinusoidal sweep at 1Hz/s
     with probe = hzosc(pwl(0, 0, 1000, 1000, 1000, 0)),
     ;; filt is a filtered probe
          filt = eq-band(probe, 200, -6.0, 2.0),
     ;; out is the rms of the input scaled to get peak
          out = rms(filt, 10) * sqrt(2.0)
     return out
   end

exec s-plot(test(), 1000, 1000)
Also, is there any sort of debugging tutorial, even if I have to use
emacs or something.  Even though my routine is fairly simple, I hate
having no ability to peak at the values (after applied arithmetic)
before they get used.
Maybe someone has a better answer for Audacity-nyquist, but I use the
Nyquist IDE. -Roger
Thanks,
- James
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

James Shatto
> How would you specify the spline?

linearly it would be (current frequency)/(max frequency)*(dB
adjustment) = (dB adjustment)

my current math is more like (current gain for frequency) = (previous
gain for frequency) * 0.75 (over 20-ish bands, going from highest to
lowest).

Which works pretty good using audacities 15 band mutiband eq and a
value closer to 0.60.  But I'm wanting something less step ladder and
needing only one or two values (with defaults) on the effects
initiation.

Not that I know if nyquist supports it, but some sort of sin / cos arc
averaged with the linear model to determine the depth of the arc.
Based on the bottom right quadrant of a circle from lowest Hz to
highest Hz.  Or something like that.  Perhaps some averaging to 2 line
+ 1 arc / 3 or 1 arc + 2 line / 3 type slider to tweak it.  It's just
the implementation of actually doing the eq that seems problematic
right now.  At a minimum the math for x^2+y^2=r^2 seems to be
implemented.  Where r is the max frequency, x is the current frequency
and y the unknown would be scaled to the gain adjustment ((y/max
frequency)*dB).  But it's not that math that's got me stumped.  It's
how to use the result to affect the eq with the least issues.

- James

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
rbd
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

rbd
On 10/25/10 5:49 AM, James Shatto wrote:

>> How would you specify the spline?
> linearly it would be (current frequency)/(max frequency)*(dB
> adjustment) = (dB adjustment)
>
> my current math is more like (current gain for frequency) = (previous
> gain for frequency) * 0.75 (over 20-ish bands, going from highest to
> lowest).
>
> Which works pretty good using audacities 15 band mutiband eq and a
> value closer to 0.60.  But I'm wanting something less step ladder and
> needing only one or two values (with defaults) on the effects
> initiation.
>
> Not that I know if nyquist supports it, but some sort of sin / cos arc
> averaged with the linear model to determine the depth of the arc.
> Based on the bottom right quadrant of a circle from lowest Hz to
> highest Hz.  Or something like that.  Perhaps some averaging to 2 line
> + 1 arc / 3 or 1 arc + 2 line / 3 type slider to tweak it.  It's just
> the implementation of actually doing the eq that seems problematic
> right now.  At a minimum the math for x^2+y^2=r^2 seems to be
> implemented.  Where r is the max frequency, x is the current frequency
> and y the unknown would be scaled to the gain adjustment ((y/max
> frequency)*dB).  But it's not that math that's got me stumped.  It's
> how to use the result to affect the eq with the least issues.
>
> - James
>
OK, you could try the NBAND-RANGE function. Here, I believe frequency
bands are geometrically spaced rather than linear, but you can compute
an array of gains. If you tell me whether you are using Lisp or SAL, I
think I can send a small example that computes a set of gains for
NBAND-RANGE.

(I still think for a few dB, you are better off with only a few bands,
but if you like the sound, that's the ultimate test.)

-Roger


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

James Shatto
Based on the band being frequency/width to frequency*width, that
really simplified what I was trying to do.  For 22-ish bands the width
would be 1.2-ish.  Which places the 22nd band up past sampling rates
of 48kHz, so I don't know if that will be problematic for samples at
or less than 48kHz.  Most of my samples are in the 192kHz / 96kHz
realm, so not a problem for me (at the moment).

I'll probably want to expand it later to allow a variable width and
therefor variable bands.  And I'm still not entirely sure if it does
exactly what I want.  But it does seem to work.  And with most of the
desired effect.  In some respects better than expected, but I've still
got to run the results through the ringer.  i.e. downsample the long
way to maximize clarity.

http://home.earthlink.net/~shadow_7/FauxFurEQ.ny

Feel free to set me straight if my logic is based on misunderstanding.
 It wouldn't be the first time.

- James


On 10/25/10, Roger Dannenberg <[hidden email]> wrote:

> On 10/25/10 5:49 AM, James Shatto wrote:
>>> How would you specify the spline?
>> linearly it would be (current frequency)/(max frequency)*(dB
>> adjustment) = (dB adjustment)
>>
>> my current math is more like (current gain for frequency) = (previous
>> gain for frequency) * 0.75 (over 20-ish bands, going from highest to
>> lowest).
>>
>> Which works pretty good using audacities 15 band mutiband eq and a
>> value closer to 0.60.  But I'm wanting something less step ladder and
>> needing only one or two values (with defaults) on the effects
>> initiation.
>>
>> Not that I know if nyquist supports it, but some sort of sin / cos arc
>> averaged with the linear model to determine the depth of the arc.
>> Based on the bottom right quadrant of a circle from lowest Hz to
>> highest Hz.  Or something like that.  Perhaps some averaging to 2 line
>> + 1 arc / 3 or 1 arc + 2 line / 3 type slider to tweak it.  It's just
>> the implementation of actually doing the eq that seems problematic
>> right now.  At a minimum the math for x^2+y^2=r^2 seems to be
>> implemented.  Where r is the max frequency, x is the current frequency
>> and y the unknown would be scaled to the gain adjustment ((y/max
>> frequency)*dB).  But it's not that math that's got me stumped.  It's
>> how to use the result to affect the eq with the least issues.
>>
>> - James
>>
> OK, you could try the NBAND-RANGE function. Here, I believe frequency
> bands are geometrically spaced rather than linear, but you can compute
> an array of gains. If you tell me whether you are using Lisp or SAL, I
> think I can send a small example that computes a set of gains for
> NBAND-RANGE.
>
> (I still think for a few dB, you are better off with only a few bands,
> but if you like the sound, that's the ultimate test.)
>
> -Roger
>
>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> Audacity-nyquist mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
>

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

Stevethefiddle
If you are running this in Audacity, have you considered using "Draw Curves" in the Equalizer effect? (available in Audacity  1.3.x). Custom curves may be saved and reused when you need them.
rbd
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

rbd
In reply to this post by James Shatto
On 10/25/10 12:40 PM, James Shatto wrote:

> Based on the band being frequency/width to frequency*width, that
> really simplified what I was trying to do.  For 22-ish bands the width
> would be 1.2-ish.  Which places the 22nd band up past sampling rates
> of 48kHz, so I don't know if that will be problematic for samples at
> or less than 48kHz.  Most of my samples are in the 192kHz / 96kHz
> realm, so not a problem for me (at the moment).
>
> I'll probably want to expand it later to allow a variable width and
> therefor variable bands.  And I'm still not entirely sure if it does
> exactly what I want.  But it does seem to work.  And with most of the
> desired effect.  In some respects better than expected, but I've still
> got to run the results through the ringer.  i.e. downsample the long
> way to maximize clarity.
>
> http://home.earthlink.net/~shadow_7/FauxFurEQ.ny
I took a look here: it looks like your width parameter is 1.2, but bands
go from freq/1.2 to freq*1.2. Your bandwidth is 1.44, but you need to
specify this in octaves. A ratio of 1.44 is 0.526069 octaves, so the
width parameter to eq-band should be 0.526069. That's if you want the
filter response to be gain/2 at freq/1.2 and freq*1.2. You could
increase or decrease width to get more or less overlap.

There's no need to write out equations for each band -- you could use a
loop to simplify the code (or maybe that would "complexify" it by adding
control constructs and data structures). The nband-range function uses a
loops-and-array approach to do something similar.

     -Roger

> Feel free to set me straight if my logic is based on misunderstanding.
>   It wouldn't be the first time.
>
> - James
>
>
> On 10/25/10, Roger Dannenberg<[hidden email]>  wrote:
>> On 10/25/10 5:49 AM, James Shatto wrote:
>>>> How would you specify the spline?
>>> linearly it would be (current frequency)/(max frequency)*(dB
>>> adjustment) = (dB adjustment)
>>>
>>> my current math is more like (current gain for frequency) = (previous
>>> gain for frequency) * 0.75 (over 20-ish bands, going from highest to
>>> lowest).
>>>
>>> Which works pretty good using audacities 15 band mutiband eq and a
>>> value closer to 0.60.  But I'm wanting something less step ladder and
>>> needing only one or two values (with defaults) on the effects
>>> initiation.
>>>
>>> Not that I know if nyquist supports it, but some sort of sin / cos arc
>>> averaged with the linear model to determine the depth of the arc.
>>> Based on the bottom right quadrant of a circle from lowest Hz to
>>> highest Hz.  Or something like that.  Perhaps some averaging to 2 line
>>> + 1 arc / 3 or 1 arc + 2 line / 3 type slider to tweak it.  It's just
>>> the implementation of actually doing the eq that seems problematic
>>> right now.  At a minimum the math for x^2+y^2=r^2 seems to be
>>> implemented.  Where r is the max frequency, x is the current frequency
>>> and y the unknown would be scaled to the gain adjustment ((y/max
>>> frequency)*dB).  But it's not that math that's got me stumped.  It's
>>> how to use the result to affect the eq with the least issues.
>>>
>>> - James
>>>
>> OK, you could try the NBAND-RANGE function. Here, I believe frequency
>> bands are geometrically spaced rather than linear, but you can compute
>> an array of gains. If you tell me whether you are using Lisp or SAL, I
>> think I can send a small example that computes a set of gains for
>> NBAND-RANGE.
>>
>> (I still think for a few dB, you are better off with only a few bands,
>> but if you like the sound, that's the ultimate test.)
>>
>> -Roger

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

James Shatto
I guess I'm not understanding this version of octaves.  Simple physic
has a string cut in half is an octave up, doubled in length is an
octave down.  My interpretation translated to Hz is Hz/2 = down an
octave and Hz*2 = up an octave.  I'm using 1.2 for pseudo octaves for
more bands.  What would be the formula for width in this case?  (sqrt
(mult 1.2 1.2)) ?  Isn't that 1.2?  Or is it more complex?

Ultimately I'll use a loop, just keeping it simple to get the jist of
it for now.  aka Semi-Human readable.


On 10/25/10, Roger Dannenberg <[hidden email]> wrote:

> On 10/25/10 12:40 PM, James Shatto wrote:
>> Based on the band being frequency/width to frequency*width, that
>> really simplified what I was trying to do.  For 22-ish bands the width
>> would be 1.2-ish.  Which places the 22nd band up past sampling rates
>> of 48kHz, so I don't know if that will be problematic for samples at
>> or less than 48kHz.  Most of my samples are in the 192kHz / 96kHz
>> realm, so not a problem for me (at the moment).
>>
>> I'll probably want to expand it later to allow a variable width and
>> therefor variable bands.  And I'm still not entirely sure if it does
>> exactly what I want.  But it does seem to work.  And with most of the
>> desired effect.  In some respects better than expected, but I've still
>> got to run the results through the ringer.  i.e. downsample the long
>> way to maximize clarity.
>>
>> http://home.earthlink.net/~shadow_7/FauxFurEQ.ny
> I took a look here: it looks like your width parameter is 1.2, but bands
> go from freq/1.2 to freq*1.2. Your bandwidth is 1.44, but you need to
> specify this in octaves. A ratio of 1.44 is 0.526069 octaves, so the
> width parameter to eq-band should be 0.526069. That's if you want the
> filter response to be gain/2 at freq/1.2 and freq*1.2. You could
> increase or decrease width to get more or less overlap.
>
> There's no need to write out equations for each band -- you could use a
> loop to simplify the code (or maybe that would "complexify" it by adding
> control constructs and data structures). The nband-range function uses a
> loops-and-array approach to do something similar.
>
>      -Roger
>> Feel free to set me straight if my logic is based on misunderstanding.
>>   It wouldn't be the first time.
>>
>> - James
>>
>>
>> On 10/25/10, Roger Dannenberg<[hidden email]>  wrote:
>>> On 10/25/10 5:49 AM, James Shatto wrote:
>>>>> How would you specify the spline?
>>>> linearly it would be (current frequency)/(max frequency)*(dB
>>>> adjustment) = (dB adjustment)
>>>>
>>>> my current math is more like (current gain for frequency) = (previous
>>>> gain for frequency) * 0.75 (over 20-ish bands, going from highest to
>>>> lowest).
>>>>
>>>> Which works pretty good using audacities 15 band mutiband eq and a
>>>> value closer to 0.60.  But I'm wanting something less step ladder and
>>>> needing only one or two values (with defaults) on the effects
>>>> initiation.
>>>>
>>>> Not that I know if nyquist supports it, but some sort of sin / cos arc
>>>> averaged with the linear model to determine the depth of the arc.
>>>> Based on the bottom right quadrant of a circle from lowest Hz to
>>>> highest Hz.  Or something like that.  Perhaps some averaging to 2 line
>>>> + 1 arc / 3 or 1 arc + 2 line / 3 type slider to tweak it.  It's just
>>>> the implementation of actually doing the eq that seems problematic
>>>> right now.  At a minimum the math for x^2+y^2=r^2 seems to be
>>>> implemented.  Where r is the max frequency, x is the current frequency
>>>> and y the unknown would be scaled to the gain adjustment ((y/max
>>>> frequency)*dB).  But it's not that math that's got me stumped.  It's
>>>> how to use the result to affect the eq with the least issues.
>>>>
>>>> - James
>>>>
>>> OK, you could try the NBAND-RANGE function. Here, I believe frequency
>>> bands are geometrically spaced rather than linear, but you can compute
>>> an array of gains. If you tell me whether you are using Lisp or SAL, I
>>> think I can send a small example that computes a set of gains for
>>> NBAND-RANGE.
>>>
>>> (I still think for a few dB, you are better off with only a few bands,
>>> but if you like the sound, that's the ultimate test.)
>>>
>>> -Roger
>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> Audacity-nyquist mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
>

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
rbd
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

rbd
Maybe this will help. Suppose instead of 1.2, you use 8. That is, Hz/8
for the low frequency, and Hz*8 for the high frequency. (I'm using a
really big number, 8, even though it is not a practical value.) A factor
of 8 is 3 octaves (2*2*2). So that's 3 octaves down and 3 octaves up.
The width is therefore 3+3=6. It is not 8; it is not sqrt(8) or
sqrt(8*8).  6 is log-base-2(8*8). I had some more math in a previous
message, and maybe the text below will make more sense now. -Roger

On 10/25/10 3:55 PM, James Shatto wrote:

> I guess I'm not understanding this version of octaves.  Simple physic
> has a string cut in half is an octave up, doubled in length is an
> octave down.  My interpretation translated to Hz is Hz/2 = down an
> octave and Hz*2 = up an octave.  I'm using 1.2 for pseudo octaves for
> more bands.  What would be the formula for width in this case?  (sqrt
> (mult 1.2 1.2)) ?  Isn't that 1.2?  Or is it more complex?
>
> Ultimately I'll use a loop, just keeping it simple to get the jist of
> it for now.  aka Semi-Human readable.
>
>
> On 10/25/10, Roger Dannenberg<[hidden email]>  wrote:
>> On 10/25/10 12:40 PM, James Shatto wrote:
>>> Based on the band being frequency/width to frequency*width, that
>>> really simplified what I was trying to do.  For 22-ish bands the width
>>> would be 1.2-ish.  Which places the 22nd band up past sampling rates
>>> of 48kHz, so I don't know if that will be problematic for samples at
>>> or less than 48kHz.  Most of my samples are in the 192kHz / 96kHz
>>> realm, so not a problem for me (at the moment).
>>>
>>> I'll probably want to expand it later to allow a variable width and
>>> therefor variable bands.  And I'm still not entirely sure if it does
>>> exactly what I want.  But it does seem to work.  And with most of the
>>> desired effect.  In some respects better than expected, but I've still
>>> got to run the results through the ringer.  i.e. downsample the long
>>> way to maximize clarity.
>>>
>>> http://home.earthlink.net/~shadow_7/FauxFurEQ.ny
>> I took a look here: it looks like your width parameter is 1.2, but bands
>> go from freq/1.2 to freq*1.2. Your bandwidth is 1.44, but you need to
>> specify this in octaves. A ratio of 1.44 is 0.526069 octaves, so the
>> width parameter to eq-band should be 0.526069. That's if you want the
>> filter response to be gain/2 at freq/1.2 and freq*1.2. You could
>> increase or decrease width to get more or less overlap.
>>
>> There's no need to write out equations for each band -- you could use a
>> loop to simplify the code (or maybe that would "complexify" it by adding
>> control constructs and data structures). The nband-range function uses a
>> loops-and-array approach to do something similar.
>>
>>       -Roger
>>> Feel free to set me straight if my logic is based on misunderstanding.
>>>    It wouldn't be the first time.
>>>
>>> - James
>>>
>>>
>>> On 10/25/10, Roger Dannenberg<[hidden email]>   wrote:
>>>> On 10/25/10 5:49 AM, James Shatto wrote:
>>>>>> How would you specify the spline?
>>>>> linearly it would be (current frequency)/(max frequency)*(dB
>>>>> adjustment) = (dB adjustment)
>>>>>
>>>>> my current math is more like (current gain for frequency) = (previous
>>>>> gain for frequency) * 0.75 (over 20-ish bands, going from highest to
>>>>> lowest).
>>>>>
>>>>> Which works pretty good using audacities 15 band mutiband eq and a
>>>>> value closer to 0.60.  But I'm wanting something less step ladder and
>>>>> needing only one or two values (with defaults) on the effects
>>>>> initiation.
>>>>>
>>>>> Not that I know if nyquist supports it, but some sort of sin / cos arc
>>>>> averaged with the linear model to determine the depth of the arc.
>>>>> Based on the bottom right quadrant of a circle from lowest Hz to
>>>>> highest Hz.  Or something like that.  Perhaps some averaging to 2 line
>>>>> + 1 arc / 3 or 1 arc + 2 line / 3 type slider to tweak it.  It's just
>>>>> the implementation of actually doing the eq that seems problematic
>>>>> right now.  At a minimum the math for x^2+y^2=r^2 seems to be
>>>>> implemented.  Where r is the max frequency, x is the current frequency
>>>>> and y the unknown would be scaled to the gain adjustment ((y/max
>>>>> frequency)*dB).  But it's not that math that's got me stumped.  It's
>>>>> how to use the result to affect the eq with the least issues.
>>>>>
>>>>> - James
>>>>>
>>>> OK, you could try the NBAND-RANGE function. Here, I believe frequency
>>>> bands are geometrically spaced rather than linear, but you can compute
>>>> an array of gains. If you tell me whether you are using Lisp or SAL, I
>>>> think I can send a small example that computes a set of gains for
>>>> NBAND-RANGE.
>>>>
>>>> (I still think for a few dB, you are better off with only a few bands,
>>>> but if you like the sound, that's the ultimate test.)
>>>>
>>>> -Roger
>> ------------------------------------------------------------------------------
>> Nokia and AT&T present the 2010 Calling All Innovators-North America contest
>> Create new apps&  games for the Nokia N8 for consumers in  U.S. and Canada
>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
>> http://p.sf.net/sfu/nokia-dev2dev
>> _______________________________________________
>> Audacity-nyquist mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
>>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America contest
> Create new apps&  games for the Nokia N8 for consumers in  U.S. and Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> Audacity-nyquist mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
>

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

James Shatto
Thanks.  I just didn't have a clue of how you came up with 0.5.....
So log-base-2(1.2*1.2) returns that value.  I can't quite find a
log-base-2 equivalent in code for nyquist 1.37, that is supposedly
what audacity's nyquist is based on.  But the pdf version I downloaded
isn't that searchable given the "log"ical word used everywhere and
stuff.  At least the taskbar calculator app has that function.

What a difference a day makes.  With the correct width(or at least
close enough), so far so good.  Lots of old captures to re-render to
get the full feel for it.  But nice to have that little bit of high
end sheen that makes it sound like less of a recording, and more like
being there.  Without all the oddness.  Now what to do about all those
crickets (and small kids) that were otherwise tamed by the HF loss
from faux fur.

- James


On 10/25/10, Roger Dannenberg <[hidden email]> wrote:

> Maybe this will help. Suppose instead of 1.2, you use 8. That is, Hz/8
> for the low frequency, and Hz*8 for the high frequency. (I'm using a
> really big number, 8, even though it is not a practical value.) A factor
> of 8 is 3 octaves (2*2*2). So that's 3 octaves down and 3 octaves up.
> The width is therefore 3+3=6. It is not 8; it is not sqrt(8) or
> sqrt(8*8).  6 is log-base-2(8*8). I had some more math in a previous
> message, and maybe the text below will make more sense now. -Roger
>
> On 10/25/10 3:55 PM, James Shatto wrote:
>> I guess I'm not understanding this version of octaves.  Simple physic
>> has a string cut in half is an octave up, doubled in length is an
>> octave down.  My interpretation translated to Hz is Hz/2 = down an
>> octave and Hz*2 = up an octave.  I'm using 1.2 for pseudo octaves for
>> more bands.  What would be the formula for width in this case?  (sqrt
>> (mult 1.2 1.2)) ?  Isn't that 1.2?  Or is it more complex?
>>
>> Ultimately I'll use a loop, just keeping it simple to get the jist of
>> it for now.  aka Semi-Human readable.
>>
>>
>> On 10/25/10, Roger Dannenberg<[hidden email]>  wrote:
>>> On 10/25/10 12:40 PM, James Shatto wrote:
>>>> Based on the band being frequency/width to frequency*width, that
>>>> really simplified what I was trying to do.  For 22-ish bands the width
>>>> would be 1.2-ish.  Which places the 22nd band up past sampling rates
>>>> of 48kHz, so I don't know if that will be problematic for samples at
>>>> or less than 48kHz.  Most of my samples are in the 192kHz / 96kHz
>>>> realm, so not a problem for me (at the moment).
>>>>
>>>> I'll probably want to expand it later to allow a variable width and
>>>> therefor variable bands.  And I'm still not entirely sure if it does
>>>> exactly what I want.  But it does seem to work.  And with most of the
>>>> desired effect.  In some respects better than expected, but I've still
>>>> got to run the results through the ringer.  i.e. downsample the long
>>>> way to maximize clarity.
>>>>
>>>> http://home.earthlink.net/~shadow_7/FauxFurEQ.ny
>>> I took a look here: it looks like your width parameter is 1.2, but bands
>>> go from freq/1.2 to freq*1.2. Your bandwidth is 1.44, but you need to
>>> specify this in octaves. A ratio of 1.44 is 0.526069 octaves, so the
>>> width parameter to eq-band should be 0.526069. That's if you want the
>>> filter response to be gain/2 at freq/1.2 and freq*1.2. You could
>>> increase or decrease width to get more or less overlap.
>>>
>>> There's no need to write out equations for each band -- you could use a
>>> loop to simplify the code (or maybe that would "complexify" it by adding
>>> control constructs and data structures). The nband-range function uses a
>>> loops-and-array approach to do something similar.
>>>
>>>       -Roger
>>>> Feel free to set me straight if my logic is based on misunderstanding.
>>>>    It wouldn't be the first time.
>>>>
>>>> - James
>>>>
>>>>
>>>> On 10/25/10, Roger Dannenberg<[hidden email]>   wrote:
>>>>> On 10/25/10 5:49 AM, James Shatto wrote:
>>>>>>> How would you specify the spline?
>>>>>> linearly it would be (current frequency)/(max frequency)*(dB
>>>>>> adjustment) = (dB adjustment)
>>>>>>
>>>>>> my current math is more like (current gain for frequency) = (previous
>>>>>> gain for frequency) * 0.75 (over 20-ish bands, going from highest to
>>>>>> lowest).
>>>>>>
>>>>>> Which works pretty good using audacities 15 band mutiband eq and a
>>>>>> value closer to 0.60.  But I'm wanting something less step ladder and
>>>>>> needing only one or two values (with defaults) on the effects
>>>>>> initiation.
>>>>>>
>>>>>> Not that I know if nyquist supports it, but some sort of sin / cos arc
>>>>>> averaged with the linear model to determine the depth of the arc.
>>>>>> Based on the bottom right quadrant of a circle from lowest Hz to
>>>>>> highest Hz.  Or something like that.  Perhaps some averaging to 2 line
>>>>>> + 1 arc / 3 or 1 arc + 2 line / 3 type slider to tweak it.  It's just
>>>>>> the implementation of actually doing the eq that seems problematic
>>>>>> right now.  At a minimum the math for x^2+y^2=r^2 seems to be
>>>>>> implemented.  Where r is the max frequency, x is the current frequency
>>>>>> and y the unknown would be scaled to the gain adjustment ((y/max
>>>>>> frequency)*dB).  But it's not that math that's got me stumped.  It's
>>>>>> how to use the result to affect the eq with the least issues.
>>>>>>
>>>>>> - James
>>>>>>
>>>>> OK, you could try the NBAND-RANGE function. Here, I believe frequency
>>>>> bands are geometrically spaced rather than linear, but you can compute
>>>>> an array of gains. If you tell me whether you are using Lisp or SAL, I
>>>>> think I can send a small example that computes a set of gains for
>>>>> NBAND-RANGE.
>>>>>
>>>>> (I still think for a few dB, you are better off with only a few bands,
>>>>> but if you like the sound, that's the ultimate test.)
>>>>>
>>>>> -Roger
>>> ------------------------------------------------------------------------------
>>> Nokia and AT&T present the 2010 Calling All Innovators-North America
>>> contest
>>> Create new apps&  games for the Nokia N8 for consumers in  U.S. and
>>> Canada
>>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
>>> marketing
>>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
>>> http://p.sf.net/sfu/nokia-dev2dev
>>> _______________________________________________
>>> Audacity-nyquist mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
>>>
>> ------------------------------------------------------------------------------
>> Nokia and AT&T present the 2010 Calling All Innovators-North America
>> contest
>> Create new apps&  games for the Nokia N8 for consumers in  U.S. and Canada
>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
>> marketing
>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
>> http://p.sf.net/sfu/nokia-dev2dev
>> _______________________________________________
>> Audacity-nyquist mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
>>
>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> Audacity-nyquist mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
>

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

edgar-rft
 > So log-base-2(1.2*1.2) returns that value.  I can't quite find a
 > log-base-2 equivalent in code for nyquist 1.37, that is supposedly
 > what audacity's nyquist is based on.

Audacity 1.3.x-beta is based on Nyquist 3.03, the Audacity 1.2.x code
has not been updated since 2005 or similar.

http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/nyquist.htm

log-base-2(1.2*1.2) using the XLISP log-base-e  function:

math: log2(n) = ln(n)/ln(2) = log(n)/log(2)

Nyquist/XLISP:

(defun log-base-2 (number)
   (/ (log (float number)) (log 2.0)))

(log-base-2 (* 1.2 1.2)) => 0.526069

Hope that helps...

- edgat





--
The author of this email does not necessarily endorse the following
advertisements, which are the sole responsibility of the advertiser:


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

James Shatto
In reply to this post by rbd
I changed to nband-range.  Unfortunately it doesn't look like my
version of audacity ships with that function.  And not available in my
distro either.  So I had to download the nyquist sources and quite
literally cut and paste it's definition into my routine.  Copying
grapheq.lsp straight to /usr/share/audacity/nyquist/ wasn't enough it
seems.  Once past that hurdle, it seems to be exactly what I needed /
wanted.  It would be nice to probably use nyquist directly and batch
script the EQ step.  The plugin is mainly to ID what values seem best
suited.  Somewhere near 3dB and 80% for each lower band of EQ gain.
For my current project.

So, any tips for file I/O howto / example with nyquist directly.  To
be executed from a bash prompt.  And of course thanks for all your
insights to help me figure this one out.

- James


On 10/24/10, Roger Dannenberg <[hidden email]> wrote:
> There's a file in nyquist/lib/grapheq.lsp that implements NBAND-RANGE:
>
> |nband-rang/e//(input/, /gains/, /lowf/, /highf/)|

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist
rbd
Reply | Threaded
Open this post in threaded view
|

Re: eq-band and "width"

rbd
On 10/28/10 5:41 PM, James Shatto wrote:

> I changed to nband-range.  Unfortunately it doesn't look like my
> version of audacity ships with that function.  And not available in my
> distro either.  So I had to download the nyquist sources and quite
> literally cut and paste it's definition into my routine.  Copying
> grapheq.lsp straight to /usr/share/audacity/nyquist/ wasn't enough it
> seems.  Once past that hurdle, it seems to be exactly what I needed /
> wanted.  It would be nice to probably use nyquist directly and batch
> script the EQ step.  The plugin is mainly to ID what values seem best
> suited.  Somewhere near 3dB and 80% for each lower band of EQ gain.
> For my current project.
>
> So, any tips for file I/O howto / example with nyquist directly.  To
> be executed from a bash prompt.  And of course thanks for all your
> insights to help me figure this one out.
You can run nyquist from the command line, although for linux you'll
have to download sources and build your own (there might be some
packages available for some distros -- I'm not sure). Also, there are
some build problems for 64-bit architectures I am working on (Nyquist
has some dependencies on 32 bit addresses and must be compiled as a
32-bit application, although this is not a problem for Intel/AMD
architectures since even 64-bit OS X and Linux can run 32-bit
applications. Anyway, assuming you have the binary (named ny), the
simplest thing to do is just invoke ny in a directory with init.lsp.
Nyquist will load and execute the init.lsp file and you can exit by
evaluating (EXIT). Functions are all documented, but to get you started
(S-READ filename) returns audio, and (S-SAVE sound-expression NY:ALL
filename :PLAY NIL) writes a sound to a file as fast as possible (or in
real time with simultaneous playback if you leave off the :PLAY option
or set it to T).
> - James
>
>
> On 10/24/10, Roger Dannenberg<[hidden email]>  wrote:
>> There's a file in nyquist/lib/grapheq.lsp that implements NBAND-RANGE:
>>
>> |nband-rang/e//(input/, /gains/, /lowf/, /highf/)|

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Audacity-nyquist mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/audacity-nyquist