Discussion:
[music-dsp] ADSR, how?
Emanuel Landeholm
2002-03-15 06:57:24 UTC
Permalink
Hello,

I'm losing sleep over how to implement ADSR envelopes!

Here's what I understand:

"A" controls the time to rise from -oo dB to 0 dB.
"D" controls the time to decay from 0 dB to some level determined
by "S".
This level is held while gated and then the envelope decays to -oo dB
for some time determined by "R".

What I don't understand is does the level rise linearly in dB during
the attack phase? At first this does seem reasonable judging from
plots of musical signals. But then we can't start from -oo dB as it
would take forever and ever to reach 0 dB. What then is the initial
level? -96 dB? -144 dB? Now the initial level will affect the slope of
the attack portion quite dramatically so it doesn't seem wise to pick
some point at random.

Of course exactly the same problem occurs during the release portion
of the envelope.

How is this done in practise?
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Laurent de Soras
2002-03-15 07:36:46 UTC
Permalink
Post by Emanuel Landeholm
What I don't understand is does the level rise linearly in dB during
the attack phase?
Often the level rises simply linearly, or in a 1-exp(-at)
form, as it does in analog synths. This help to get sharper
attacks.
Post by Emanuel Landeholm
Of course exactly the same problem occurs during the release
portion of the envelope.
If you want true exponential release, you could take -60 dB
as reference level for duration (commonly used for reverb
times). However i don't know if there is a "standard" way
to measure release time.

Just my 0.02 EUR.

-- Laurent

==================================+========================
Laurent de Soras | Ohm Force
DSP developer & Software designer | Digital Audio Software
mailto:***@ohmforce.com | http://www.ohmforce.com
==================================+========================

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Emanuel Landeholm
2002-03-15 11:05:29 UTC
Permalink
Post by Laurent de Soras
Post by Emanuel Landeholm
What I don't understand is does the level rise linearly in dB during
the attack phase?
Often the level rises simply linearly, or in a 1-exp(-at)
form, as it does in analog synths. This help to get sharper
attacks.
1-exp(-at) looks promising. Reminds me of capacitors. I think I'll go
with that. Thanks!

Just out of curiosity; is the "attack" portion of a musical envelope
usually a concave or a convex function? (more importantly perhaps:
does it really matter?) If I'm not mistaken 1-exp(-at) ought to be
concave (since exp(-t) is convex), whereas a linear dB (exp(t),
basically) increase would be a convex function.
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Ted David
2002-03-17 15:18:59 UTC
Permalink
Post by Emanuel Landeholm
Just out of curiosity; is the "attack" portion of a musical envelope
does it really matter?) If I'm not mistaken 1-exp(-at) ought to be
concave (since exp(-t) is convex), whereas a linear dB (exp(t),
basically) increase would be a convex function.
Actually, 1-exp(-at) is convex and exp(-at) is concave.

Ted David



dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Emanuel Landeholm
2002-03-19 14:22:14 UTC
Permalink
Post by Ted David
Post by Emanuel Landeholm
Just out of curiosity; is the "attack" portion of a musical envelope
does it really matter?) If I'm not mistaken 1-exp(-at) ought to be
concave (since exp(-t) is convex), whereas a linear dB (exp(t),
basically) increase would be a convex function.
Actually, 1-exp(-at) is convex and exp(-at) is concave.
Ted David
Actually no. Quoting from mathworld.wolfram.com:

If f(x) has a second derivative in [a, b], then a necessary and
sufficient condition for it to be convex on that interval is that
the second derivative f"(x) > 0 for all x in [a, b]

and

A function f(x) is said to be concave on an interval [a, b] if, for
any points and in [a, b], the function -f(x) is convex on that
interval

So since d2/dt2 exp(-at) = d/dt -a exp(-at) = a^2 exp(-at) > 0, it
follows that exp(-at) is convex.

For 1-exp(-at) we have d2/dt2 1-exp(-at) = d/dt a exp(-at) = d/dt -a^2
exp(-at), which is the neg of exp(-at)'s second derivative so therefor
1-exp(-at) must be concave.
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
s***@web.de
2002-03-15 10:13:33 UTC
Permalink
I used:

Atteck:

c[k]=k/A

Linear attack where k is k is thge current time step and A is the atack time.

Decay:

c[k]=gamma*c[k-1]+(1-gamma)*S

S IS SUSTAIN and gamma i decay parameter.

Release is than:

c[k]=gamma2*c[k-1]

T
______________________________________________________________________________
Darf es ein bisschen mehr sein? Mehr Speicher, mehr Mail, mehr Erlebnis,
mehr Leistung, mehr Prämie unter http://club.web.de/?mc=021102


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
s***@web.de
2002-03-15 10:46:35 UTC
Permalink
Post by s***@web.de
c[k]=k/A
Or you could use something like:

c[k]=k/a+gamma3*c[k-1]

for exponential attack.
Post by s***@web.de
Linear attack where k is k is thge current time step and A is the atack time.
c[k]=gamma*c[k-1]+(1-gamma)*S
S IS SUSTAIN and gamma i decay parameter.
c[k]=gamma2*c[k-1]
T
______________________________________________________________________________
Darf es ein bisschen mehr sein? Mehr Speicher, mehr Mail, mehr Erlebnis,
mehr Leistung, mehr Prämie unter http://club.web.de/?mc=021102
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
______________________________________________________________________________
Ohne Risiko spielend zum Börsenguru werden. Haben Sie schon eine
Strategie? Spekulieren und tolle Preis gewinnen http://boersenspiel.web.de


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Cesare Ferrari
2002-03-15 11:17:46 UTC
Permalink
One other thing to watch about exponential shaped attack phases is that the
discontinuity in the derivative of amplitude at the end of the attack and
start of the decay stage can give a nasty 'click' with fast attack settings.
This is avoided with a linear attack stage, or some hybrid 'S' shape.

