Oscillator, about wavetable size and interpolation

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Concretefx wrote:Hi there

As I said in the previous post,I've created CrossSynth , a small synth which explores cross synthesis, you can download it at http://www.concretefx.com/CrossSynth.zip

to recap cross-synthesis is where

y1 = cos (t + f. y2)
y2 = sin (t + g. y1)

where f,g are the feedback paramaters

CrossSynth is a polythonic synth, where you can try different values of these feedback parameters. These parameters are also modulated by 2 LFO's. CrossSynth also has a adr envelope, lowpass resonant filter with release, portamento, vibrato/tremelo, stereo widening and chorus / delay effects

Any ideas, feedback etc always welcome

Cheers

Jon : ConcreteFX
please develop this one further! It sounds amazingly
erm.. 'warm' (and everyone 'round here knows what this means :hihi: - even if we don't mean the same thing :oops: ) but it tends to distort a bit too much - anyway: Very prmising from a musician's point of view! :D :hail:
"Preamps have literally one job: when you turn up the gain, it gets louder." Jamcat, talking about presmp-emulation plugins.

Post

I don't know exactly, but the term "cross synthesis" describes already a completely different synthesis form (Inverse FFT (resynthesis) with cross modulation of the magnitudes of the carrier signal thru a modulator signal)

Is that, what your plugin does, Concretefx ?

:?:
Last edited by blümchen on Wed Mar 10, 2004 12:45 am, edited 1 time in total.

Post

agent 007 wrote:I don't know exactly, but the term "cross synthesis" describes already a completely different synthesis form (Reverse FFT (resynthesis) with cross modulation of the magnitudes of the carrier signal thru a modulator signal)

Is that, what your plugin does, Concretefx ?

:?:
he didn't write it's doing cross-synthesis :wink:

edited: :oops: - yes, he did... :oops:
"Preamps have literally one job: when you turn up the gain, it gets louder." Jamcat, talking about presmp-emulation plugins.

Post

What?

You exacly quotet his description. There he writes:
cross synthesis (twice)...

This question was not intended to doubt anything. I only wanted to know it exaclty, before I download it...

:!:
Last edited by blümchen on Wed Mar 10, 2004 12:24 am, edited 1 time in total.

Post

agent 007 wrote:What?

You exacly quotet his description. There he writes:
cross synthesis (twice)...

I only wanted to know it exaclty, before I download it...

:!:
yes, I allready corrected myself :oops: - I'm
a bit tired now and read completely over this term
- time to go to bed now I suppose :roll:
"Preamps have literally one job: when you turn up the gain, it gets louder." Jamcat, talking about presmp-emulation plugins.

Post

If so, have a nice sleep!
And don't masturbate, this makes ill...

:lol:

Post

agent 007 wrote:And don't masturbate, this makes ill...
No, it "makes warm"

(and everyone 'round here knows what this means :hihi: - even if we don't mean the same thing :oops: )

Post

I swear I never did it even once in my life :oops:






:hihi:


and thanks! :)
"Preamps have literally one job: when you turn up the gain, it gets louder." Jamcat, talking about presmp-emulation plugins.

Post

pough wrote:
agent 007 wrote:And don't masturbate, this makes ill...
No, it "makes warm"
and "wet" which is another great analogue term, alongside "knob", and "tactile", and the all important sustain/release, which reminds me....
Someone shot the food. Remember: don't shoot food!

Post

Hi there

Looking back at Big Tick's post, I really should have said that CrossSynth uses cross-modulation synthesis to create sounds.

Looking at I was pleasently surprised at the range of sound you can get from a relatively simple synthesis method, I'll have to have a look into creating something more professional from this

Cheers

Jon : ConcreteFX

Post

Hey, I implemented this method last night.

Took me about an hour to have the following oscillators to choose from in my synth:

sine->sawtooth
pwm pulse
sawtooth->pulse

all with fm and sync (that I don't want to use because it's not antialiased anyway).

The one kind of phase-feedback-modulation I could not get to do anything exciting was the cross-feedback thingy. I must be doing something really stupid:

y1 = cos(currentPhase + lastY2*feedback);
y2 = sin(currentPhase + lastY1*feedback);
lastY1 = y1;
lastY2 = y2;
out = y2;

when fiddling around with the feedbacks etc all I got was ordinary fm-ish stuff. Am I doing something wrong or is this as interesting as it gets? :)
Stefan H Singer
Musician, coder and co-founder of We made you look Web agency

Post

Hi there

My cross-synthesis did something slightly different
instead of

y1 = cos(currentPhase + lastY2*feedback);
y2 = sin(currentPhase + lastY1*feedback);

I did

y1 = cos(currentPhase + lastY2*feedback1);
y2 = sin(currentPhase + Y1*feedback2);

so y2 is modulated by the current version of y1. Also I used two different feedback factors and these where modulated over time

Cheers

Jon : ConcreteFX

Post

Concretefx wrote:Hi there

The cross modulation is interesting , if you expand it from

y1 = cos (t + f. y2)
y2 = sin (t + f. y1)

to

y1 = cos (t + f. y2)
y2 = sin (t + g. y1)

where f and g are the feedback parameters. Using different values of f and g gives some interesting chaotic wavesforms .

Also you can alter the f and g over time , say as a simple example f,g at any timer are

f = MaxF . sin(2pi.PerF.t)
g = MaxG . cos(2pi.PerG.t)

Where MaxF & MaxG are the maximum values and PerF & PerG as the period then you can create interesting modulated sounds

I'll have a futher play around with this and see what I can come up with

Cheers

Jon : ConcreteFX
And what can I do with Y1 and Y2 ???
output =??? (Y1+Y2???)
Thanks.

Post

Hi there

In Crosssynth I've just output y2 , then passed it through a low filter and an envelope , but you could have a mixer wher you alter how much of y1/y2 is output

Cheers

Jon

Post

@ConcreteFX:
What about mixing it with AM (as an option):

Code: Select all

y1 = cos(currentPhase + lastY2*feedback1); 
y2 = sin(currentPhase) * Y1; 

Post Reply

Return to “DSP and Plugin Development”