FV-1 Multi effect full forum project ready to go. (ShimmerVerb Also)

Started by Ice-9, September 08, 2013, 09:23:49 AM

Previous topic - Next topic

potul

Quote from: johno9 on December 19, 2017, 07:12:50 PM
New to this thread. Have had no luck finding the main pcb at OSHPark - searched on FV-1, Ice-9, paged thru hundreds of projects.
Is it still available?
Thanks

Where are you from? I have some spare pcbs I will not use. I can send you one or two. If you are in Europe it might be faster than OSHPark.

reichi

I also have 3 pcbs left over. I'm living in germany so you could just drop me a note if you want any, we'll get rest sorted for sure.

Gumer

Hey guys,
I'm trying to get into fv-1s but I ve got confused..
How to upload coded in SpinCad patches to the fv-s? The oryginal way is to use the spin dev board, right?
Is there any other way?

Cheers,
J

potul

Quote from: Gumer on January 18, 2018, 05:53:46 AM
Hey guys,
I'm trying to get into fv-1s but I ve got confused..
How to upload coded in SpinCad patches to the fv-s? The oryginal way is to use the spin dev board, right?
Is there any other way?

Cheers,
J

You need to compile it into an hex file, and then flash it to the memory using your programmer of preference. In my case I use a Pickit2 clone for this.

I think there is a page with some details early in the thread... let me try to find it.

potul

Quote from: potul on January 18, 2018, 08:24:31 AM
Quote from: Gumer on January 18, 2018, 05:53:46 AM
Hey guys,
I'm trying to get into fv-1s but I ve got confused..
How to upload coded in SpinCad patches to the fv-s? The oryginal way is to use the spin dev board, right?
Is there any other way?

Cheers,
J

You need to compile it into an hex file, and then flash it to the memory using your programmer of preference. In my case I use a Pickit2 clone for this.

I think there is a page with some details early in the thread... let me try to find it.

It's in page 5

http://www.diystompboxes.com/smfforum/index.php?topic=104291.80


cliffsp8


Ice-9

Quote from: cliffsp8 on March 18, 2018, 05:10:53 PM
I see PCbs for this are being sold by MEK in Germany

http://uk-electronic.de/onlineshop/product_info.php?products_id=4499

I was never asked if they could sell the PCB but at least they have give credit on the MEK page and linked back to here.

I think I should release a newer version now with some more options as a lot of the info for the original disappeared when I lost photobucket links. I have been thinking about a dual tracker anyway so maybe soon I will look at this as a new projects and make PCB's available.
www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

potul

Didn't you start another thread to discuss about new features of the new version?

Mat

Ice-9

Quote from: potul on April 09, 2018, 05:14:42 AM
Didn't you start another thread to discuss about new features of the new version?

Mat
Yes, that was last year and there didn't seem much uptake on the idea and I also ended up too busy at work so shelved it for a while. This time I'm just thinking of some small updates to improve and add to the basic design. I would also make the PCB's available if needed.
www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

karter2000

Does anyone have the latest version of SpinCAD that they could share?  I tried registering on the Holy City Audio forum, but have not had my account activated.

MetalGuy

I have the following question: since the pedal doesn't have a dedicated Mix control how are the dry and wet signals mixed and how do you set their levels (I guess in software)?

potul

Quote from: MetalGuy on April 12, 2018, 03:39:34 AM
I have the following question: since the pedal doesn't have a dedicated Mix control how are the dry and wet signals mixed and how do you set their levels (I guess in software)?
Yes, software. If you want a hardware mix control you would need to modify the PCB.

Mat

Ice-9

Quote from: MetalGuy on April 12, 2018, 03:39:34 AM
I have the following question: since the pedal doesn't have a dedicated Mix control how are the dry and wet signals mixed and how do you set their levels (I guess in software)?

Yes, the present design mixes the dry signal in the DSP, that is one of the changes I will be changing in the update circuit which will give external dry /wet mix.
www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

MetalGuy

Ok, thanks. So is it an easy tweak like change this and that parameter in an effect (an .spn file?) or it's more complicated?

Ice-9

Quote from: MetalGuy on April 12, 2018, 07:42:00 AM
Ok, thanks. So is it an easy tweak like change this and that parameter in an effect (an .spn file?) or it's more complicated?
That would depend on what .spn file you make or use, all the ones with the original project on this page have a mix control already but if you make your own programs then it would be up to you what you want to use the 3 FV-1 pots for and if one is used as a dry/wet mix or not.Changing the hardware to add a dry/wet mix that keeps the analogue dry outside the FV-1 will free up a pot so that all 3 can be used for effects parameters.
www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