Cesare
Date: Fri, 15 Mar 2002 07:57:24 +0100
Subject: [music-dsp] ADSR, how?
Hello,
I'm losing sleep over how to implement ADSR envelopes!
"A" controls the time to rise from -oo dB to 0 dB.
"D" controls the time to decay from 0 dB to some level determined
by "S".
This level is held while gated and then the envelope decays to -oo dB
for some time determined by "R".
What I don't understand is does the level rise linearly in dB during
the attack phase? At first this does seem reasonable judging from
plots of musical signals. But then we can't start from -oo dB as it
would take forever and ever to reach 0 dB. What then is the initial
level? -96 dB? -144 dB? Now the initial level will affect the slope of
the attack portion quite dramatically so it doesn't seem wise to pick
some point at random.
Of course exactly the same problem occurs during the release portion
of the envelope.
How is this done in practise?
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Ted David
2002-03-17 15:27:13 UTC
Permalink
Post by Cesare Ferrari
One other thing to watch about exponential shaped attack phases is that the
discontinuity in the derivative of amplitude at the end of the attack and
start of the decay stage can give a nasty 'click' with fast attack settings.
This is avoided with a linear attack stage, or some hybrid 'S' shape.
Cesare
If the attack is sufficiently frequently sampled, so that at the end of the
attack period, the argument of exp(-at) (i.e., at) is at least 4.5, and
delta(at) is 0.1 or less, the derivative will be less than 0.001. The click
will be inaudible.



dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Jon Watte
2002-03-15 16:39:48 UTC
Permalink
I know of two ways:

1) actually use a linear envelope
2) use a dB envelope, but make the "rise time" and "fall time" affect
integrator constants as well as timing constants.

2) would then treat the envelope as a series of filters and levels,
where the envelope first for time A runs a full-level signal through
an integrator with constant A', then sets the level to S and changes
the integrator constant to D' (note: no "D" time here!), then on
release sets the level to 0 and the constant to R' (also no time here!)

My guess is that 2) is similar to how analog synths did it, because it
would be easy to implement using a few caps. They'd probably use a level
trigger rather than a fixed time for the "A" time value; the level
trigger needs to be somewhat below the actual full-level signal for it
to work out okay.

Cheers,

/ h+
-----Original Message-----
Sent: Thursday, March 14, 2002 10:57 PM
Subject: [music-dsp] ADSR, how?
Hello,
I'm losing sleep over how to implement ADSR envelopes!
"A" controls the time to rise from -oo dB to 0 dB.
"D" controls the time to decay from 0 dB to some level determined
by "S".
This level is held while gated and then the envelope decays to -oo dB
for some time determined by "R".
What I don't understand is does the level rise linearly in dB during
the attack phase? At first this does seem reasonable judging from
plots of musical signals. But then we can't start from -oo dB as it
would take forever and ever to reach 0 dB. What then is the initial
level? -96 dB? -144 dB? Now the initial level will affect the slope of
the attack portion quite dramatically so it doesn't seem wise to pick
some point at random.
Of course exactly the same problem occurs during the release portion
of the envelope.
How is this done in practise?
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Mike Suchoff
2002-03-15 21:32:14 UTC
Permalink
I'm assuming you want to exactly mimic the ADSR of an analog synth.
If so, here's how it was done.

First, think like an analog synth. That is, volts per octave. Standard was
1 volt per octave (i.e. each increase of 1 volt results in doubling
frequency).
Range of synths was 10 octaves (20 - 20000 Hz).

In ADSR, all charging, discharging was done via RC time constants. This
is exponential, NOT integration as a previous writing thought.

Synths used 15 volt power supplies.

In the attach phase, +15 was fed thru a variable resistor (determined attach
time) to a cap until voltage reached 10 volts.

So formula for attack is

vout = 15 * ( 1 - exp(t/(RA*C))

where t is time, RA is attack resistance and C is capacitance.

When vout reached 10, the attack circuit was switched off, and the decay
circuit was switched in. The decay circuit discharged the cap to ground (0)
through the decay
resistor. So the output voltage at time t (where t=0 is time decay begins)
is

vout = 10 * exp(t/(RD*C))

where RD is decay circuit resistance.

When vout decayed to sustain level, the sustain level was maintained until
gate was removed
(key release). At that time, the release circuit was switched in, which
like the decay circuit
caused the voltage to decay to zero using this formula

vout = VS * exp(t/(RR*C))

where VS is sustain voltage and RR is release resistor.

Now some comments on implementation.

1. Don't get hung up on R & C. Simply choose what the max
attach/decay/release times
are, substitute this for "t" in above and solve for combined RC.

2. The sliders (potentiometers) used where audio taper (logarithmic) (except
for sustain which was linear taper).
You have to take this into consideration to convert any user control into a
time constant. If you want
to be fanatical about it, you should purchase and measure an audio taper pot
because they are not exactly logarithmic.

3. If you want to use ADSR to control oscillator frequency, the ADSR value
causes an exponential change in frequency.
(Think volts/octave).

4. On the other hand, VCAs in synth where linear. So for controlling
volume, use scaled value of ADSR for gain control.

5. Actual exp() and log() functions should probably be done via lookup
table.

Hope this helps.

-----Original Message-----
From: owner-music-***@shoko.calarts.edu
[mailto:owner-music-***@shoko.calarts.edu]On Behalf Of Jon Watte
Sent: Friday, March 15, 2002 11:40 AM
To: music-***@shoko.calarts.edu
Subject: RE: [music-dsp] ADSR, how?


I know of two ways:

1) actually use a linear envelope
2) use a dB envelope, but make the "rise time" and "fall time" affect
integrator constants as well as timing constants.

2) would then treat the envelope as a series of filters and levels,
where the envelope first for time A runs a full-level signal through
an integrator with constant A', then sets the level to S and changes
the integrator constant to D' (note: no "D" time here!), then on
release sets the level to 0 and the constant to R' (also no time here!)

