MN3011 Block in SpinCad Help.

Started by carvindc125, November 23, 2021, 11:04:37 AM

Previous topic - Next topic

Ice-9

Quote from: Digital Larry on December 03, 2021, 12:15:11 PM
Quote from: potul on November 25, 2021, 02:38:19 AM
The only concern I have is that the memory used doesn't match with the ms of delay you posted (at the standard sampling freq). The spincad version seems to have a longer delay. It's easy to adjust, you just need to calculate the memory locations for each tap based on the sampling frequency and modify each RDA instruction.


Are you guys saying that the taps are in the wrong proportion?  Sorry I didn't go through all the calculations.



Not at all Larry. I just took a look at the SpinCad block for the MN3011 and if you set the max delay for tap6 at about 166ms all the other taps work out correct. :) so all looks good.
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

Quote from: Digital Larry on December 03, 2021, 12:15:11 PM

Are you guys saying that the taps are in the wrong proportion?  Sorry I didn't go through all the calculations.


Hi Larry, I didn't check in SpinCAD itself, but looking at the code the OP posted, the taps where not in the right position. Probably he did not select the max delay to match the MN3001.

carvindc125


Quote from: potul on November 25, 2021, 02:38:19 AM
You only need to add a couple of read instructions further on the RAM space.
Here you have it, I haven't tried it, so you will need to test.


;
; ----------------------------
;------ Input
;------ Feedback Output
;------ MN3011
RDAX REG0,0.5000000000 ;feedback register
RDAX ADCL,0.5000000000 ;read input left
WRA 0,0.0 ;write to head of delay

RDA 932,0.5 ;read tap1 at 0.5
RDA 2812,0.3981071705534972 ;read tap3 at .39
RDA 6571,0.22387211385683395 ;read tap 5 at 0.22
RDA 1559,0.31622776601683794 ;read tap2 at 0.31
RDA 4065,0.28183829312644537 ;read tap4 at 0.28
RDA 7839,0.28183829312644537 ;read tap6 at .28
RDA 8972,0.28183829312644537 ;read tap7 at .28

WRAX REG1,0.0000000000 ;write to reg1 for feedback and clear the acc

RDA 932,0.5 ;read tap1 at 0.5
RDA 2812,0.3981071705534972 ;read tap3 at .39
RDA 6571,0.22387211385683395 ;read tap 5 at 0.22
RDA 8972,0.28183829312644537 ;read tap7 at .28
WRAX REG2,0.0000000000 ;write to reg2


RDA 1559,0.31622776601683794 ;read tap2 at 0.31
RDA 4065,0.28183829312644537 ;read tap4 at 0.28
RDA 7839,0.28183829312644537 ;read tap6 at .28

WRAX REG3,0.0000000000 ;write to reg2

;------ FB In 1
RDAX REG1,1.0000000000 ;read tap 6 for feedback and keep in acc
WRAX REG0,0.0000000000 ;read actual feedback register, clear acc
;------ Output
RDAX REG2,1.0000000000 ;read all taps and keep in acc
WRAX DACR,0.0000000000 ;write to dacR and clear acc
RDAX REG3,1.0000000000 ;read all taps and keep in acc
WRAX DACL,0.0000000000 ;write to dacl and clear acc


The only concern I have is that the memory used doesn't match with the ms of delay you posted (at the standard sampling freq). The spincad version seems to have a longer delay. It's easy to adjust, you just need to calculate the memory locations for each tap based on the sampling frequency and modify each RDA instruction.
Quote from: Digital Larry on December 03, 2021, 12:15:11 PM
Quote from: potul on November 25, 2021, 02:38:19 AM
The only concern I have is that the memory used doesn't match with the ms of delay you posted (at the standard sampling freq). The spincad version seems to have a longer delay. It's easy to adjust, you just need to calculate the memory locations for each tap based on the sampling frequency and modify each RDA instruction.
At the time I came up with the MN3011 block, I thought that the relative spacing of the taps was in line with that chip.  By default all delays drop into SpinCAD allocating all the delay RAM, so to get a real MN3011 you'd adjust the max delay to "whatever it is".  Also keep in mind that that's all this is, and there is no aliasing or lowpassing or noise injection or anything.  It's an idealized digital version of an MN3011 with up to 1000 msec of delay at full bandwidth.  And it's mono-out only.

Are you guys saying that the taps are in the wrong proportion?  Sorry I didn't go through all the calculations.

The other point worth mentioning here is that indeed, a multi-tap delay is one of the simplest things you can implement in Spin ASM, so it's a useful exercise in any case.  I'm pretty sure the SpinCAD implementation looks relatively bizarre due to its need to be pot-scalable and relocatable.
So Digital Larry The above code is essentially a digitized MN3011 and now is in Stereo?
If so that is AWESOME!

Ice-9