MetalGuy

I'm asking because I would like to program the EPROM with effects of my choice which are already available - I'm not going to make any.
For example if I want to use the effects from the SpinSemi 16_24 project in this forum project/pedal I'll need some mixing because currently the FV-1 outputs the wet signal only.

Ice-9

Quote from: MetalGuy on April 12, 2018, 03:17:09 PM
I'm asking because I would like to program the EPROM with effects of my choice which are already available - I'm not going to make any.
For example if I want to use the effects from the SpinSemi 16_24 project in this forum project/pedal I'll need some mixing because currently the FV-1 outputs the wet signal only.

Correct in a way, the FV-1 can output both wet and dry in this project pedal, it is the software program that dictates what the output will be. IIRC the 16_24 programs on the Spin site are wet only and also have no user control for any parameters anyway. So if you want to use ANY program that has wet only in the code then you will need to use an external dry mix in the circuit.

www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

MetalGuy

Quote...it is the software program that dictates what the output will be.

Let's be more specific. Which line/s in the spn file exactly determine that? Let's take for example the Hall effect. Is this the section below the ";now combine initial sound with reverb out to DACs:" or else?

;Hall program for A16_24 progam set.
;variables written as byte values to:

;reg0 = predelay (0-127)
;reg1 = RT (0-127)
;reg2 = damping (0-127)

mem   pdel   3276
mem   tdel   7000

mem   ap1   273
mem   ap2   436
mem   ap3   767
mem   ap4   991

mem   tap1   245
mem   tap2   458

mem   lap1a   1078
mem   lap1b   1287
mem   lap1c   2241
mem   d1   2336
mem   lap2a   968
mem   lap2b   1367
mem   lap2c   2067
mem   d2   2391

;declare registers:

equ   del   reg0
equ   krt   reg1
equ   kd   reg2
equ   pout   reg3
equ   apout   reg4
equ   temp   reg5

;read-first registers:

equ   lp1   reg20
equ   lp2   reg21
equ   hp1   reg22
equ   hp2   reg23
equ   tlp   reg24

;mandatory first 6 lines:

or   %00000000_00000000_00000000
wrax   reg0,0
or   %01000000_00000000_00000000
wrax   reg1,0
or   %00100000_00000000_00000000
wrax   reg2,0

;program:

;first clear read-first registers:

skp   run,endclr
wrax   lp1,0
wrax   lp2,0
wrax   hp1,0
wrax   hp2,0
wrax   tlp,0
endclr:

;calculate an address pointer for predelay:

rdax   del,0.1      ;limit to 1/10th of space
wrax   addr_ptr,0

;feed inputs to predelay:

rdax   adcl,0.25
rdax   adcr,0.25   ;leave headroom
wra   pdel,0      ;write to predelay

;read predelay output and write to tdel input:

rmpa   1
wra   tdel,1      ;pass through   

;now do reverb:

rda   ap1#,0.5
wrap   ap1,-0.5
rda   ap2#,0.5
wrap   ap2,-0.5
rda   ap3#,0.5
wrap   ap3,-0.5
rda   ap4#,0.5
wrap   ap4,-0.5
wrax   apout,0

rda   d2#,1      ;read last delay output
mulx   krt      ;scale by Krt
rdax   apout,1      ;read apout
rda   lap1a#,0.5   ;do loop all passes
wrap   lap1a,-0.5
rda   lap1b#,-0.5
wrap   lap1b,0.5
rda   lap1c#,0.5
wrap   lap1c,-0.5
rdfx   hp1,0.02   ;high pass filter (fixed)
wrhx   hp1,-0.5
wrax   temp,-1      ;write to temp (for shelving LP)
rdfx   lp1,0.5      ;do the LP as a HP
wrhx   lp1,-1
mulx   kd      ;kd is a shelf (neg number)
rdax   temp,1      ;add filter input
wra   d1,0      ;write to next delay input

rda   d1#,-1
mulx   krt
rdax   apout,1
rda   lap2a#,0.5
wrap   lap2a,-0.5
rda   lap2b#,0.5
wrap   lap2b,-0.5
rda   lap2c#,-0.5
wrap   lap2c,0.5
rdfx   hp2,0.02
wrhx   hp2,-0.5
wrax   temp,-1
rdfx   lp2,0.5
wrhx   lp2,-1
mulx   kd
rdax   temp,1
wra   d2,0

;do all passes within tdel, and filter tdel input:

rda   tdel+100,1
rda   tap1#,0.5
wrap   tap1,-0.5
wrax   temp,1
rdfx   tlp,0.1
wrhx   tlp,-1
mulx   kd
rdax   temp,1
wra   tdel+101,0