My guess is that 2) is similar to how analog synths did it, because it
would be easy to implement using a few caps. They'd probably use a level
trigger rather than a fixed time for the "A" time value; the level
trigger needs to be somewhat below the actual full-level signal for it
to work out okay.

Cheers,

/ h+
-----Original Message-----
Sent: Thursday, March 14, 2002 10:57 PM
Subject: [music-dsp] ADSR, how?
Hello,
I'm losing sleep over how to implement ADSR envelopes!
"A" controls the time to rise from -oo dB to 0 dB.
"D" controls the time to decay from 0 dB to some level determined
by "S".
This level is held while gated and then the envelope decays to -oo dB
for some time determined by "R".
What I don't understand is does the level rise linearly in dB during
the attack phase? At first this does seem reasonable judging from
plots of musical signals. But then we can't start from -oo dB as it
would take forever and ever to reach 0 dB. What then is the initial
level? -96 dB? -144 dB? Now the initial level will affect the slope of
the attack portion quite dramatically so it doesn't seem wise to pick
some point at random.
Of course exactly the same problem occurs during the release portion
of the envelope.
How is this done in practise?
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Jon Watte
2002-03-15 21:58:00 UTC
Permalink
Post by Mike Suchoff
In ADSR, all charging, discharging was done via RC time constants. This
is exponential, NOT integration as a previous writing thought.
Exponential and integration are the same things, except the
integration is expressed as a discrete step and the exponential
function is expressed as a function of t. In a sense, the
integration implements the exponential function.

I e, for vout = 15*(1-exp(t/(RA*C)))

you can implement this in discrete time with:

vout' = vout' + (15-vout')*IntegrationConstant

Finding "integrationConstant" for some given sampling rate is
not that hard, but more work than I have time to derive or look
up now :-)

Cheers,

/ h+


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Don Morgan
2002-03-15 23:10:55 UTC
Permalink
I hope this isn't too ot- but what is OPL1? It know only that it is from
Yamaha.
Don Morgan


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Nils Schneider
2002-03-16 01:41:45 UTC
Permalink
Afaik it's a fm-synthesis used in cheap soundcards to support midi.

Nils

--

My music:
http://nils_schneider.myownmusic.de/

My studio:
http://www.talknet.de/~Nils_Schneider/Studio/My_Gear.html

--------------

Programmierer sucht Job. Kenntnisse:

- Windows-Programmierung in C/C++
- Umgang mit Midi und DirectSound
- Erfahrung in der Programmierung von DSP-Routinen / Effekten
- sowie Software-Editoren für Synthesizer

----- Original Message -----
From: Don Morgan <***@baykitty.com>
To: <music-***@shoko.calarts.edu>
Sent: Saturday, March 16, 2002 12:10 AM
Subject: [music-dsp] [ot] OPL1
Post by Don Morgan
I hope this isn't too ot- but what is OPL1? It know only that it is from
Yamaha.
Don Morgan
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Mike Suchoff
2002-03-15 23:44:01 UTC
Permalink
Perhaps our definitions of integration are different.