#23
Deleted post, sorry error in posting.
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.

carlozsulca

Quote from: carvindc125 on November 23, 2021, 11:04:37 AM
Greetings!
I am currently working with a couple of brilliant gents on a project to modernize and bring back the Rockman X100.
We've been on the project over a year now and it is coming along quite nicely. While diving in to the circuitry we realized very quickly that the old MN3011 BBD chip it uses for reverb was not going to be practical to source. They are too expensive and nearly impossible to find.
So we began looking at digital options. Although I believe we have honed in on a couple ideas for our final echo design I discovered in a happy accident one day that spinCAD has a MN3011 block! The FV-1 can easily reproduce the chips characteristics however in another conversation Digital Larry brought up the block needs to be slightly redesigned. The 6 taps are summed together when it should be alternating taps summed to two outs. 1,3, and 5 to Out1 and 2,4and 6 to Out2
I don't know enough of the actual code to edit this but Digital Larry was kind enough to post the original code of the MN3011 in spincad.
Is there anyone here who can edit this so the taps are summed as Tap 1, Tap 3, Tap 5 summed to one output and tap 2, Tap 4, and Tap 6 summed to a second output.
Quote and code from Digital Larry below.
Quote from: Digital Larry on April 03, 2021, 05:42:51 AM
...Now that I look at it though I realize that the MN3011 block I designed is a little silly in that I mix all taps to a single output.  All this time and nobody ever said anything about it.  That is easy enough to change even manually.

I've used the MN3011 block as a reverb in more complex patches.  Unless you are playing really isolated guitar notes, to my ear, you can get away with a really simple implementation in many cases.

;
; ----------------------------
;------ Input
;------ Feedback Output
;------ MN3011
RDAX REG0,0.5000000000
RDAX ADCL,0.5000000000
WRA 0,0.0
RDA 7839,1.0
WRAX REG1,0.0000000000
RDA 7839,0.28183829312644537
RDA 932,0.5
RDA 1559,0.31622776601683794
RDA 2812,0.3981071705534972
RDA 4065,0.28183829312644537
RDA 6571,0.22387211385683395
WRAX REG2,0.0000000000
;------ FB In 1
RDAX REG1,1.0000000000
WRAX REG0,0.0000000000
;------ Output
RDAX REG2,1.0000000000
WRAX DACL,0.0000000000

the mn3011 is a set of bbds in one, they are in series and after each stage there is an exit, I know it is very difficult and expensive to get but, I think that a solution, a bit bulky in my opinion, would be to put several bbds in series so that they add and take an output after each chip to have the outputs of the mn3011, if do not want to leave the digital, it would be good if they see the v1000 or al3201, the fv-1 is excellent but it is difficult to obtain and there are many fakes on aliexpress

ElectricDruid

Quote from: carlozsulca on March 20, 2022, 02:35:23 PM
the mn3011 is a set of bbds in one, they are in series and after each stage there is an exit, I know it is very difficult and expensive to get but, I think that a solution, a bit bulky in my opinion, would be to put several bbds in series so that they add and take an output after each chip to have the outputs of the mn3011, if do not want to leave the digital, it would be good if they see the v1000 or al3201, the fv-1 is excellent but it is difficult to obtain and there are many fakes on aliexpress

While this *sounds* like a good idea, the tap positions of the MN3011 are carefully selected to be non-multiples of each other (prime numbers, basically) so you won't find any BBDs that you could add together to get the same effect, which is why a digital solution like the FV-1 (or potentially the other chips you mentioned) is a much better bet.

HTH

Ice-9

Quote from: carlozsulca on March 20, 2022, 02:35:23 PM
Quote from: carvindc125 on November 23, 2021, 11:04:37 AM
Greetings!
I am currently working with a couple of brilliant gents on a project to modernize and bring back the Rockman X100.
We've been on the project over a year now and it is coming along quite nicely. While diving in to the circuitry we realized very quickly that the old MN3011 BBD chip it uses for reverb was not going to be practical to source. They are too expensive and nearly impossible to find.
So we began looking at digital options. Although I believe we have honed in on a couple ideas for our final echo design I discovered in a happy accident one day that spinCAD has a MN3011 block! The FV-1 can easily reproduce the chips characteristics however in another conversation Digital Larry brought up the block needs to be slightly redesigned. The 6 taps are summed together when it should be alternating taps summed to two outs. 1,3, and 5 to Out1 and 2,4and 6 to Out2
I don't know enough of the actual code to edit this but Digital Larry was kind enough to post the original code of the MN3011 in spincad.
Is there anyone here who can edit this so the taps are summed as Tap 1, Tap 3, Tap 5 summed to one output and tap 2, Tap 4, and Tap 6 summed to a second output.
Quote and code from Digital Larry below.
Quote from: Digital Larry on April 03, 2021, 05:42:51 AM
...Now that I look at it though I realize that the MN3011 block I designed is a little silly in that I mix all taps to a single output.  All this time and nobody ever said anything about it.  That is easy enough to change even manually.

