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

Here are the first two renditions of a shot at the Oil Can delay - "D01 Stereo Oil Can Delay.spcdj" and "D01 Stereo Oil Can Delay 02.spcdj". Because the new native SpinCAD file save format is a JSON file, it can be presented as text in code wrap. You should be able to just copy the code in its entirety, paste it into a fresh/empty TEXT file, then save that file as "xxxxxx.SPCDJ". SpinCAD can then open it directly with an "Open Patch" command.

This is my first time sharing a SpinCAD patch this way. Please let me know if it works.

D01 Stereo Oil Can Delay.spcdj :
JSON:
{
  "formatVersion": 1,
  "buildNumber": 1070,
  "type": "patch",
  "patchFileName": "D01_Stereo_Oil_Can_Delay.spcdj",
  "comments": {
    "fileName": "D01_Stereo_Oil_Can_Delay.spcdj",
    "version": "Patch saved from SpinCAD Designer version 1070",
    "lines": [
      "Pot 0: delay time/wobble frequency",
      "Pot 1: wobble depth",
      "Pot 2: feedback",
      "Part of a Pedal PCB Community project.",
      ""
    ]
  },
  "potValues": [
    40.0,
    11.0,
    30.0
  ],
  "blocks": [
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.InputCADBlock",
      "blockNum": 0,
      "x": 405,
      "y": 8,
      "name": "Input"
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot2CADBlock",
      "blockNum": 1,
      "x": 196,
      "y": 125,
      "name": "Pot 2",
      "params": {
        "speedup": false,
        "potRegister": 18
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot0CADBlock",
      "blockNum": 2,
      "x": 2,
      "y": 278,
      "name": "Pot 0",
      "params": {
        "speedup": false,
        "potRegister": 16
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.control_smootherCADBlock",
      "blockNum": 3,
      "x": 82,
      "y": 240,
      "name": "Smoother",
      "params": {
        "filtReg": 33,
        "filt": 1.5E-4
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 4,
      "x": 401,
      "y": 83,
      "name": "FB Out 1",
      "params": {
        "register": 35
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot1CADBlock",
      "blockNum": 5,
      "x": 195,
      "y": 184,
      "name": "Pot 1",
      "params": {
        "speedup": false,
        "potRegister": 17
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 6,
      "x": 171,
      "y": 227,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 1.0,
        "outHigh": 0.5
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_2_to_1CADBlock",
      "blockNum": 7,
      "x": 291,
      "y": 147,
      "name": "Mixer 2:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "output": 37
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ChorusCADBlock",
      "blockNum": 8,
      "x": 290,
      "y": 204,
      "name": "Chorus",
      "params": {
        "rateMax": 511.0,
        "number6554000": 6554000.0,
        "output1": 38,
        "delayLength": 1301.0,
        "tap1Center": 0.5,
        "rate": 120.83,
        "width": 26.06,
        "lfoSel": 0.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 9,
      "x": 180,
      "y": 319,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.5,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 10,
      "x": 291,
      "y": 318,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.5,
        "delayLength": 13969.0,
        "tap1Ratio": 1.0,
        "tap2Ratio": 0.502,
        "tap3Ratio": 1.0,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 40,
        "output2": 0,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.HPF_RDFXCADBlock",
      "blockNum": 11,
      "x": 291,
      "y": 373,
      "name": "HPF 1P",
      "params": {
        "freq": 0.0978500736484832,
        "output": 41,
        "lpf1": 42
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 12,
      "x": 291,
      "y": 428,
      "name": "LPF 1P",
      "params": {
        "freq": 0.2144694458890154,
        "lpf1": 43
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 13,
      "x": 617,
      "y": 59,
      "name": "FB Out 1",
      "params": {
        "register": 35
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 14,
      "x": 249,
      "y": 480,
      "name": "FB In 1",
      "params": {
        "register": 35,
        "lGain": 1.31
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.control_smootherCADBlock",
      "blockNum": 15,
      "x": 335,
      "y": 268,
      "name": "Smoother",
      "params": {
        "filtReg": 45,
        "filt": 1.5E-4
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_2_to_1CADBlock",
      "blockNum": 16,
      "x": 580,
      "y": 118,
      "name": "Mixer 2:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "output": 46
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 17,
      "x": 466,
      "y": 224,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 1.0,
        "outHigh": 0.5
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ChorusCADBlock",
      "blockNum": 18,
      "x": 580,
      "y": 175,
      "name": "Chorus",
      "params": {
        "rateMax": 511.0,
        "number6554000": 6554000.0,
        "output1": 48,
        "delayLength": 1301.0,
        "tap1Center": 0.5,
        "rate": 120.83,
        "width": 26.06,
        "lfoSel": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 19,
      "x": 450,
      "y": 276,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.5,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 20,
      "x": 580,
      "y": 256,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.5,
        "delayLength": 15694.0,
        "tap1Ratio": 1.0,
        "tap2Ratio": 0.502,
        "tap3Ratio": 1.0,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 50,
        "output2": 0,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.HPF_RDFXCADBlock",
      "blockNum": 21,
      "x": 580,
      "y": 310,
      "name": "HPF 1P",
      "params": {
        "freq": 0.0978500736484832,
        "output": 51,
        "lpf1": 52
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 22,
      "x": 580,
      "y": 364,
      "name": "LPF 1P",
      "params": {
        "freq": 0.2144694458890154,
        "lpf1": 53
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OutputCADBlock",
      "blockNum": 23,
      "x": 406,
      "y": 517,
      "name": "Output",
      "params": {
        "mono": false,
        "offset0": false,
        "gain1": 0.5011872336272722,
        "gain2": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 24,
      "x": 590,
      "y": 420,
      "name": "FB In 1",
      "params": {
        "register": 35,
        "lGain": 1.31
      }
    }
  ],
  "connections": [
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output 1",
      "toBlockIndex": 3,
      "toPin": "Control Input"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output",
      "toBlockIndex": 6,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 7,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 4,
      "fromPin": "Feedback Output",
      "toBlockIndex": 7,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 7,
      "toPin": "Level 2"
    },
    {
      "fromBlockIndex": 7,
      "fromPin": "Output",
      "toBlockIndex": 8,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "LFO_Rate"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "LFO_Width"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output",
      "toBlockIndex": 9,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Output",
      "toBlockIndex": 10,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 9,
      "fromPin": "Control Output 1",
      "toBlockIndex": 10,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 9,
      "fromPin": "Control Output 1",
      "toBlockIndex": 10,
      "toPin": "Delay Time 2"
    },
    {
      "fromBlockIndex": 10,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 11,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 11,
      "fromPin": "Output",
      "toBlockIndex": 12,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Output",
      "toBlockIndex": 14,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output 1",
      "toBlockIndex": 15,
      "toPin": "Control Input"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 2",
      "toBlockIndex": 16,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 13,
      "fromPin": "Feedback Output",
      "toBlockIndex": 16,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 16,
      "toPin": "Level 2"
    },
    {
      "fromBlockIndex": 15,
      "fromPin": "Control Output",
      "toBlockIndex": 17,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 16,
      "fromPin": "Output",
      "toBlockIndex": 18,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 17,
      "fromPin": "Control Output 1",
      "toBlockIndex": 18,
      "toPin": "LFO_Rate"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 18,
      "toPin": "LFO_Width"
    },
    {
      "fromBlockIndex": 15,
      "fromPin": "Control Output",
      "toBlockIndex": 19,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 18,
      "fromPin": "Output",
      "toBlockIndex": 20,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 19,
      "fromPin": "Control Output 1",
      "toBlockIndex": 20,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 19,
      "fromPin": "Control Output 1",
      "toBlockIndex": 20,
      "toPin": "Delay Time 2"
    },
    {
      "fromBlockIndex": 19,
      "fromPin": "Control Output 1",
      "toBlockIndex": 20,
      "toPin": "Delay Time 3"
    },
    {
      "fromBlockIndex": 20,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 21,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 21,
      "fromPin": "Output",
      "toBlockIndex": 22,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Output",
      "toBlockIndex": 23,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 22,
      "fromPin": "Output",
      "toBlockIndex": 23,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 22,
      "fromPin": "Output",
      "toBlockIndex": 24,
      "toPin": "Feedback Input"
    }
  ]
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


D01 Stereo Oil Can Delay 02.spcdj :
JSON:
{
  "formatVersion": 1,
  "buildNumber": 1070,
  "type": "patch",
  "patchFileName": "D01_Stereo_Oil_Can_Delay_02.spcdj",
  "comments": {
    "fileName": "Untitled",
    "version": "Patch saved from SpinCAD Designer version 1070",
    "lines": [
      "Pot 0: Delay Time (up to 494 ms)",
      "Pot 1: Modulation Width",
      "Pot 2: Feedback",
      "Part of a Pedal PCB Community project.",
      ""
    ]
  },
  "potValues": [
    41.0,
    90.0,
    28.0
  ],
  "blocks": [
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.InputCADBlock",
      "blockNum": 0,
      "x": 270,
      "y": 9,
      "name": "Input"
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot0CADBlock",
      "blockNum": 1,
      "x": 40,
      "y": 221,
      "name": "Pot 0",
      "params": {
        "speedup": false,
        "potRegister": 16
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot1CADBlock",
      "blockNum": 2,
      "x": 39,
      "y": 267,
      "name": "Pot 1",
      "params": {
        "speedup": false,
        "potRegister": 17
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot2CADBlock",
      "blockNum": 3,
      "x": 37,
      "y": 318,
      "name": "Pot 2",
      "params": {
        "speedup": false,
        "potRegister": 18
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 4,
      "x": 248,
      "y": 98,
      "name": "FB Out 1",
      "params": {
        "register": 32
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 5,
      "x": 403,
      "y": 206,
      "name": "FB Out 2",
      "params": {
        "register": 33
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OilCanDelayCADBlock",
      "blockNum": 6,
      "x": 185,
      "y": 154,
      "name": "Oil Can Delay",
      "params": {
        "delayLength": 16188,
        "ratio": 2,
        "modDepth": 5.0,
        "fbkGain": 0.5,
        "dampFreq": 2000.0,
        "lfoSel": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 7,
      "x": 242,
      "y": 203,
      "name": "FB In 1",
      "params": {
        "register": 32,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OilCanDelayCADBlock",
      "blockNum": 8,
      "x": 384,
      "y": 260,
      "name": "Oil Can Delay",
      "params": {
        "delayLength": 16188,
        "ratio": 2,
        "modDepth": 6.0,
        "fbkGain": 0.5,
        "dampFreq": 2000.0,
        "lfoSel": 1
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 9,
      "x": 401,
      "y": 328,
      "name": "FB In 2",
      "params": {
        "register": 33,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OutputCADBlock",
      "blockNum": 10,
      "x": 253,
      "y": 386,
      "name": "Output",
      "params": {
        "mono": false,
        "offset0": false,
        "gain1": 1.0,
        "gain2": 1.0
      }
    }
  ],
  "connections": [
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 6,
      "toPin": "Audio Input"
    },
    {
      "fromBlockIndex": 4,
      "fromPin": "Feedback Output",
      "toBlockIndex": 6,
      "toPin": "Feedback In"
    },
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Delay Time"
    },
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Mod Width"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Audio Output",
      "toBlockIndex": 7,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 8,
      "toPin": "Audio Input"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Feedback Output",
      "toBlockIndex": 8,
      "toPin": "Feedback In"
    },
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Delay Time"
    },
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Mod Width"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Audio Output",
      "toBlockIndex": 9,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Audio Output",
      "toBlockIndex": 10,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Audio Output",
      "toBlockIndex": 10,
      "toPin": "Input 2"
    }
  ]
}
 
Thanks DL. I've been encountering some interesting oddities while working with 99.1070
a) Most recently today, after doing several edits and saving patches, switching between patches and viewing the Patch Info, the info is borked. But when I go back to patch #1 and view the Patch Info, everything therein is back to its original edited contents.
(b)
b) Another item . . . . a patch I created on my MacBook played (audited) just fine before I saved it. But when I opened it today, it would not make a sound during an audit. None of the Instruction/Register/Memory counts were out of limits. So I figure I just need to rebuild it. (?)
Regarding (a), who can say? If you can come up with a repeatable sequence I can look at it.

For (b), send it to me and I'll see what's what.

In general, if you run the program in debug mode, there may be something useful shown on the console when these things happen. Otherwise they go into the bit bucket.


Thanks,

DL
 
Regarding (a), who can say? If you can come up with a repeatable sequence I can look at it.

For (b), send it to me and I'll see what's what.

In general, if you run the program in debug mode, there may be something useful shown on the console when these things happen. Otherwise they go into the bit bucket.


Thanks,

DL
It's not been a recognizable repeatable sequence. This is only the second time it's happened in 99.1070. I brought it up because it happened just before I logged into the forum and caught up on this thread.

I keep forgetting about debug mode. Thanks!
 
Admittedly, I'm a bit of a dingus, but I was unable to get the patch into Spincad via text as you instructed. The finder that opens when I use "Open Patch" is unnavigable. I'm not able to locate the text file. I did, however, replicate your second, simpler patch visually. I only really placed the tiles and connected them the same way. I'm sure I'm missing some of the details you've added, but what I notice while listening to my simplified version is that there isn't much passing between the left and right that I notice. It feels like they're in unison in either ear.
 
If you can't save the collected code to a xxxx.SPCDJ file directly from the text app, just save the text file as text, then rename it so it has the .SPCDJ file extension. That is what SpinCAD Designer will open.

I don't get how the SpinCAD 'Open Patch' finder dialog window is unnavigable. You using a PC or Mac? Can you describe your navigation issue?
 
I got the same result. I'll look into it.

Update:

Remove the first two lines which say (between the lines):
---
JSON:

---
The first character in the file should be "{"/

Does it help?

Btw I noticed memory allocation is in the red so that will have to be fixed.

DL
 
I got the same result. I'll look into it.

Update:

Remove the first two lines which say (between the lines):
---
JSON:

---
The first character in the file should be "{"/

Does it help?

Btw I noticed memory allocation is in the red so that will have to be fixed.

DL
Yeah, the ":JSON:" is not part of the file - it's just the code type identifier used by the forum software. Gotta copy only the code in the darker section of the forum code block.

When I saved the patch, the Memory Allocation box wasn't in the red. And now when I reload the .spcdj file, it loads and audits fine, but the Memory Allocation box says 33255 when I hover over it. That its definitely over the limit, but the Memory Allocation box remains blue and did not turn red - or even yellow. I've been going on the Allocation box colors and not hovering over them to dbl-chk if they're actually over the limit. So I guess I'll need to hover to be sure.

I also found out that on a Mac the code copied into a fresh text file needs to be converted to "Plain Text" before saving it. Mac's Text Edit won't let you save it as an .spcdj file directly. So save it as .txt, then after closing the file in Text Editor, rename the suffix to .spcdj

I just copied both of the code files above (post #21) and got them load just fine 99.1070
And they both audit just fine in SpinCAD. But still the memory allocation box gave no color indication that the memory was overtaxed.
 
It's somewhat odd and it may be a bug in the Oil Can Delay module. I had Claude do the analysis and it seems this is so.
  • Delay Time pin unconnected — the slider directly sets the buffer size: delayLength + modAmplitude + 64 samples. Moving the slider changes memory consumption 1:1 (3341 … 16448+ of the 32768-sample delay RAM).
  • Delay Time pin connected — the slider value is ignored for allocation; the buffer is always sized for MAX_DELAY (16384) since the control can sweep the full range at runtime, and the slider only matters as a stored/displayed default. The read tap is then computed from the control register scaled over MIN_DELAY..MAX_DELAY.
This was one of the modules that I had Claude do on its own. It should in fact take the control panel setting and set that for the max, using the control pin input to scale that down. I'll enter it as an issue and try to solve it eventually.

DL
 
It's somewhat odd and it may be a bug in the Oil Can Delay module. I had Claude do the analysis and it seems this is so.
  • Delay Time pin unconnected — the slider directly sets the buffer size: delayLength + modAmplitude + 64 samples. Moving the slider changes memory consumption 1:1 (3341 … 16448+ of the 32768-sample delay RAM).
  • Delay Time pin connected — the slider value is ignored for allocation; the buffer is always sized for MAX_DELAY (16384) since the control can sweep the full range at runtime, and the slider only matters as a stored/displayed default. The read tap is then computed from the control register scaled over MIN_DELAY..MAX_DELAY.
This was one of the modules that I had Claude do on its own. It should in fact take the control panel setting and set that for the max, using the control pin input to scale that down. I'll enter it as an issue and try to solve it eventually.

DL
So, we should wait before trying to use the "Oil Can Delay" block for the time being? Or can we still use it and just monitor the Memory Allocation box by hovering over it for a max of 32768? (My latest rendition of the D01 Stereo Oil Can Delay 02.spcdj patch has both OilCan Delay blocks with the time set at: Delay Time 484 ms (LFO 1.03 Hz) and the Memory Allocation box reads 33225 when hovered over.)
 
So, we should wait before trying to use the "Oil Can Delay" block for the time being? Or can we still use it and just monitor the Memory Allocation box by hovering over it for a max of 32768? (My latest rendition of the D01 Stereo Oil Can Delay 02.spcdj patch has both OilCan Delay blocks with the time set at: Delay Time 484 ms (LFO 1.03 Hz) and the Memory Allocation box reads 33225 when hovered over.)
I'm pretty sure it will not work correctly on an FV-1. SpinCAD's simulator has some wiggle room on resources simply because I decided to make it work that way. So you can go over on instructions etc. to a small amount and still hear it. I'll check it eventually on Mac to see whether it doesn't turn red - it should.

There are some ideas for implementation shortcuts that would give a "sort of" oil can behavior. The big challenge is maintaining an accurate 1/t relationship between the delay time and the LFO rate. If you don't care that this is not quite accurate, let me know. The Source Audio Collider pedal has an "oil-can" algorithm that doesn't link these together at all. Their implementation/concept hinges on the sonic nature of the delay channel - dark and somewhat distorted. Which IMO misses half of the point.

Most recently I implemented an oil-can delay in Faust for the Chaos Stratus pedal - but fortunately in Faust you can specify the 1/t relationship explicitly for an interpolating delay line and it works very well. The magic happens when you crank the feedback because the pitch bend synchronizes with the delay time.

DL
 
I'm pretty sure it will not work correctly on an FV-1. SpinCAD's simulator has some wiggle room on resources simply because I decided to make it work that way. So you can go over on instructions etc. to a small amount and still hear it. I'll check it eventually on Mac to see whether it doesn't turn red - it should.

There are some ideas for implementation shortcuts that would give a "sort of" oil can behavior. The big challenge is maintaining an accurate 1/t relationship between the delay time and the LFO rate. If you don't care that this is not quite accurate, let me know. The Source Audio Collider pedal has an "oil-can" algorithm that doesn't link these together at all. Their implementation/concept hinges on the sonic nature of the delay channel - dark and somewhat distorted. Which IMO misses half of the point.

Most recently I implemented an oil-can delay in Faust for the Chaos Stratus pedal - but fortunately in Faust you can specify the 1/t relationship explicitly for an interpolating delay line and it works very well. The magic happens when you crank the feedback because the pitch bend synchronizes with the delay time.

DL
I see now, that no matter what Time value I assign to the Oil Can Delay blocks, even down to less than 200ms each, the memory allocation box reads 33225 when it's hovered over. So that Oil Can Delay block needs some attention. Understood. Thanks DL!
 
Did my critique about having the effect sound like dual mono as opposed to stereo make sense? Do you hear that as well?
Yes. It made sense. I did not start the full stereo spread tweaking on either patch yet. SpinCAD Designer will not open a text file. After copying the code text to a fresh text file, it needs to be saved, THEN locate the file in Finder (Mac) or File Explorer (Windows) and RENAME the file extension to "spcdj". SpinCAD can then find and open the file.

And note what Digital Lary said about the "Oil Can Delay" block, it has a bug will not be useable with an actual FV-1. SpinCAD is more forgiving than the FV-1 itself and can play a patch if it is somewhat buggy.

As I stated when posted - it's just the first go-around to start the feedback and change process. It may go thru a number of iterations before we find something satisfying. I suggest trying the first file with the code text to .spcdj file extension change because the second is using the buggy Oil Can Delay block. Meanwhile, I'm going to pull these files over to my PC where I will do some Oil Can Delay block testing for DL and start tweaking the first patch (D01 Stereo Oil Can Delay.spcdj) for a legitimate stereo spread.

When first presenting each patch in your list, I intend to present two patches from which to choose as a starting point. I think it best to work with just one patch, tweak it till we're happy, then move on to the next. This will be a process.
 
Last edited:
Back
Top