When I think of integration, I think of the calculus definition.
The integral of a step function is a linear ramp (i.e. in the other
direction, the differential of a linear ramp (its slope) is a constant (a
step).

In analog circuits, if you build an integrator and feed in a step, you get
out a linear ramp (because integrator charges cap with a constant current,
and dv/dt (rate of voltage change) = current/capacitance.

So if someone says, "Analog synths used an integrator to charge up a
capacitor",
an analog engineer would say: "no - a linear charging circuit wasn't used,
an RC
charging circuit was used".

I don't think exponential and integration are the same as you indicate.

Rather, integration in continuous domain is analogous to summation in
discrete domain.

Your equations below apply a feedback term - so its more complicated than a
simple
integrator.

-----Original Message-----
From: owner-music-***@shoko.calarts.edu
[mailto:owner-music-***@shoko.calarts.edu]On Behalf Of Jon Watte
Sent: Friday, March 15, 2002 4:58 PM
To: music-***@shoko.calarts.edu
Subject: RE: [music-dsp] ADSR, how?
Post by Mike Suchoff
In ADSR, all charging, discharging was done via RC time constants. This
is exponential, NOT integration as a previous writing thought.
Exponential and integration are the same things, except the
integration is expressed as a discrete step and the exponential
function is expressed as a function of t. In a sense, the
integration implements the exponential function.

I e, for vout = 15*(1-exp(t/(RA*C)))

you can implement this in discrete time with:

vout' = vout' + (15-vout')*IntegrationConstant

Finding "integrationConstant" for some given sampling rate is
not that hard, but more work than I have time to derive or look
up now :-)

Cheers,

/ h+


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
James Chandler Jr.
2002-03-16 00:55:54 UTC
Permalink
It is not a hard-and-fast rule that analog ADSR's used (buffered) RC
elements.

Some analog ADSR's had exponential or logarithmic curves, but linear ADSR's
were very common. Linear analog ADSR's were pretty simple to build.

Though some analog ADSR's used RC type elements, the linear ADSR design
typically would use level-sensing logic to drive different currents into an
opamp integrator. In these designs, the opamp integrator output could be
ruler-straight.

Assuming the ADSR is at zero, the gate/trigger causes a current
corresponding to the attack knob to be applied to the integrator, until the
integrator linearly ramps to the 100 percent threshold. Then a threshold
sensor switches to the current corresponding to the release knob, until the
integrator linearly descends to the threshold of the Sustain knob, etc.

The linear ADSR was very amenable to voltage-control in hybrid
cpu-controlled analog synths.

Though various non-linear ADSR shapes may "sound better" for amplitude or
filter envelopes, I usually preferred linear ADSR pitch shift for 1 volt per
octave oscillators

James Chandler Jr.




dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
James Chandler Jr.
2002-03-16 01:05:41 UTC
Permalink
Then a threshold sensor switches to the current corresponding to the
_RELEASE_<< knob, until the integrator linearly descends to the threshold
of the Sustain knob, etc.
<<

OOPs. Sorry for wasting bandwidth on a dumb correction, but I actually
meant--
Then a threshold sensor switches to the current corresponding to the
_DECAY_<< knob, until the integrator linearly descends to the threshold of
the Sustain knob, etc.
<<

JCJR




dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Ethan Duni
2002-03-16 02:31:05 UTC
Permalink
Post by James Chandler Jr.
Though various non-linear ADSR shapes may "sound better" for amplitude or
filter envelopes, I usually preferred linear ADSR pitch shift for 1 volt per
octave oscillators
-Yeah, I thought the preferred way to do it in (modular) analog was to
generate linear envelopes and then build two control inputs into the
modules: one for direct linear input and one with an exponential converter.
Of course, if you're always going to use an envelope with the exponential
input (i.e., it's dedicated for a VCA), you might as well just design an
exponential envelope to begin with.

Ethan


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
James Chandler Jr.
2002-03-16 06:40:06 UTC
Permalink
Post by Ethan Duni
-Yeah, I thought the preferred way to do it in (modular) analog was to
generate linear envelopes and then build two control inputs into the
modules: one for direct linear input and one with an exponential converter.
Of course, if you're always going to use an envelope with the exponential
input (i.e., it's dedicated for a VCA), you might as well just design an
exponential envelope to begin with.
I used to enjoy building and modifying analog synths "way back when".
Recalled linear ADSR's as being pretty common in the 1970's and early
1980's. That was the style I thought was the "slickest" for use with one
volt per octave Oscillators, Filters, and VCA's.

Tonight got curious and dug out some old synth schematics. The USA "major
hitters" Moog and Arp mostly used RC exponential generators. The "linear
response oscillator" synth manufacturers like Korg, Yamaha, PAIA, mostly
used RC exponential generators. And the Curtis ADSR chips were designed for
an exponential curve (though I think they could be linearized if desired).

Going by number of units sold, looks like exponential ADSR's were much more
common than linear ADSR's. Memory's getting bad in my old age (GRIN).

JCJR




dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Don Morgan
2002-03-16 02:40:34 UTC
Permalink
are there any references for it? (OPL1) I have to make a module that is
compatible to it.
Don Morgan



dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Nils Schneider
2002-03-16 02:59:07 UTC
Permalink
I guess no, but I'm not quite sure (but if so the differences are very slight ones). If you take one and emulate it you are on the
right side because they are all general midi standard and so e.g. program change 0 will always be a piano. And if you aim to get
general midi out of it the condition should be fulfilled.

Nils

--

My music:
http://nils_schneider.myownmusic.de/

My studio:
http://www.talknet.de/~Nils_Schneider/Studio/My_Gear.html

--------------

Programmierer sucht Job. Kenntnisse:

- Windows-Programmierung in C/C++
- Umgang mit Midi und DirectSound
- Erfahrung in der Programmierung von DSP-Routinen / Effekten
- sowie Software-Editoren für Synthesizer

----- Original Message -----
From: Don Morgan <***@baykitty.com>
To: <music-***@shoko.calarts.edu>
Sent: Saturday, March 16, 2002 3:40 AM
Subject: RE: [music-dsp] [ot] OPL1
Post by Don Morgan
are there any references for it? (OPL1) I have to make a module that is
compatible to it.
Don Morgan
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Olli Niemitalo
2002-03-16 10:15:13 UTC
Permalink
Post by Don Morgan
are there any references for it? (OPL1) I have to make a module that is
compatible to it.
I've heard both of the following chips called OPL1.

YM3526 (OPL):

http://www.ee.oulu.fi/~ollinie/adlib/ym3526.pdf

Y8950 (MSX-AUDIO):

http://www.ee.oulu.fi/~ollinie/adlib/Y8950.pdf

-olli


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
David Olofson
2002-03-15 10:39:44 UTC
Permalink
On Friday 15 March 2002 07.57, Emanuel Landeholm wrote:
[...]
Post by Emanuel Landeholm
What I don't understand is does the level rise linearly in dB
during the attack phase? At first this does seem reasonable judging
from plots of musical signals.
Yes, linear is often "sufficient" for the attack, but exponential
curves seem to work better in general, especially for the release.

Actually, the linear approximatio/exponential is more related to
duration than attack/release. It just happens that attacks are
usually short enough that a linear approximation is sufficient, while
releases are much longer, and thus just won't sound right without at
least some approximation of an exponential function.

You could try some polynomial functions for speed. They need some
calculations when starting a new "stage", but after that, they're
incredibly cheap to evaluate recursively, like:

y += dy;
dy += ddy;

for a y = Ax + Bx^2 function. (Frequently used in software 3D
rendering, to approximate the 1/z needed for perspective correct
texture mapping.)

Just be careful with precision! Errors accumulate, so you can't
assume that you reach the exact target level, at least not if you run
more than a small, fixed number of envelope "stages" before resetting
the level accumulator.
Post by Emanuel Landeholm
But then we can't start from -oo dB
as it would take forever and ever to reach 0 dB. What then is the
initial level? -96 dB? -144 dB?
-96 dB would be a sensible value for 16 bit output, I think...
Post by Emanuel Landeholm
Now the initial level will affect
the slope of the attack portion quite dramatically so it doesn't
seem wise to pick some point at random.
This depends on your envelope function, of course. Linear or
polynomials aren't all that sensitive.
Post by Emanuel Landeholm
Of course exactly the same problem occurs during the release
portion of the envelope.
How is this done in practise?
I *think* various approximations of exponentials are rather common,
but I haven't looked at sufficient numbers of implementations to say
for sure.


Oh, and there's another trick to consider, if performance should be a
problem: Subdividing the envelope into linear sections. That way, you
only need to calculate "real" envelope levels every Nth sample, while
a simple linear function handles the actual ramping. Something like:

target_y = envelope(t + 32);
dy = (target_y - y) * (1 / 32);

for(s = 0; s < 32; ++s)
{
in = oscillator(t + s);
out[s] = in * y;
y += dy;
}

Of course, if envelope timing needs better resolution than 32
samples, it's better to make the "32" a variable, even though it may
cost slightly more. (32 samples is a looong time if you're
programming percussive sounds!)


//David

.- M A I A -------------------------------------------------.
| Multimedia Application Integration Architecture |
| A Free/Open Source Plugin API for Professional Multimedia |
`----------------------> http://www.linuxaudiodev.com/maia -'
.- David Olofson -------------------------------------------.
| Audio Hacker - Open Source Advocate - Singer - Songwriter |
`-------------------------------------> http://olofson.net -'

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
s***@web.de
2002-03-19 15:14:46 UTC
Permalink
Post by Emanuel Landeholm
If f(x) has a second derivative in [a, b], then a necessary and
sufficient condition for it to be convex on that interval is that
the second derivative f"(x) > 0 for all x in [a, b]
Actually convexity in this case is for f"(x)>=0

f"(x) > 0 is strictly convex if I remember correctly.

Sorry for being picky. I was just happy I remembered something.

T

______________________________________________________________________________
Ohne Risiko spielend zum Börsenguru werden. Haben Sie schon eine
Strategie? Spekulieren und tolle Preis gewinnen http://boersenspiel.web.de


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
s***@web.de
2002-03-19 15:19:31 UTC
Permalink
And by the way.

why not use my formulas?

The ones I posted earlier.

I had linear attack and exponential decay. And the lamda parameter actually could change the exponential decay from linear (Not exponential at all to very exponential. Well I don't now how to call it but I hope you understand what I mean.


T
______________________________________________________________________________
All inclusive! 100 MB Speicher, 1000 Mails, Wunschrufnummer, Superstars,
Events, Preisvorteile und mehr unter http://club.web.de/?mc=021104


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Emanuel Landeholm
2002-03-19 22:21:47 UTC
Permalink
Post by s***@web.de
And by the way.
why not use my formulas?
The ones I posted earlier.
I had linear attack and exponential decay. And the lamda parameter actually
could change the exponential decay from linear (Not exponential at all to
very exponential. Well I don't now how to call it but I hope you understand what I mean.
Yes, your solutions are interesting. I'll probably wind up using
something similiar to

y -= vel * (y - L)

where y is the current and L is the desired level. I've previously
used this kind of diff. eq. for portamento with some level of success.

Not sure about your mentioning of a lambda parameter though... Or did
you mean gamma? But gamma would be vel in my eq, right?

I just remembered, cmusic has a generator called gen4[1] which can
render linear, exponential and inverted exponential transitions. The
eq is

f(x) = y1 + (y2 - y1) (1 - exp(I(x) alpha)) / (1 - exp(alpha)),
I(x) = (x - x1) / (x2 - x1)

alpha = 0 yields straight transitions, alpha < 0 an exponential and
alpha > 0 an inverse exponential.

I have played around with this eq before but while being quite
flexible it has too many parameters for my taste.



[1] _Elements of Computer Music_ by F. Richard Moore, pp 183
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
s***@web.de
2002-03-19 23:35:22 UTC
Permalink
Post by Emanuel Landeholm
Not sure about your mentioning of a lambda parameter though... Or did
you mean gamma? But gamma would be vel in my eq, right?
Oh. I don't remember what I called the parameter. Might be gamma.

You can calculate it to be exactly exponential (e^x) but in my implementation I tried some values. You don't have to keep it as a parameter in the end but experiment with it in the implementation phase.

I use it as a standard ADSR with linear attack, the decay is a bitt faster than normal e^x and the sustain I think I set to be exponential.


______________________________________________________________________________
All inclusive! 100 MB Speicher, 1000 Mails, Wunschrufnummer, Superstars,
Events, Preisvorteile und mehr unter http://club.web.de/?mc=021104


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Jon Watte
2002-03-20 03:05:51 UTC
Permalink
Post by Mike Suchoff
Your equations below apply a feedback term - so its more
complicated than a
simple
integrator.
I think we use the terms differently. I think of the recurrence
relation as a discrete integrator, approximating the behaviour
of the exponential function we discussed. I'm sure you can describe
it many other ways, too.

Note that it's integrating "difference between previous step and
expected target;" this is AFAIK a very common occurence in discrete
(numerical) integration applications. That being mentioned, the
integrator I proposed was a first-order Euler, which is pretty much
as pedestrian as numerical integrators go. I don't recommend it
except for this one special case, where it happens to be very
useful :-)

Cheers,

/ h+


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Bert Schiettecatte
2002-03-19 19:50:14 UTC
Permalink
hi,

I'm trying to implement a bandlimited square oscillator like explained in
the paper
by Tim Stilson and Julius Smith:

http://www-ccrma.stanford.edu/~stilti/papers/blit.pdf

I started out with the code by Joe Wright after reading through Tim's paper:

http://www.musicdsp.org/files/waveforms.txt

Unfortunately my matlab implementation gives some problems when I try to
sweep
the oscillator. I can understand what happens (sort of) to the impulse train
as
I increase frequency: I suppose the spacing between the sincs reduces as the
frequency increases. Unfortunately something is wrong since

1. the amplitude changes as I change the frequency of the oscillator, and
above
5000 Hz (somewhere around that rate) the signal becomes 0

2. I get sudden jumps in the oscillation as frequency is changed -- this
appears
to happen in a rather random fashion.

Does anyone have any ideas what's wrong? The matlab code:

============================================================================
=======
function out = blsquare(d, fs, f, k0)

% band limited square oscillator
%
% k0 = duty cycle [0..1]
% f = array of frequencies in hz
% fs = sample rate in hz
% d = duration in s

c = 1;
square = 0;
t=0:1/fs:d;
out=zeros(1, length(t));
update=floor(length(t)/length(f));
uc=update;
current=1;

for i=1:floor(d*fs)
% the array f passed as a parameter contains a sequence of frequencies
if (uc < update)
uc = uc + 1;
else
uc = 0;

% time to set next frequency
period = fs/f(current);
m = 2*floor(period/2)+1;
k = floor(k0*period); % k0 is the duty cycle, between 0 and 1

current = current + 1;
end

% bipolar impulse train
bpblit = -sin(pi*(c+k)*m/period)/(m*sin(pi*(c+k)/period));
bpblit = bpblit+sin(pi*(c+1)*m/period)/(m*sin(pi*(c+1)/period));

% integrate
square = square+bpblit;

$ output
out(i) = square;

% synthesis done per period to avoid numerical errors accumulating
if (c<=period)
c=c+1;
else
c=1;
square=0;
end
end
============================================================================
=======

thanks a lot!

bert.


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Emanuel Landeholm
2002-03-20 12:24:54 UTC
Permalink
On Tue, 19 Mar 2002 20:50:14 +0100, you wrote:
If I understand your code correctly you seem to be resetting the phase
of the blits with a frequency of 1/(floor(period)) while the
fundamental frequency of your blit is exactly 1/period. These
frequencies must be the same or you are bound to get nasty aliasing.
This is very likely the source of your problems.

Doing "c -= period" instead of resetting it each time it wraps might
help. Something like that.
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
piter pasma ..ritz
2002-03-20 20:29:36 UTC
Permalink
i have some ppl at a messageboard breaking their head about
this one.. [non dsp related board]

i figured you dsp ppl will spot it immediatly..

can you find the hidden message in:
http://ritz.de-4u.com/descendents__i_like_food.wav

?

what do you think? nice huh :)

- ritz


=====
. piter pasma ....
.. ritz[nd-44-zh] ...
... ritz_rvl(at)yahoo(dot)com ..
.... http://www.ritz.nd-44-zh.net .

__________________________________________________
Do You Yahoo!?
Yahoo! Sports - live college hoops coverage
http://sports.yahoo.com/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Russell Borogove
2002-03-20 22:05:18 UTC
Permalink
Post by piter pasma ..ritz
i have some ppl at a messageboard breaking their head about
this one.. [non dsp related board]
i figured you dsp ppl will spot it immediatly..
http://ritz.de-4u.com/descendents__i_like_food.wav
?
what do you think? nice huh :)
Got it, won't spoil it for anyone else.







dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Alex Prooper
2002-03-20 22:09:20 UTC
Permalink
Post by Lorenzo Martinelli
sorry but what do you are talking about??????????? lorenzo
He is talking about http://chaos.yerbox.org/face/
Post by Lorenzo Martinelli
-----Messaggio originale-----
..ritz
Inviato: mercoledì 20 marzo 2002 21.30
Oggetto: [music-dsp] [ot] a puzzle
i have some ppl at a messageboard breaking their head about
this one.. [non dsp related board]
i figured you dsp ppl will spot it immediatly..
http://ritz.de-4u.com/descendents__i_like_food.wav
?
what do you think? nice huh :)
- ritz
Alex Prooper
Epeos Software
Tolstraat 87-IV
1073 RZ Amsterdam
020 - 37 90 670
06 - 21 24 27 50
http://www.xs4all.nl/~alexp


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
David Brännvall
2002-03-22 07:40:38 UTC
Permalink
Post by Alex Prooper
He is talking about http://chaos.yerbox.org/face/
I used Nullsoft Tiny Fullscreen, Sexy Scrolling Voiceprint (Winamp), and it
didn't show the higher frequencys so I
missed it.

Oh my gosh, I had the same idea to put pictures in my songs, but I never
implemented it, and I had this strong feeling that I wasn't the only one
thinking about it, thank you for confirming it for me.

regards,
David




dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Nils Schneider
2002-03-23 02:34:14 UTC
Permalink
Any tools available to include that easily?

Nils

«
--
Music: http://nils_schneider.myownmusic.de/
Studio: http://www.talknet.de/~Nils_Schneider/Studio/My_Gear.html

----- Original Message -----
From: David Brännvall <***@brannvall.net>
To: <music-***@shoko.calarts.edu>
Sent: Friday, March 22, 2002 8:40 AM
Subject: Re: R: [music-dsp] [ot] a puzzle
Post by David Brännvall
Post by Alex Prooper
He is talking about http://chaos.yerbox.org/face/
I used Nullsoft Tiny Fullscreen, Sexy Scrolling Voiceprint (Winamp), and it
didn't show the higher frequencys so I
missed it.
Oh my gosh, I had the same idea to put pictures in my songs, but I never
implemented it, and I had this strong feeling that I wasn't the only one
thinking about it, thank you for confirming it for me.
regards,
David
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
douglas irving repetto
2002-03-23 19:12:24 UTC
Permalink
check out soundhack's qtcoder function. lets you do sound<->quicktime
pretty easily.


http://www.soundhack.com/


douglas
--
................................................http://artbots.org
.......douglas irving...........................http://dorkbot.org
.......... repetto...............http://shoko.calarts.edu/musicdsp
................................http://music.columbia.edu/~douglas


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Lorenzo Martinelli
2002-03-20 21:46:01 UTC
Permalink
sorry but what do you are talking about??????????? lorenzo

-----Messaggio originale-----
Da: owner-music-***@shoko.calarts.edu
[mailto:owner-music-***@shoko.calarts.edu]Per conto di piter pasma
..ritz
Inviato: mercoledì 20 marzo 2002 21.30
A: music-***@shoko.calarts.edu
Oggetto: [music-dsp] [ot] a puzzle


i have some ppl at a messageboard breaking their head about
this one.. [non dsp related board]

i figured you dsp ppl will spot it immediatly..

can you find the hidden message in:
http://ritz.de-4u.com/descendents__i_like_food.wav

?

what do you think? nice huh :)

- ritz


=====
. piter pasma ....
.. ritz[nd-44-zh] ...
... ritz_rvl(at)yahoo(dot)com ..
.... http://www.ritz.nd-44-zh.net .

__________________________________________________
Do You Yahoo!?
Yahoo! Sports - live college hoops coverage
http://sports.yahoo.com/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Lorenzo Martinelli
2002-03-20 22:49:54 UTC
Permalink
-----Messaggio originale-----
Da: owner-music-***@shoko.calarts.edu
[mailto:owner-music-***@shoko.calarts.edu]Per conto di piter pasma
..ritz
Inviato: mercoledì 20 marzo 2002 21.30
A: music-***@shoko.calarts.edu
Oggetto: [music-dsp] [ot] a puzzle


i have some ppl at a messageboard breaking their head about
this one.. [non dsp related board]

i figured you dsp ppl will spot it immediatly..

can you find the hidden message in:
http://ritz.de-4u.com/descendents__i_like_food.wav

?

what do you think? nice huh :)

