Electronic Music mailing list archives - Impala Utopia

Apr 7, 2005 - Electronic Music mailing list archives. Navigation: home » musicdsp » 2004 » 09 » [music-dsp] Re: Casio Phase Distortion, was Triangle wave.
60KB taille 10 téléchargements 320 vues
Electronic Music Mailing List Archives: musicdsp - [music-dsp] R...

http://elists.resynthesize.com/musicdsp/2004/09/840232/

Electronic Music mailing list archives Navigation: home » musicdsp » 2004 » 09 » [music-dsp] Re: Casio Phase Distortion, was Triangle wave Search: musicdsp Numbers!]

go

[advanced search]

[check out this awesome FREE album by Paint By

Previous Message: [music-dsp] Ooh! Next Message: [music-dsp] G.729

From: music-dsp ( [EMAIL REMOVED] ) Date: Sep 29, 2004 Subject: [music-dsp] Re: Casio Phase Distortion, was Triangle wave Casio's implementation of phase distortion is based on this.... out sin( dist( phase,

ENV ));

(where phase = f1 * t) i.e the new phase is a function of both phase and envelope. This gives a more controllable 'morphing' between the pure sine wave, and the fully distorted wave. // for a sawtooth . //( phase must be restricted to the range 0.0 - 2*PI) float dist( float phase, float modulation_depth ) { float new_phase; float breakpoint = ( 1 - modulation_depth ) * PI / 2; // piecewise function in 3 linear sections if( phase < breakpoint ) { new_phase = (PI / 2) * phase / breakpoint; } else { if ( phase < (2* PI - breakpoint ) ) { new_phase = (phase-breakpoint)/(2*(PI-breakpoint)) * PI + PI/2; } else { new_phase = 2 * PI + (PI /2) * (phase - 2*PI ) / breakpoint; } } return new_phase; } Apologies if any error in the above, my actual code is heavily optimised, so I simplified it. You can modify the dist() function to produce square waves etc. Regards, Jeff M

Maciej Bartkowiak wrote > > I believe the formula might be

1 sur 2

4/07/05 12:13

Electronic Music Mailing List Archives: musicdsp - [music-dsp] R...

> > > > > > > >

http://elists.resynthesize.com/musicdsp/2004/09/840232/

out sin ( dist ( ENV * ( f1 * t ) % (2 * PI)) out sin(f1 * t + ENV * dist( ( f1 * t ) % (2 * PI))) where dist() is the distortion function, and % is a modulo operator. I don't know the actual implementation in CASIO synths, though.

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/

+[music-dsp] Triangle wave [email protected] (music-dsp (09/29/04) +---[music-dsp] Triangle wave music-dsp (09/29/04) +------[music-dsp] Triangle wave Jon Watte (09/29/04) +---------[music-dsp] Triangle wave music-dsp (09/29/04) +------------[music-dsp] Triangle wave Jon Watte (09/29/04) +------------[music-dsp] Triangle wave music-dsp (09/29/04) +---------------[music-dsp] Triangle wave music-dsp (09/29/04) +------------------[music-dsp] Triangle wave music-dsp (09/29/04) +---------------------[music-dsp] Triangle wave music-dsp (09/29/04) +------------------[music-dsp] Re: Casio Phase Distortion, was Triangle wave music-dsp (09/29/04) +---[music-dsp] Triangle wave music-dsp (09/29/04) Previous Message: [music-dsp] Ooh! Next Message: [music-dsp] G.729

Today's Messages | RSS Feeds | Random Archive Links New! | 28 lists, 1222491 messages | About/Contact

2 sur 2

4/07/05 12:13