Synth

Algorithm development and general DSP issues

Moderator: frank

Alex MAK
Posts: 89
Joined: Fri Nov 05, 2010 1:00 pm

Post by Alex MAK »

To FV-1 can make a synth? How is this possible to implement?
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post by frank »

Alex MAK wrote:To FV-1 can make a synth? How is this possible to implement?
That is a very general question, you need to be a bit more specific in what you want and it should be a different thread. (Split from harmonizer thread)
Last edited by frank on Tue Nov 23, 2010 4:37 pm, edited 1 time in total.
Frank Thomson
Experimental Noize
Alex MAK
Posts: 89
Joined: Fri Nov 05, 2010 1:00 pm

Post by Alex MAK »

Well, let's say, I would like 8-bit synth. Or fuzz + octave up:)
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post by frank »

Alex MAK wrote:Well, let's say, I would like 8-bit synth. Or fuzz + octave up:)
Still too generic, define "synth". 1 voice? Filters? Waveforms? Controls? Need lots more info to even start on this...
Frank Thomson
Experimental Noize
Alex MAK
Posts: 89
Joined: Fri Nov 05, 2010 1:00 pm

Post by Alex MAK »

To start planning to make on the basis of the following codes:

equ s reg10
equ c reg11
equ freq reg12
;
skp run,start
clr ; Clear ACC
wrax s,0 ; Write 0 to sin reg
sof 0,0.5 ; 0.5 -> ACC
wrax c,0 ; Write 0.5 to cos reg
;
start:
;
clr
rdax pot0, 0.05 ; Read pot 0, scale to adjust max speed
wrax freq, 0 ; Save the freq coefficient
;
; Do the SIN calculation
rdax c, 1.0 ; COS -> ACC
mulx freq ; COS*fcoeff
rdax s, 1.0 ; +SIN
wrax s,0 ; Write it back
;
; Do the COS calculation, -SIN in ACC
rdax s, -1.0
mulx freq
rdax c, 1.0
wrax c, 0
;
; Modulate the inputs and write them to the DACs
ldax adcl
mulx s
wrax dacl,0
ldax adcr
mulx s
wrax dacr,0

Add 1 up an octave and volume knob clean signal.

Next will probably be experimenting with envelopom and bitkrasherom. I'm new in the work with FV-1, and software tools. I want to sort this out ready code and your help. I hope for your patience and willingness to help the beginner. Thank you!
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post by frank »

I like to help people with code but really helps me if I have an idea of what you want in the final code. Like what each POT does, etc. Looks like you are doing a s/w LFO and mixing it with the audio in, so what do you want to do with the result?
Frank Thomson
Experimental Noize
Alex MAK
Posts: 89
Joined: Fri Nov 05, 2010 1:00 pm

Post by Alex MAK »

Ok . I articulate the wishes and soon will turn to the specific wishes of what I want from the code :)
Plantiforge
Posts: 2
Joined: Fri Mar 18, 2011 3:07 am

Post by Plantiforge »

Hi people, I'm realy new to analogue DIY and I discovered the fv-1 at Tonepad. Here's a realy nice place I think, I discovered it some days ago and now my brain is full of misty-newbie algorithms sketches :). For the moment I only have school maths and Basic programming so I planed to fall into "chip things" with the help of a teacher in real life.

Such a thread has to reborn, skilled mates and gurus ! Digital things like wavetable VCOs, grains, clouds and sampled waveforms are too delicious beside some Moog and Steiner tones !

Here's my project : a simple VCO with different programs to generate "digital" waveforms. Inputs 1 reads pitch DC and input 2 is a VC input .
Each program could have different synthesis algorithms designed around the three controls. Some things I realy love to have one day :

_ Pot0: select waveformA | Pot1: split point | Pot2: select waveB
the split point could be the moment in the wavecycle where the osc switches from wave A to B. With pot1 centered, the waveform is splitted in two half periods. A variant could be pot1 : mix A/B (less fun classic:)

_ A kind of "slope" oscillator, where you can shape angles and beziers of the waveform ( this is the misty one:)