- ritz


=====
. piter pasma ....
.. ritz[nd-44-zh] ...
... ritz_rvl(at)yahoo(dot)com ..
.... http://www.ritz.nd-44-zh.net .

__________________________________________________
Do You Yahoo!?
Yahoo! Sports - live college hoops coverage
http://sports.yahoo.com/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Theo
2002-03-21 16:31:06 UTC
Permalink
Just some remarks, others probably noted this already.

In 'real' synths there are 3 systems in use.
1) linear envelopes and expo VCA
2) expo envelopes and linear VCA.
3) expo envelopes and expo VCA

At first sight the first two options may seem to have the same result.
However there is a difference in how the attack behaves,
because expo envelopes have a INVERSE exponential attack phase.

With the linear ENV / expo VCA combination the attack first starts slow and
then rushes to the top.
While the exponential envelope/ linear VCA combination gives a attack that
start fast and then slows down as it raises.
This last combination gives more "punch" to the sound.
Holding the maximum level for a few milli sec before entering the decay may
also be a good idea.
Some say this is _the_ feature that made the mini moog envelope famous :)

This also explains the use of the third combination.
Here the result is a linear attack and exponential decay/release.

The pick is yours, most pp seem to prefer option 2) or 3)


There is a slight difference between envelopes for a mono synth and for a
poly synth.
With a poly synth you normally let all envelopes start from zero,
with all the known voice stealing/clicking issues that come with it.
However for a mono synth, there is _always_ voice stealing,
So most often the envelope starts at the level where the previous note was
stopped to prevent clicking.
As a side effect, when playing fast legato lines the attack becomes shorter,
this adds some "natural" control over attack time by your playing style.


