In search of Stereo Reverbs and Delays to fill 2 Binaura EEPROMS.

I see at least one opportunity for optimizing that I hadn't previously thought about.

Aggregate all of your SKP RUNs. LMK if you don't know what I mean.

Here's another.

before:

;------ Mixer 2:1<br>
RDAX ADCL,0.5011872336<br>
RDAX ADCR,0.5011872336<br>
WRAX REG1,0.0000000000<br>
;------ Eight Tap<br>
RDAX REG0,0.7079457844<br>
MULX POT1<br>
RDAX REG1,1.0000000000<br>
WRA 0,0.0

after:

;------ Mixer 2:1<br>
;------ Eight Tap<br>
RDAX REG0,0.7079457844<br>
MULX POT1<br>
RDAX ADCL,0.5011872336<br>
RDAX ADCR,0.5011872336<br>
WRA 0,0.0

DL
 
I see at least one opportunity for optimizing that I hadn't previously thought about.

Aggregate all of your SKP RUNs. LMK if you don't know what I mean.

DL
Thanks DL! As it turns out, I don't know how to aggregate all of the SKP RUNs. (I see that there are three of them.) If you would be so kind as to point me in the right (aggregate) direction please. Thank you.
 
Last edited:
I think 02 is the clear winner. 03 is a little wild and hard to dial in.
Fair enough then. I'll move on to the next one - "Stereo Pitch-Shifted Feedback Delay: Dual delay lines running through a +1 octave pitch-shifter block inside the feedback loop."

This one will need the two "2:1 Mixer", "Pot2" & 3rd "Scale/Offset" blocks removed and the "ThreeTap" delay blocks reconnected to the "Output" block if want to exclude the internal Delay Level (dry signal) control. If so, this one will have an extra internal control pot to control some other aspect of the patch. Let me know.