I've used the MN3011 block as a reverb in more complex patches.  Unless you are playing really isolated guitar notes, to my ear, you can get away with a really simple implementation in many cases.

;
; ----------------------------
;------ Input
;------ Feedback Output
;------ MN3011
RDAX REG0,0.5000000000
RDAX ADCL,0.5000000000
WRA 0,0.0
RDA 7839,1.0
WRAX REG1,0.0000000000
RDA 7839,0.28183829312644537
RDA 932,0.5
RDA 1559,0.31622776601683794
RDA 2812,0.3981071705534972
RDA 4065,0.28183829312644537
RDA 6571,0.22387211385683395
WRAX REG2,0.0000000000
;------ FB In 1
RDAX REG1,1.0000000000
WRAX REG0,0.0000000000
;------ Output
RDAX REG2,1.0000000000
WRAX DACL,0.0000000000

the mn3011 is a set of bbds in one, they are in series and after each stage there is an exit, I know it is very difficult and expensive to get but, I think that a solution, a bit bulky in my opinion, would be to put several bbds in series so that they add and take an output after each chip to have the outputs of the mn3011, if do not want to leave the digital, it would be good if they see the v1000 or al3201, the fv-1 is excellent but it is difficult to obtain and there are many fakes on aliexpress

In SpinCad to get the X100 stereo 3 taps per side just use 2 X the 3tap delay block and set the time intervals correctly and add a single tap delay for the MN3007 on top which is crossed over from one stereo side to the other. Just like the file I sent to you.
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.

carvindc125

Quote from: Ice-9 on March 22, 2022, 11:37:15 AM
Quote from: carlozsulca on March 20, 2022, 02:35:23 PM
Quote from: carvindc125 on November 23, 2021, 11:04:37 AM
Greetings!
I am currently working with a couple of brilliant gents on a project to modernize and bring back the Rockman X100.
We've been on the project over a year now and it is coming along quite nicely. While diving in to the circuitry we realized very quickly that the old MN3011 BBD chip it uses for reverb was not going to be practical to source. They are too expensive and nearly impossible to find.
So we began looking at digital options. Although I believe we have honed in on a couple ideas for our final echo design I discovered in a happy accident one day that spinCAD has a MN3011 block! The FV-1 can easily reproduce the chips characteristics however in another conversation Digital Larry brought up the block needs to be slightly redesigned. The 6 taps are summed together when it should be alternating taps summed to two outs. 1,3, and 5 to Out1 and 2,4and 6 to Out2
I don't know enough of the actual code to edit this but Digital Larry was kind enough to post the original code of the MN3011 in spincad.
Is there anyone here who can edit this so the taps are summed as Tap 1, Tap 3, Tap 5 summed to one output and tap 2, Tap 4, and Tap 6 summed to a second output.
Quote and code from Digital Larry below.
Quote from: Digital Larry on April 03, 2021, 05:42:51 AM
...Now that I look at it though I realize that the MN3011 block I designed is a little silly in that I mix all taps to a single output.  All this time and nobody ever said anything about it.  That is easy enough to change even manually.

I've used the MN3011 block as a reverb in more complex patches.  Unless you are playing really isolated guitar notes, to my ear, you can get away with a really simple implementation in many cases.

;
; ----------------------------
;------ Input
;------ Feedback Output
;------ MN3011
RDAX REG0,0.5000000000
RDAX ADCL,0.5000000000
WRA 0,0.0
RDA 7839,1.0
WRAX REG1,0.0000000000
RDA 7839,0.28183829312644537
RDA 932,0.5
RDA 1559,0.31622776601683794
RDA 2812,0.3981071705534972
RDA 4065,0.28183829312644537
RDA 6571,0.22387211385683395
WRAX REG2,0.0000000000
;------ FB In 1
RDAX REG1,1.0000000000
WRAX REG0,0.0000000000
;------ Output
RDAX REG2,1.0000000000
WRAX DACL,0.0000000000

the mn3011 is a set of bbds in one, they are in series and after each stage there is an exit, I know it is very difficult and expensive to get but, I think that a solution, a bit bulky in my opinion, would be to put several bbds in series so that they add and take an output after each chip to have the outputs of the mn3011, if do not want to leave the digital, it would be good if they see the v1000 or al3201, the fv-1 is excellent but it is difficult to obtain and there are many fakes on aliexpress

In SpinCad to get the X100 stereo 3 taps per side just use 2 X the 3tap delay block and set the time intervals correctly and add a single tap delay for the MN3007 on top which is crossed over from one stereo side to the other. Just like the file I sent to you.
Thanks!