Then there is the issue of how you want the envelope "times" to behave,
the "right" choice will depend on your taste and application.

First there are constant time envelopes,
that is the duration of the attack/decay/release is independent of the
start/sustain/end levels.
In other words the decay time is set by the decay parameter only, and
independent of the sustain level.

The other implementation is constant rate, almost all analogue envelopes are
from this type.
Often constant rate is easier to implement but the actual duration of the
attack/decay/release will depend on the difference in level that has to be
covered.
So if you turn up the sustain level the decay time will shorten.

Theo
Post by Emanuel Landeholm
Hello,
I'm losing sleep over how to implement ADSR envelopes!
"A" controls the time to rise from -oo dB to 0 dB.
"D" controls the time to decay from 0 dB to some level determined
by "S".
This level is held while gated and then the envelope decays to -oo dB
for some time determined by "R".
What I don't understand is does the level rise linearly in dB during
the attack phase? At first this does seem reasonable judging from
plots of musical signals. But then we can't start from -oo dB as it
would take forever and ever to reach 0 dB. What then is the initial
level? -96 dB? -144 dB? Now the initial level will affect the slope of
the attack portion quite dramatically so it doesn't seem wise to pick
some point at random.
Of course exactly the same problem occurs during the release portion
of the envelope.
How is this done in practise?
--
Emanuel Landeholm
http://w1.846.telia.com/~u84605054/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Bram De Jong
2002-03-23 09:46:51 UTC
Permalink
Post by Nils Schneider
Any tools available to include that easily?
Coagula and Metasynth
And I'm sure there are more...


