SpinCAD Designer beta release #15

Algorithm development and general DSP issues

Moderator: frank

Post Reply
Digital Larry
Posts: 338
Joined: Mon Nov 12, 2012 1:12 pm
Contact:

SpinCAD Designer beta release #15

Post by Digital Larry »

If you have not already done so, come register at http://holycityaudio.com/forum/ to download the latest beta version. I am really serious about cleaning this program up and making it more useful. It's a lot of work and slow going, but I do want to release improved versions every so often even if there's more to be done.

This one has a variety of new features, cleanup of things which didn't work, usability enhancements, and bug fixes.

Bug fixes:
Feedback loops, broken in build 710, work again :D
Fixed tremolo block.
Fixed crossfade block.
Fixed phaser block. Note - phaser block is the phaser preset from Spin. Control input #1 is LFO speed, Control input #2 is LFO depth/effect depth. Later I'll try to come up with a more general purpose block for phase shifting.

Usability enhancements:
Added single level undo (Edit...Undo from menu bar). Doesn't undo control panel changes or connection deletions, only block deletions.
Expanded connection completion radius, so that as soon as the pin name is displayed, you can left click to complete a connection.

UI Changes:
Pots are now in the "Control" menu, to help unclutter the menu bar.
Renamed "Straight Delay" to "Servo Delay" (unfortunately, it isn't Spin's "Servo Delay" implementation. It just uses RMPA directly but is still surprisingly useful).

New blocks:
- Created a 3-tap delay with individual outputs and control pots for time. Use a control smoother on the input to get pitch bending effects when you change the delay time. This also has fixed taps at the middle and end of the buffer.
- Created a "control smoother" block for use with delay blocks. Note that "Servo Delay" has a built-in control smoother.
- Added 10-tap delay block with adjustable delay time and gain per tap, stereo outputs. Taps 1 - 5 go to output 1, taps 6-10 go to output 2.
- Added Aliaser block under Wave Shaper menu - One of the forum members kindly supplied some code for use as an aliaser.

Updated blocks
Sin/Cos LFO Block
- Added width control input
- Made both width and speed control input use the control panel setting as the maximum value for the control input. This makes the control input behavior consistent with everything else.

MN3011 multitap delay - has a mono tap mix output as well as delay end output for feedback.
- Added time control input to existing 8-tap delay and MN3011 blocks (note, I removed the built-in feedback parameter on these blocks, but you can add feedback now with a Feedback Loop block pair).

Removed blocks
I took out a bunch of non functioning filter blocks and an infinite reverb patch that was questionable. Next beta release I am going to focus on filters.

Here's a picture of the UI showing a sample patch, along with the code this generates:

Image

Code: Select all

;  Program: Render Block exported from SpinCAD Designer
;------ Pot 0
;------ Pot 1
;------ LFO 0
SKP RUN ,1
WLDS 0,162,32767
RDAX POT0,0.3170254403
WRAX SIN0_RATE,0.0000000000
RDAX POT1,1.0000000000
WRAX SIN0_RANGE,0.0000000000
CHO RDAL,0
WRAX REG0,0.0000000000
CHO RDAL,8
WRAX REG1,0.0000000000
;------ Scale/Offset
RDAX REG0,1.0000000000
SOF 0.5000000000,0.5000000000
WRAX REG2,0.0000000000
;------ Input
;------ Smoother
RDAX REG2,1.0000000000
RDFX REG4,0.0002151443
WRAX REG4,0.0000000000
;------ Scale/Offset
RDAX REG0,1.0000000000
SOF 0.2900000000,0.5100000000
WRAX REG5,0.0000000000
;------ Invert
RDAX REG5,1.0000000000
SOF -0.9990000000,0.9990000000
WRAX REG6,0.0000000000
;------ Smoother
RDAX REG6,1.0000000000
RDFX REG8,0.0001421445
WRAX REG8,0.0000000000
;------ Smoother
RDAX REG5,1.0000000000
RDFX REG10,0.0001789493
WRAX REG10,0.0000000000
;------ ThreeTap
RDAX ADCL,0.4500000000
WRA 0,0.0
CLR
OR $007FFF00
MULX REG4
SOF 0.0299936813,0.0016091324
WRAX ADDR_PTR,0.0000000000
RMPA 1.0
WRAX REG11,0.0000000000
CLR
OR $007FFF00
MULX REG10
SOF 0.0238078094,0.0012835602
WRAX ADDR_PTR,0.0000000000
RMPA 1.0
WRAX REG12,0.0000000000
CLR
OR $007FFF00
MULX REG8
SOF 0.0170501343,0.0009278931
WRAX ADDR_PTR,0.0000000000
RMPA 1.0
WRAX REG13,0.0000000000
RDA 896,1.0
WRAX REG14,0.0000000000
RDA 1793,1.0
WRAX REG15,0.0000000000
;------ Mixer 4-1
RDAX REG11,0.2500000000
WRAX REG16,0.0000000000
RDAX REG12,0.2500000000
RDAX REG16,1.0000000000
WRAX REG16,0.0000000000
RDAX REG13,0.2500000000
RDAX REG16,1.0000000000
WRAX REG16,0.0000000000
RDAX REG14,0.2500000000
RDAX REG16,1.0000000000
WRAX REG16,0.0000000000
;------ ThreeTap
RDAX ADCL,0.4500000000
WRA 1794,0.0
CLR
OR $007FFF00
MULX REG4
SOF 0.0052776199,0.0550263046
WRAX ADDR_PTR,0.0000000000
RMPA 1.0
WRAX REG17,0.0000000000
CLR
OR $007FFF00
MULX REG10
SOF 0.0116915695,0.0553638809
WRAX ADDR_PTR,0.0000000000
RMPA 1.0
WRAX REG18,0.0000000000
CLR
OR $007FFF00
MULX REG8
SOF 0.0183327850,0.0557134186
WRAX ADDR_PTR,0.0000000000
RMPA 1.0
WRAX 51,0.0000000000
RDA 2229,1.0
WRAX 52,0.0000000000
RDA 2665,1.0
WRAX 53,0.0000000000
;------ Mixer 4-1
RDAX REG17,0.2500000000
WRAX 54,0.0000000000
RDAX REG18,0.2500000000
RDAX 54,1.0000000000
WRAX 54,0.0000000000
RDAX 51,0.2500000000
RDAX 54,1.0000000000
WRAX 54,0.0000000000
RDAX 52,0.2500000000
RDAX 54,1.0000000000
WRAX 54,0.0000000000
;------ Output
RDAX REG16,1.0000000000
WRAX DACL,0.0000000000
RDAX 54,1.0000000000
WRAX DACR,0.0000000000