rda   tdel+1000,1
rda   tap2#,0.5
wrap   tap2,-0.5
wra   tdel+1001,0

;now combine initial sound with reverb out to DACs:

rda   tdel+2701,0.5
rda   tdel+2256,0.8
rda   tdel+3409,0.8
rda   tdel+4100,0.7
rda   d1,1.5
wrax   dacl,0

rda   tdel+2800,0.5
rda   tdel+2256,0.6
rda   tdel+3047,0.8
rda   tdel+4100,0.9
rda   d2,1.5
wrax   dacr,0

;finally, put 'air' in lap(x)c elements:

skp   run,1
wlds   sin0,20,100

cho   rda,sin0,sin|reg|compc,lap1c+100
cho   rda,sin0,sin,lap1c+101
wra   lap1c+200,0

cho   rda,sin0,cos|reg|compc,lap2c+100
cho   rda,sin0,cos,lap2c+101
wra   lap2c+200,0

Ice-9

Those programs for the micro processor based project on the spin site differ and would need some edits to work correctly with any other Fv-1 project that does not use the specific microcontroller and code in that Spin website circuit. There is no real time control of the parameters in that example, all the parameters are set in the microcontroller code and poked into the FV-1 program.

Look at the lines in the FV-1 code and the corresponding code for the microcontroller for how that works. The area you need to lok at in the code example you have posted are these.


;reg0 = predelay (0-127)
;reg1 = RT (0-127)
;reg2 = damping (0-127)

;mandatory first 6 lines:

or   %00000000_00000000_00000000
wrax   reg0,0
or   %01000000_00000000_00000000
wrax   reg1,0
or   %00100000_00000000_00000000
wrax   reg2,0



Obviosly this program has no dry signal so you would have to add it in the code or add a seperate dry circuit mix to your own PCB. I have seen you have managed to get your microprocessor programmed now and for that project you should use the Spinsemi website documents as the schematic for that pedal is all there IIRC.

If on the other hand you want to use manual control for the parameters and no microprocessor you will need to edit the program to replace the code around reg0, reg1, reg2 and the mandatory lines to use the pots instead. NOTE- All three parameters are for effects settings so you would still need a seperate dry mix to keep all 3 other parameters.

The A16_24 program set is not really suitable for this forum project pedal without editing the code to suit.

I hope I understood correctly what you have asked.  :)





www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

MetalGuy

Thanks for your answers.
Since I don't want to dive too deep into changing code let's take a "standalone" effect from the 3k project for example:

;Hall.

;Pot0 = predelay 0-100ms.
;Pot1 = reverb time
;Pot2 = damping

mem    pdel    3277    ;100ms predelay space

mem    idel    8000    ;initial sound space

mem    iap0    31
mem    iap1    47
mem    iap2    73
mem    iap3    171
mem    iap4    196
mem    iap5    371
mem    iap6    496    ;thickening all passes imbeded in intial delay

mem    ap1    234
mem    ap2    356
mem    ap3    962
mem    ap4    1263    ;reverb loop input all passes

mem    lap1a    1921
mem    lap1b    2645
mem    d1    3534
mem    lap2a    2294
mem    lap2b    2767
mem    d2    3745    ;loop constants

;write-first registers:

equ    kirt    reg0    ;coefficint to scale initial sound
equ    krt    reg1    ;coefficient to affect RT of loop
equ    apout    reg2    ;output of loop input all passes
equ    kd    reg3    ;damping coefficient (for shelving)
equ    temp    reg4    ;temp register for filter routines
equ    gain    reg5    ;adjust gain with RT

;read-first registers:

equ    lf1    reg20    ;reverb loop filter 1
equ    lf2    reg21    ;reverb loop filter 2
equ    hf1    reg22    ;loop high pass 1 (fixed)
equ    hf2    reg23    ;loop high pass 2 (fixed)
equ    lfin2    reg25    ;LPF for imbedding in intial delay
equ    lf    reg26    ;input low pass (shelving with kd)

;clear read-first registers, setup lfo:

skp    run,endclr
wrax    lf1,0
wrax    lf2,0
wrax    hf1,0
wrax    hf2,0
wrax    lfin2,0
wlds    sin0,20,100
endclr:

;initial sound tap positions (30.5uS/location, 100=3.05mS):

equ    ld1    2074    ;first tap, left
equ    rd1    2174    ;first tap, right
equ    ld2    3556    ;and so on...
equ    rd2    3962
equ    ld3    3345
equ    rd3    3121
equ    ld4    3656
equ    rd4    3453
equ    ld5    5121
equ    rd5    5624
equ    ld6    6579
equ    rd6    7940