B.



dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Alex Prooper
2002-03-23 18:17:04 UTC
Permalink
Post by piter pasma ..ritz
Post by Nils Schneider
Any tools available to include that easily?
i wrote my own quickbasic program to do it, just adding up
a whole heap of sines :)
gives me pretty crappy resolution, and i had to do some
stuff with windowing to prevent aliassing at the discontinuities..
also, my pictures have a *very* discrete resolution on
the frequency axis, while that aphex-face has nice continuous
features.. how'd they do that, anybody any ideas?
I didn't try it myself, but I think some basic fourier synthesis will do.
Post by piter pasma ..ritz
just add up more sines, or would that be a bad idea?
[i have the feeling that they would start to interfere
with eachother if you put them too close frequency-wise,
is that correct?]
- ritz
=====
. piter pasma ....
.. ritz[nd-44-zh] ...
... ritz_rvl(at)yahoo(dot)com ..
.... http://www.ritz.nd-44-zh.net .
Alex Prooper
Epeos Software
Tolstraat 87-IV
1073 RZ Amsterdam
020 - 37 90 670
06 - 21 24 27 50
http://www.xs4all.nl/~alexp


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
joshua reich
2002-03-23 10:14:21 UTC
Permalink
aphex twin has a whole bunch of pretty pictures in his "window licker"
ep.. just have to listen out for them, and have a spectral look..