Digital Larry
Posts: 338
Joined: Mon Nov 12, 2012 1:12 pm
Contact:

Post by Digital Larry »

The ThreeTap delay can be used for chorus/flange applications, as shown above, or for more traditional ambience or rhythmic echoes.

The delay time slider readout is in milliseconds, and would benefit from a direct number entry spinner as the slider doesn't give you enough resolution to dial it in exactly.

The extra two output connections on the ThreeTap block are for the delay buffer center and end. As with all blocks, putting your mouse pointer on the pin will show you the pin name at the bottom of the screen so you don't have to try to remember them.

The movable taps move WITHIN the buffer, and scale down from the control panel setting to 5 or 10% of that setting. The "Time" for each of the taps shown in the control panel is the percentage of the maximum delay time. So you can change the Delay Time parameter and all the taps lengths scale down proportionally.

The ThreeTap delay control inputs go directly to scaling the ADDR_PTR which is then used by RMPA. So if you connect a Pot input here, you'll get clicking as the delay time is changed. With a slow LFO input you might or might not get clicking; I haven't tried it without the control smoother. The control smoother is a low pass filter. The idea I had in mind by making the frequencies different was to introduce some phase difference between the time control signals, but in reality I don't know how effective this is. Since the control smoother uses the RDFX instruction, I don't think the actual frequency resolution at very low frequencies is a good as the control slider implies.

The fixed delay taps in the middle and end can be used for feedback points (not shown in this patch) or for mixing. In this patch I am mixing the delay center tap with the movable taps, which were set to near 50%. I was thinking that this would allow some "through-zero" type sounds, however control inputs only scale DOWN, so they'd all have to be set above 50% to pass through that point. Anyway there's lots of room to experiment with different approaches.
ice-nine
Posts: 192
Joined: Thu May 24, 2012 9:03 am

Post by ice-nine »

Hello Larry, I tried the code just as it is above in a real world pedal and it sounds very good. Very chorus with the code as written which goes to quite extreme chorus.

I haven't managed to get over and download the latest SpinCad yet to have a play around with it but will do as soon as I get a chance. Thanks
Digital Larry
Posts: 338
Joined: Mon Nov 12, 2012 1:12 pm
Contact:

Post by Digital Larry »

Glad to hear it! I found my Spin dev board and hooked it to the effects loop of my Tech 21 Trademark 60. Maybe it sounds odd to you musicians but it was the first time I'd really spent a few hours playing through the thing instead of dorking around with the program I'm writing. I'm that much of a nerd.

Some of the patches I share up here aren't the result of hours of optimization but I just want to share some of the possibilities. You can change things around so quickly and make lots of little variations on patches that my biggest frustration is starting to be that I can only store 8 at a time on the board. I'm going to have to find a way to categorize and optimize things.

There could be worse problems though! :D
GaryInThailand
Posts: 7
Joined: Sat Sep 20, 2014 12:01 am
Location: Hua Hin, Thailand

Extremely cool!

Post by GaryInThailand »

I just became aware of FV-1 and this whole ecosystem. Looking forward to getting my dev board and jumping in. In a former life, I developed effects for Lexicon, including PCM42 and the FX section of the old 224X. This will certainly bring me back to my roots. Cheers
Just a little eMusic hacking on the old Malay Peninsula
Post Reply