;prepare predelay pot:

rdax    pot0,0.1        ;to 1/10th total delay (100ms)
and    %01111110_00000000_00000000
wrax    addr_ptr,0        ;write to memory pointer

;prepare decay pot:

rdax    pot1,0.97        ;get pot, limit to less than infinite
wrax    krt,1            ;write loop decay time
sof    0.4,0.6            ;scale to 0.6 to 1.0
wrax    kirt,0            ;write impulse filter gains
sof    -1,0.99            ;scale to decrease gain with RT
wrax    gain,0            ;write gain factor

;prepare damping pot:

rdax    pot2,-1
wrax    kd,0            ;increases shelf to -1 (infinite loss)

;do inputs to predelay:

rdax    adcl,0.5
rdax    adcr,0.5        ;get inputs
mulx    gain            ;give greater gain to short RT
wra    pdel,0

;read predelay and write initial response delay:

rmpa    1
rda    iap0#,0.5
wrap    iap0,-0.5        ;complicate input to initial delay
wrax    temp,1
rdfx    lf,0.4
wrhx    lf,-1
mulx    kd
rdax    temp,1            ;low pass fiter entire input
wra    idel,0            ;write initial sound delay

;complicate initial sound:

rda    idel+500,1
rda    iap1#,0.5
wrap    iap1,-0.5
wra    idel+500,0

rda    idel+1000,1
rda    iap2#,0.5
wrap    iap2,-0.5
wra    idel+1000,0

rda    idel+1500,1
rda    iap3#,0.5
wrap    iap3,-0.5
wra    idel+1500,0

rda    idel+2000,1
rda    iap4#,0.5
wrap    iap4,-0.5
wra    idel+2000,0

rda    idel+2500,1
rda    iap5#,0.5
wrap    iap5,-0.5
wrax    temp,1            ;save filter input
rdfx    lfin2,0.3
wrhx    lfin2,-1        ;make HP filter
mulx    kd            ;multiply by negative shelving coef
rdax    temp,1            ;add back input (shelving LPF)
wra    idel+2500,0

rda    idel+3000,1
rda    iap6#,0.5
wrap    iap6,-0.5
wra    idel+3000,0

;do reverb input all passes:

rda    idel,1
rda    ap1#,0.5
wrap    ap1,-0.5
rda    ap2#,0.5
wrap    ap2,-0.5
rda    ap3#,0.5
wrap    ap3,-0.5
rda    ap4#,0.5
wrap    ap4,-0.5
wrax    apout,0

;do reverb loop and sum all outputs:

rda    d2#,1
mulx    krt
rdax    apout,1
rda    lap1a#,0.5
wrap    lap1a,-0.5
rda    lap1b#,0.5
wrap    lap1b,-0.5
wrax    temp,1            ;save filter input
rdfx    lf1,0.4
wrhx    lf1,-1            ;make HP filter
mulx    kd            ;multiply by negative shelving coef
rdax    temp,1            ;add back input (shelving LPF)
rdfx    hf1,0.005
wrhx    hf1,-0.5        ;roll out lows in loop
wra    d1,1.99

rda    idel+ld6,-0.5
mulx    kirt
rda    idel+ld5,0.7
mulx    kirt
rda    idel+ld4,0.6
mulx    kirt
rda    idel+ld3,0.5
mulx    kirt
rda    idel+ld2,0.6
rda    idel+ld1,-0.6
wrax    dacl,0

rda    d1#,1
mulx    krt
rdax    apout,1
rda    lap2a#,0.5
wrap    lap2a,-0.5
rda    lap2b#,0.5
wrap    lap2b,-0.5
wrax    temp,1           
rdfx    lf2,0.4
wrhx    lf2,-1           
mulx    kd           
rdax    temp,1   
rdfx    hf2,0.005
wrhx    hf2,-0.5               
wra    d2,1.99

rda    idel+rd6,0.6
mulx    kirt
rda    idel+rd5,-0.5
mulx    kirt
rda    idel+rd4,0.6
mulx    kirt
rda    idel+rd3,0.5
mulx    kirt
rda    idel+rd2,-0.6
rda    idel+rd1,0.5
wrax    dacr,0

;do delay smoothing:

cho    rda,sin0,sin|reg|compc,d1+100
cho    rda,sin0,sin,d1+101
wra    d1+200,0

cho    rda,sin0,cos|reg|compc,d1+100
cho    rda,sin0,cos,d1+101
wra    d1+200,0

Which parameters are to be changed in order to get different levels of mix (no external pot for Mix)?