On Sat, 23 Mar 2002, Bram De Jong wrote:

?
?On Sat, 23 Mar 2002, Nils Schneider wrote:
?> Any tools available to include that easily?
?
?Coagula and Metasynth
?And I'm sure there are more...
?
?
?B.
?
?
?
?dupswapdrop -- the music-dsp mailing list and website: subscription info,
?FAQ, source code archive, list archive, book reviews, dsp links
?http://shoko.calarts.edu/musicdsp/
?
--
joshua reich
i2pi.creative technology
Ph: +61 (0) 3 9415 9557
Mb: +61 (0) 408 355 788


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Nils Schneider
2002-03-23 10:50:04 UTC
Permalink
Yepp, I downloaded the file yesterday and took a look. Very nices ones, I like the picture at the end, although I can't figure out
what the pictures should represent.

Nils

«
--
Music: http://nils_schneider.myownmusic.de/
Studio: http://www.talknet.de/~Nils_Schneider/Studio/My_Gear.html

----- Original Message -----
From: joshua reich <***@i2pi.com>
To: <music-***@shoko.calarts.edu>
Sent: Saturday, March 23, 2002 11:14 AM
Subject: Re: R: [music-dsp] [ot] a puzzle
Post by joshua reich
aphex twin has a whole bunch of pretty pictures in his "window licker"
ep.. just have to listen out for them, and have a spectral look..
?
?> Any tools available to include that easily?
?
?Coagula and Metasynth
?And I'm sure there are more...
?
?
?B.
?
?
?
?dupswapdrop -- the music-dsp mailing list and website: subscription info,
?FAQ, source code archive, list archive, book reviews, dsp links
?http://shoko.calarts.edu/musicdsp/
?
--
joshua reich
i2pi.creative technology
Ph: +61 (0) 3 9415 9557
Mb: +61 (0) 408 355 788
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
piter pasma ..ritz
2002-03-23 17:52:29 UTC
Permalink
Post by Nils Schneider
Any tools available to include that easily?
i wrote my own quickbasic program to do it, just adding up
a whole heap of sines :)

gives me pretty crappy resolution, and i had to do some
stuff with windowing to prevent aliassing at the discontinuities..

also, my pictures have a *very* discrete resolution on
the frequency axis, while that aphex-face has nice continuous
features.. how'd they do that, anybody any ideas?

just add up more sines, or would that be a bad idea?
[i have the feeling that they would start to interfere
with eachother if you put them too close frequency-wise,
is that correct?]

- ritz


=====
. piter pasma ....
.. ritz[nd-44-zh] ...
... ritz_rvl(at)yahoo(dot)com ..
.... http://www.ritz.nd-44-zh.net .

__________________________________________________
Do You Yahoo!?
Yahoo! Movies - coverage of the 74th Academy Awards�
http://movies.yahoo.com/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Michael Bruder
2002-03-23 21:51:22 UTC
Permalink
Post by piter pasma ..ritz
also, my pictures have a *very* discrete resolution on
the frequency axis, while that aphex-face has nice continuous
features.. how'd they do that, anybody any ideas?
Sorry to chime in here...

But - do you have a pic of that for me? I don´t have that record here but I
am seriously interested as I know how it sounds :-)



"Mi3"
www.Mi3.org





dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
piter pasma ..ritz
2002-03-23 22:51:55 UTC
Permalink
Post by Michael Bruder
Post by piter pasma ..ritz
also, my pictures have a *very* discrete resolution on
the frequency axis, while that aphex-face has nice continuous
features.. how'd they do that, anybody any ideas?
Sorry to chime in here...
But - do you have a pic of that for me? I don�t have that record
here but I
am seriously interested as I know how it sounds :-)
the link was posted earlier - http://chaos.yerbox.org/face/

it contains pics of the FFTs and the 9 seconds of .wav that
contain the pic.

- ritz


=====
. piter pasma ....
.. ritz[nd-44-zh] ...
... ritz_rvl(at)yahoo(dot)com ..
.... http://www.ritz.nd-44-zh.net .

__________________________________________________
Do You Yahoo!?
Yahoo! Movies - coverage of the 74th Academy Awards�
http://movies.yahoo.com/

dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Michael Bruder
2002-03-24 12:14:44 UTC
Permalink
Post by piter pasma ..ritz
Post by Michael Bruder
Post by piter pasma ..ritz
also, my pictures have a *very* discrete resolution on
the frequency axis, while that aphex-face has nice continuous
features.. how'd they do that, anybody any ideas?
Sorry to chime in here...
But - do you have a pic of that for me? I don´t have that record
here but I
am seriously interested as I know how it sounds :-)
the link was posted earlier - http://chaos.yerbox.org/face/
it contains pics of the FFTs and the 9 seconds of .wav that
contain the pic.
- ritz
Impressive!!


"Mi3"



dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
Pavel Savygin
2002-03-24 13:56:19 UTC
Permalink
Hello People,


I have question.

Some time ago question about voice extraction from music was
discussing here.

At all, from the first view this is complex task and can not be
solved using simple methods.

May be somebody have practical results?



Music consists of drums, instruments, voice and noise.
As I can understand voice is diffrent from pther components only
by frequency band and dynamics.
So, the first step to extract voice is find out diffrence
between voice dynamics and instruments dynamics.

I need your advises..
--
Best regards,
Pavel mailto:***@vpi-minsk.com



dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
s***@web.de
2002-03-24 15:55:05 UTC
Permalink
Ask me again in 3 Years. I start my PhD in automatic music transcription this summer.

As far as I know there is no method which works perfect. There are several methods used maybe you should have a look at www.qmul.ac.uk.
The DSP research group is doing this kind of work.

T


______________________________________________________________________________
Ohne Risiko spielend zum Börsenguru werden. Haben Sie schon eine
Strategie? Spekulieren und tolle Preis gewinnen http://boersenspiel.web.de


dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/

Loading...