_ I love the idea of binary or lofi waves (11110000 for square, 10110111 for... I don't know ; or the 0123456789 ramp)

_ random things

_ FM things : with three pots it could be hard to deal with but with some program variants, I'm sure there's a lot of fun there (like in Elektron drummachines). From the two modulating sines to :
pot0: mod amount | pot1: pitch ratio | pot2: number of chained sinewaves
pot0: mod amount | pot1: pitch ratio | pot2: detune chained sinewaves...

These things aren't new but I dream to have them in a chip and definitively forget laptop synthesis :roll:
Synth topics are rare, so I wonder if the FV-1 can do this kind of calculation even if she looks really powerfull (play several waves simultaneously at audio rates and mix them, or a lagless response to pitch DC from audioIN) I'm sure she cans, so do I ? Not for now
I'm just looking for a little more motivation to dive into studying fv1 seriously, thanks for any advice .
I kept this for the end : sorry for my english, I live in a country where english speaking is seen as an out-of-reach an useless skill yet :oops: I've tried my best.
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post by frank »

Well, the FV-1 is ok for generating sine or square or triangle waves but it is not a synth engine so it would not do well on wavetable or really complex waveform generation. Synth engines are a different architecture (I've designed some of these in the past as well) than the FV-1 so you will find it very limiting.

If you want to make an audio generator for testing or just to play with the basics of creating waveforms from basic algorithms then the FV-1 is a great tool. I use it all the time to create an audio band sine wave to debug a circuit, etc.
Frank Thomson
Experimental Noize
soundsubs
Posts: 24
Joined: Fri Feb 25, 2011 11:49 am

Post by soundsubs »

i (obviously) want to see this as well.

lets try this a different way... has anyone been able to make any waveforms besides Saw, Square, Sin, and Triangle?

how about a simple noise waveform? perhaps using modulus or random numbers?
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post by frank »

The answer to this is:

If you can define an equation or simple recursive algorithm that generates the waveform then it may be possible to program the FV-1 to generate the waveform.

If you cannot define an equation/algorithm to define the waveform then the FV-1 probably can not generate the waveform.

Noise is a special case, while the FV-1 does not have a random number generator the last few bits in a sample tend to be random due to noise in the surrounding circuit, power supply, etc. so take the last few bits and amp them up to the level you need.
Frank Thomson
Experimental Noize
seancostello
Posts: 74
Joined: Mon Sep 11, 2006 10:04 pm

Post by seancostello »

frank wrote: Noise is a special case, while the FV-1 does not have a random number generator the last few bits in a sample tend to be random due to noise in the surrounding circuit, power supply, etc. so take the last few bits and amp them up to the level you need.
Do you have any example code for this, Frank?

Thanks,

Sean Costello
peterv
Posts: 17
Joined: Fri Nov 20, 2009 3:43 am
Location: Netherlands
Contact:

Post by peterv »

seancostello wrote:
frank wrote: Noise is a special case, while the FV-1 does not have a random number generator the last few bits in a sample tend to be random due to noise in the surrounding circuit, power supply, etc. so take the last few bits and amp them up to the level you need.
Do you have any example code for this, Frank?

Thanks,

Sean Costello
Would like to know this also! Could possible get rid of my out-board random generator solution. Thanks. Piet
slacker
Posts: 116
Joined: Tue Feb 01, 2011 1:13 pm

Post by slacker »

I think this is what Frank meant. It gives you 8 bit "white noise", you can change the AND mask to give more or less bits ie: and %000000000000000000001111 would be 4 bit. I haven't experimented to see what the maximum number of bits you can use is before it stops being noise.

Code: Select all

rdax adcl,1 ;read left input

and %000000000000000011111111 ;zero the top 16 bits leaving just the bottom 8 bits

; apply loads of amplification
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0

wrax dacl,0 ;write to left output
seancostello
Posts: 74
Joined: Mon Sep 11, 2006 10:04 pm

Post by seancostello »

slacker wrote:I think this is what Frank meant. It gives you 8 bit "white noise", you can change the AND mask to give more or less bits ie: and %000000000000000000001111 would be 4 bit. I haven't experimented to see what the maximum number of bits you can use is before it stops being noise.

Code: Select all

rdax adcl,1 ;read left input

and %000000000000000011111111 ;zero the top 16 bits leaving just the bottom 8 bits

; apply loads of amplification
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0
sof 1.99,0

wrax dacl,0 ;write to left output
Thanks for that! However, the amplification factors seem like they eat up a lot of cycles (and are obviously necessary for audio level noise). Would there be some other form of noise generation that might have more bits, and take less cycles?

Thanks,

Sean Costello
Post Reply