"D04 Stereo Oct Feedback _Delay.spcdj ". . .
JSON:
{
  "formatVersion": 1,
  "buildNumber": 1070,
  "type": "patch",
  "patchFileName": "D04 Stereo Oct Fdbk Delay.spcdj",
  "comments": {
    "fileName": "D04 Stereo Oct Fdbk Delay.spcdj",
    "version": "Patch saved from SpinCAD Designer version 1070",
    "lines": [
      "Pot 0: Delay Time (Up to 465ms)",
      "Pot 1: Feedback/Repeats",
      "Pot 2: Delay level",
      "Basic digital delay with full bandwidth feedback thru +1 Oct Pitch Shifters.  Feedback gain is set at -3 dB.  ",
      "Set it high if you dare, but be careful! Part of a Pedal PCB Community project."
    ]
  },
  "potValues": [
    78.0,
    35.0,
    100.0
  ],
  "blocks": [
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.InputCADBlock",
      "blockNum": 0,
      "x": 445,
      "y": 6,
      "name": "Input"
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot0CADBlock",
      "blockNum": 1,
      "x": 9,
      "y": 100,
      "name": "Pot 0",
      "params": {
        "speedup": false,
        "potRegister": 16
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.control_smootherCADBlock",
      "blockNum": 2,
      "x": 81,
      "y": 99,
      "name": "Smoother",
      "params": {
        "filtReg": 33,
        "filt": 1.5E-4
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 3,
      "x": 178,
      "y": 99,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.1,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 4,
      "x": 318,
      "y": 35,
      "name": "FB Out 1",
      "params": {
        "register": 36
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot1CADBlock",
      "blockNum": 5,
      "x": 216,
      "y": 193,
      "name": "Pot 1",
      "params": {
        "speedup": false,
        "potRegister": 17
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 6,
      "x": 336,
      "y": 101,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.7079457843841379,
        "delayLength": 15237.0,
        "tap1Ratio": 0.8536666666666667,
        "tap2Ratio": 0.6,
        "tap3Ratio": 0.29883333333333334,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 37,
        "output2": 38,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot2CADBlock",
      "blockNum": 7,
      "x": 84,
      "y": 282,
      "name": "Pot 2",
      "params": {
        "speedup": false,
        "potRegister": 18
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 8,
      "x": 148,
      "y": 283,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.24,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 9,
      "x": 550,
      "y": 86,
      "name": "FB Out 1",
      "params": {
        "register": 36
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pitch_shift_testCADBlock",
      "blockNum": 10,
      "x": 379,
      "y": 213,
      "name": "Pitch Shift",
      "params": {
        "pitchSemitones": 12.0,
        "pitchCents": 0.0,
        "controlRange": 0.0,
        "lfoSel": 0.0,
        "lfoWidth": 2.0,
        "length": 1024.0,
        "pitch": 40,
        "negHundred": -100.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.control_smootherCADBlock",
      "blockNum": 11,
      "x": 81,
      "y": 144,
      "name": "Smoother",
      "params": {
        "filtReg": 42,
        "filt": 1.5E-4
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 12,
      "x": 176,
      "y": 145,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.1,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 13,
      "x": 530,
      "y": 142,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.7079457843841379,
        "delayLength": 15237.0,
        "tap1Ratio": 1.0,
        "tap2Ratio": 0.5,
        "tap3Ratio": 0.45,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 44,
        "output2": 45,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_2_to_1CADBlock",
      "blockNum": 14,
      "x": 293,
      "y": 300,
      "name": "Mixer 2:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "output": 46
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_2_to_1CADBlock",
      "blockNum": 15,
      "x": 497,
      "y": 226,
      "name": "Mixer 2:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "output": 47
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pitch_shift_testCADBlock",
      "blockNum": 16,
      "x": 577,
      "y": 227,
      "name": "Pitch Shift",
      "params": {
        "pitchSemitones": 12.0,
        "pitchCents": 0.0,
        "controlRange": 0.0,
        "lfoSel": 1.0,
        "lfoWidth": 2.0,
        "length": 1024.0,
        "pitch": 48,
        "negHundred": -100.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 17,
      "x": 577,
      "y": 283,
      "name": "LPF 1P",
      "params": {
        "freq": 0.17448479651402438,
        "lpf1": 49
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 18,
      "x": 378,
      "y": 274,
      "name": "LPF 1P",
      "params": {
        "freq": 0.15,
        "lpf1": 50
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OutputCADBlock",
      "blockNum": 19,
      "x": 383,
      "y": 402,
      "name": "Output",
      "params": {
        "mono": false,
        "offset0": false,
        "gain1": 1.0,
        "gain2": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 20,
      "x": 378,
      "y": 329,
      "name": "FB In 1",
      "params": {
        "register": 36,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 21,
      "x": 577,
      "y": 340,
      "name": "FB In 1",
      "params": {
        "register": 36,
        "lGain": 1.0
      }
    }
  ],
  "connections": [
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 2,
      "toPin": "Control Input"
    },
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output",
      "toBlockIndex": 3,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 6,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 4,
      "fromPin": "Feedback Output",
      "toBlockIndex": 6,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 7,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 10,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 11,
      "toPin": "Control Input"
    },
    {
      "fromBlockIndex": 11,
      "fromPin": "Control Output",
      "toBlockIndex": 12,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 2",
      "toBlockIndex": 13,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 9,
      "fromPin": "Feedback Output",
      "toBlockIndex": 13,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Control Output 1",
      "toBlockIndex": 13,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 13,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 14,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 14,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Control Output 1",
      "toBlockIndex": 14,
      "toPin": "Level 2"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 2",
      "toBlockIndex": 15,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 13,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 15,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Control Output 1",
      "toBlockIndex": 15,
      "toPin": "Level 2"
    },
    {
      "fromBlockIndex": 13,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 16,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 16,
      "fromPin": "Pitch Out",
      "toBlockIndex": 17,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 10,
      "fromPin": "Pitch Out",
      "toBlockIndex": 18,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 14,
      "fromPin": "Output",
      "toBlockIndex": 19,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 15,
      "fromPin": "Output",
      "toBlockIndex": 19,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 18,
      "fromPin": "Output",
      "toBlockIndex": 20,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 17,
      "fromPin": "Output",
      "toBlockIndex": 21,
      "toPin": "Feedback Input"
    }
  ]
}
 
Last edited:
Hi @Cybercow

SKP RUNs are initialization instructions and only don't skip once at the beginning of execution. Meaning that during normal operation they skip over the stated number of lines.

Here are the 3 in your program.

SKP RUN ,1
WLDS 0,123,23261
...
SKP RUN ,1
WLDR 1, 16384, 2048
...
SKP RUN ,1
WLDR 0, 16384, 2048
...

This can be turned into:

SKP RUN ,3
WLDS 0,123,23261
WLDR 1, 16384, 2048
WLDR 0, 16384, 2048

Place that at the beginning of the .spn program.
Saves 2 instructions.

DL
 
Hi @Cybercow

SKP RUNs are initialization instructions and only don't skip once at the beginning of execution. Meaning that during normal operation they skip over the stated number of lines.

Here are the 3 in your program.

SKP RUN ,1
WLDS 0,123,23261
...
SKP RUN ,1
WLDR 1, 16384, 2048
...
SKP RUN ,1
WLDR 0, 16384, 2048
...

This can be turned into:

SKP RUN ,3
WLDS 0,123,23261
WLDR 1, 16384, 2048
WLDR 0, 16384, 2048

Place that at the beginning of the .spn program.
Saves 2 instructions.

DL
Again, thank you DL! If I understand this optimization correctly, any where there are multiple SKP RUN ,x (where x is a numeral), the SKP RUN ,x (where the x is the same number), can be removed from their current positions, moved to the top, where x becomes the total number lines to be skipped (in this case -3) and list those code lines referenced from the original SKP RUN ,x code lines - leaving the line codes so skipped in their respective original locations.(?)

Far from succinct, but I think I get it.

That SKP RUN ,x optimization tip would be a great add to your GitHub FV-1 Assembly Optimization page.
 
Again, thank you DL! If I understand this optimization correctly, any where there are multiple SKP RUN ,x (where x is a numeral), the SKP RUN ,x (where the x is the same number), can be removed from their current positions, moved to the top, where x becomes the total number lines to be skipped (in this case -3) and list those code lines referenced from the original SKP RUN ,x code lines - leaving the line codes so skipped in their respective original locations.(?)

Far from succinct, but I think I get it.

That SKP RUN ,x optimization tip would be a great add to your GitHub FV-1 Assembly Optimization page.

Doesn't have to be the same number. In this case it was.

e.g.

SKP RUN, 1
a
...
SKP RUN, 2
b
c
...
SKP RUN, 3
d
e
f
...
becomes

SKP RUN, 6
a
b
c
d
e
f
-----

DL
 
Fair enough then. I'll move on to the next one - "Stereo Pitch-Shifted Feedback Delay: Dual delay lines running through a +1 octave pitch-shifter block inside the feedback loop."

"D04 Stereo Oct Feedback _Delay.spcdj ". . .
JSON:
{
  "formatVersion": 1,
  "buildNumber": 1070,
  "type": "patch",
  "patchFileName": "D04 Stereo Oct Fdbk Delay.spcdj",
  "comments": {
    "fileName": "D04 Stereo Oct Fdbk Delay.spcdj",
    "version": "Patch saved from SpinCAD Designer version 1070",
    "lines": [
      "Pot 0: Delay Time (Up to 465ms)",
      "Pot 1: Feedback/Repeats",
      "Pot 2: Delay level",
      "Basic digital delay with full bandwidth feedback thru +1 Oct Pitch Shifters.  Feedback gain is set at -3 dB.  ",
      "Set it high if you dare, but be careful! Part of a Pedal PCB Community project."
    ]
  },
  "potValues": [
    78.0,
    35.0,
    100.0
  ],
  "blocks": [
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.InputCADBlock",
      "blockNum": 0,
      "x": 445,
      "y": 6,
      "name": "Input"
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot0CADBlock",
      "blockNum": 1,
      "x": 9,
      "y": 100,
      "name": "Pot 0",
      "params": {
        "speedup": false,
        "potRegister": 16
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.control_smootherCADBlock",
      "blockNum": 2,
      "x": 81,
      "y": 99,
      "name": "Smoother",
      "params": {
        "filtReg": 33,
        "filt": 1.5E-4
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 3,
      "x": 178,
      "y": 99,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.1,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 4,
      "x": 318,
      "y": 35,
      "name": "FB Out 1",
      "params": {
        "register": 36
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot1CADBlock",
      "blockNum": 5,
      "x": 216,
      "y": 193,
      "name": "Pot 1",
      "params": {
        "speedup": false,
        "potRegister": 17
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 6,
      "x": 336,
      "y": 101,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.7079457843841379,
        "delayLength": 15237.0,
        "tap1Ratio": 0.8536666666666667,
        "tap2Ratio": 0.6,
        "tap3Ratio": 0.29883333333333334,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 37,
        "output2": 38,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot2CADBlock",
      "blockNum": 7,
      "x": 84,
      "y": 282,
      "name": "Pot 2",
      "params": {
        "speedup": false,
        "potRegister": 18
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 8,
      "x": 148,
      "y": 283,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.24,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 9,
      "x": 550,
      "y": 86,
      "name": "FB Out 1",
      "params": {
        "register": 36
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pitch_shift_testCADBlock",
      "blockNum": 10,
      "x": 379,
      "y": 213,
      "name": "Pitch Shift",
      "params": {
        "pitchSemitones": 12.0,
        "pitchCents": 0.0,
        "controlRange": 0.0,
        "lfoSel": 0.0,
        "lfoWidth": 2.0,
        "length": 1024.0,
        "pitch": 40,
        "negHundred": -100.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.control_smootherCADBlock",
      "blockNum": 11,
      "x": 81,
      "y": 144,
      "name": "Smoother",
      "params": {
        "filtReg": 42,
        "filt": 1.5E-4
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 12,
      "x": 176,
      "y": 145,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.1,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 13,
      "x": 530,
      "y": 142,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.7079457843841379,
        "delayLength": 15237.0,
        "tap1Ratio": 1.0,
        "tap2Ratio": 0.5,
        "tap3Ratio": 0.45,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 44,
        "output2": 45,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_2_to_1CADBlock",
      "blockNum": 14,
      "x": 293,
      "y": 300,
      "name": "Mixer 2:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "output": 46
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_2_to_1CADBlock",
      "blockNum": 15,
      "x": 497,
      "y": 226,
      "name": "Mixer 2:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "output": 47
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pitch_shift_testCADBlock",
      "blockNum": 16,
      "x": 577,
      "y": 227,
      "name": "Pitch Shift",
      "params": {
        "pitchSemitones": 12.0,
        "pitchCents": 0.0,
        "controlRange": 0.0,
        "lfoSel": 1.0,
        "lfoWidth": 2.0,
        "length": 1024.0,
        "pitch": 48,
        "negHundred": -100.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 17,
      "x": 577,
      "y": 283,
      "name": "LPF 1P",
      "params": {
        "freq": 0.17448479651402438,
        "lpf1": 49
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 18,
      "x": 378,
      "y": 274,
      "name": "LPF 1P",
      "params": {
        "freq": 0.15,
        "lpf1": 50
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OutputCADBlock",
      "blockNum": 19,
      "x": 383,
      "y": 402,
      "name": "Output",
      "params": {
        "mono": false,
        "offset0": false,
        "gain1": 1.0,
        "gain2": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 20,
      "x": 378,
      "y": 329,
      "name": "FB In 1",
      "params": {
        "register": 36,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 21,
      "x": 577,
      "y": 340,
      "name": "FB In 1",
      "params": {
        "register": 36,
        "lGain": 1.0
      }
    }
  ],
  "connections": [
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 2,
      "toPin": "Control Input"
    },
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output",
      "toBlockIndex": 3,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 6,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 4,
      "fromPin": "Feedback Output",
      "toBlockIndex": 6,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 7,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 10,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 11,
      "toPin": "Control Input"
    },
    {
      "fromBlockIndex": 11,
      "fromPin": "Control Output",
      "toBlockIndex": 12,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 2",
      "toBlockIndex": 13,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 9,
      "fromPin": "Feedback Output",
      "toBlockIndex": 13,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Control Output 1",
      "toBlockIndex": 13,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 13,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 14,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 14,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Control Output 1",
      "toBlockIndex": 14,
      "toPin": "Level 2"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 2",
      "toBlockIndex": 15,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 13,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 15,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Control Output 1",
      "toBlockIndex": 15,
      "toPin": "Level 2"
    },
    {
      "fromBlockIndex": 13,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 16,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 16,
      "fromPin": "Pitch Out",
      "toBlockIndex": 17,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 10,
      "fromPin": "Pitch Out",
      "toBlockIndex": 18,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 14,
      "fromPin": "Output",
      "toBlockIndex": 19,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 15,
      "fromPin": "Output",
      "toBlockIndex": 19,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 18,
      "fromPin": "Output",
      "toBlockIndex": 20,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 17,
      "fromPin": "Output",
      "toBlockIndex": 21,
      "toPin": "Feedback Input"
    }
  ]
}
This one I think was better in theory then it is in practice. I'm finding the pitch shift mostly unpleasant and hard to imagine a use for.

I have been listening a lot to the Buggfx Daydream delay and was hoping we can swap one of the delays for a stereo copy of this delay type, and this patch seems like a good option for substitution. It already exists as an EEPROM/build from Pedalpcb so I'm not sure if that makes this request easier or more difficult.


 
This one I think was better in theory then it is in practice. I'm finding the pitch shift mostly unpleasant and hard to imagine a use for.

I have been listening a lot to the Buggfx Daydream delay and was hoping we can swap one of the delays for a stereo copy of this delay type, and this patch seems like a good option for substitution. It already exists as an EEPROM/build from Pedalpcb so I'm not sure if that makes this request easier or more difficult.


I already have a Day Dream Delay patch in mono and am now working on it to bring it to stereo. I'll name it "D04_Stereo_Dream_Delay" and post it when done.
 
Last edited:
@BrainGutz - OK, here's D04 Stereo Dream Delay.spcdj . . . . .
(It's not as long or smooth as a real Day Dream delay, but it uses all the same elements.)
JSON:
{
  "formatVersion": 1,
  "buildNumber": 1070,
  "type": "patch",
  "patchFileName": "D04_Stereo_Dream_Delay.spcdj",
  "comments": {
    "fileName": "D04_Stereo_Dream_Delay.spcdj",
    "version": "Patch saved from SpinCAD Designer version 1070",
    "lines": [
      "Pot 0: Time",
      "Pot 1: Feedback",
      "Pot 2: Feedback Filter",
      "",
      ""
    ]
  },
  "potValues": [
    0.0,
    0.0,
    0.0
  ],
  "blocks": [
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.InputCADBlock",
      "blockNum": 0,
      "x": 459,
      "y": 21,
      "name": "Input"
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot1CADBlock",
      "blockNum": 1,
      "x": 100,
      "y": 214,
      "name": "Pot 1",
      "params": {
        "speedup": false,
        "potRegister": 17
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot0CADBlock",
      "blockNum": 2,
      "x": 98,
      "y": 91,
      "name": "Pot 0",
      "params": {
        "speedup": false,
        "potRegister": 16
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 3,
      "x": 356,
      "y": 78,
      "name": "FB Out 1",
      "params": {
        "register": 32
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 4,
      "x": 170,
      "y": 214,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.1,
        "outHigh": 0.8
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot2CADBlock",
      "blockNum": 5,
      "x": 98,
      "y": 286,
      "name": "Pot 2",
      "params": {
        "speedup": false,
        "potRegister": 18
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 6,
      "x": 169,
      "y": 92,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.1,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 7,
      "x": 165,
      "y": 286,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.1,
        "outHigh": 0.7
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 8,
      "x": 359,
      "y": 164,
      "name": "ThreeTap",
      "params": {
        "inputGain": 0.5011872336272722,
        "fbkGain": 0.44668359215096315,
        "delayLength": 14765.0,
        "tap1Ratio": 0.85,
        "tap2Ratio": 0.852,
        "tap3Ratio": 0.852,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 36,
        "output2": 37,
        "output3": 38
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 9,
      "x": 582,
      "y": 107,
      "name": "FB Out 2",
      "params": {
        "register": 39
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.InvertControlCADBlock",
      "blockNum": 10,
      "x": 261,
      "y": 354,
      "name": "Invert"
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_3_to_1CADBlock",
      "blockNum": 11,
      "x": 358,
      "y": 237,
      "name": "Mixer 3:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "gain3": 1.0,
        "output": 41
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 12,
      "x": 543,
      "y": 170,
      "name": "ThreeTap",
      "params": {
        "inputGain": 0.5011872336272722,
        "fbkGain": 0.44668359215096315,
        "delayLength": 18002.0,
        "tap1Ratio": 0.85,
        "tap2Ratio": 0.8536666666666667,
        "tap3Ratio": 0.8475,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 42,
        "output2": 43,
        "output3": 44
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_3_to_1CADBlock",
      "blockNum": 13,
      "x": 543,
      "y": 233,
      "name": "Mixer 3:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "gain3": 1.0,
        "output": 45
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 14,
      "x": 337,
      "y": 315,
      "name": "LPF 1P",
      "params": {
        "freq": 0.2945527425570219,
        "lpf1": 46
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 15,
      "x": 565,
      "y": 292,
      "name": "LPF 1P",
      "params": {
        "freq": 0.2325526242925835,
        "lpf1": 47
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.HPF_RDFXCADBlock",
      "blockNum": 16,
      "x": 337,
      "y": 384,
      "name": "HPF 1P",
      "params": {
        "freq": 0.015,
        "output": 48,
        "lpf1": 49
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.HPF_RDFXCADBlock",
      "blockNum": 17,
      "x": 565,
      "y": 354,
      "name": "HPF 1P",
      "params": {
        "freq": 0.015,
        "output": 50,
        "lpf1": 51
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 18,
      "x": 337,
      "y": 438,
      "name": "FB In 1",
      "params": {
        "register": 32,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 19,
      "x": 565,
      "y": 409,
      "name": "FB In 2",
      "params": {
        "register": 39,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OutputCADBlock",
      "blockNum": 20,
      "x": 448,
      "y": 469,
      "name": "Output",
      "params": {
        "mono": true,
        "offset0": false,
        "gain1": 1.0,
        "gain2": 1.0
      }
    }
  ],
  "connections": [
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 4,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 7,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 8,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Feedback Output",
      "toBlockIndex": 8,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Delay Time 2"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Delay Time 3"
    },
    {
      "fromBlockIndex": 4,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 7,
      "fromPin": "Control Output 1",
      "toBlockIndex": 10,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 11,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 11,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Tap 3 Out",
      "toBlockIndex": 11,
      "toPin": "Input 3"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 2",
      "toBlockIndex": 12,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 9,
      "fromPin": "Feedback Output",
      "toBlockIndex": 12,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Control Output 1",
      "toBlockIndex": 12,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Control Output 1",
      "toBlockIndex": 12,
      "toPin": "Delay Time 2"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Control Output 1",
      "toBlockIndex": 12,
      "toPin": "Delay Time 3"
    },
    {
      "fromBlockIndex": 4,
      "fromPin": "Control Output 1",
      "toBlockIndex": 12,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 13,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 13,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Tap 3 Out",
      "toBlockIndex": 13,
      "toPin": "Input 3"
    },
    {
      "fromBlockIndex": 11,
      "fromPin": "Output",
      "toBlockIndex": 14,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 7,
      "fromPin": "Control Output 1",
      "toBlockIndex": 14,
      "toPin": "Frequency"
    },
    {
      "fromBlockIndex": 13,
      "fromPin": "Output",
      "toBlockIndex": 15,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 7,
      "fromPin": "Control Output 1",
      "toBlockIndex": 15,
      "toPin": "Frequency"
    },
    {
      "fromBlockIndex": 14,
      "fromPin": "Output",
      "toBlockIndex": 16,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 10,
      "fromPin": "Control Output 1",
      "toBlockIndex": 16,
      "toPin": "Frequency"
    },
    {
      "fromBlockIndex": 15,
      "fromPin": "Output",
      "toBlockIndex": 17,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 10,
      "fromPin": "Control Output 1",
      "toBlockIndex": 17,
      "toPin": "Frequency"
    },
    {
      "fromBlockIndex": 16,
      "fromPin": "Output",
      "toBlockIndex": 18,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 17,
      "fromPin": "Output",
      "toBlockIndex": 19,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 11,
      "fromPin": "Output",
      "toBlockIndex": 20,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 13,
      "fromPin": "Output",
      "toBlockIndex": 20,
      "toPin": "Input 2"
    }
  ]
}
 
Last edited:
@Cybercow note that in the patch in question, the SKP RUN instructions are used to set up an LFO (SIN or RAMP) using a single instruction for rate and width. Subsequent runtime instructions (e.g. adjusting something via pot control) typically only update rate or width.
 
I think it sounds good if not a little underwhelming. I don’t feel like I can get as much repeat strength as I’d like. Did you say that is kind of a reality of auditing in spincad vs being able to play it?

I’m using the “clean guitar audio clip” that you find on the spincad landing page. Does anyone have a better audio clip for testing delays?

Are short delay times just a reality of stereo for this format or are my requests just too complicated to also have long delay trails?
 
I think it sounds good if not a little underwhelming. I don’t feel like I can get as much repeat strength as I’d like. Did you say that is kind of a reality of auditing in spincad vs being able to play it?

I’m using the “clean guitar audio clip” that you find on the spincad landing page. Does anyone have a better audio clip for testing delays?

Are short delay times just a reality of stereo for this format or are my requests just too complicated to also have long delay trails?
That's correct. In SpinCAD, this patch has no direct dry signal path, so it will sound quite underwhelming.

Go ahead and load it up in SpinCAD, then drop a "2:1 (x2) Mixer" block just above the Output block. Connect the outputs of the "2:1 (x2) Mixer" block to the Output block, then reconnect the two "Mixer 3:1" blocks to the outer inputs of the "2:1 (x2) Mixer" and then add both outputs from the Input block to the inner two inputs of the "2:1 (x2) Mixer" block. Make no other disconnects. Then, when you audit it in SpinCAD, you will get a far more defined delay. (Mind you, that will push the patch Instruction code lines up to 136 [over the 128 limit] - which won't work in an EEPROM, but will still audit in SpinCAD.) Before adding & connecting the "2:1 (x2) Mixer" block as suggested for auditing, the number of Instruction code lines is 125. If you're OK with what you hear with the added "2:1 (x2) Mixer" block, just don't save the patch.

You can make your own audio clips save them in the same format as the "clean guitar audio clip" (I forget offhand what the specifics are.)

The FV-1 can do up to 1000ms of delay. However, when doing so in stereo, depending on which blocks are used, that 1000ms is cut in half down to ~500ms. The two previous patchs (D02 & D03 have closer to 1000ms (actually ~900ms) delays because of the type of delay blocks used. Those two are using just one of the 'multi-tap' delay blocks that have stereo outputs. When expose the delay block's Control Panel, you can poke around in there to make subtle (sometimes wild) variations.

And as mentioned previously, the FV-1 is nowhere near as sophisticated as the Big Sky or Timeline; both of which employ SHARC DSP technology. A newer and far more powerful DSP.
 
Back
Top