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

Alrighty then! I'm going to jump to R08 - 'Dual-Tank Stereo Spring Reverb' for now. R05 (Slow-Attack Auto-Volume Reverb), R06 (Diffuse Multi-Tap Tape Reverb) & R07 (Reverse-Envelope Gated Reverb) are all presenting a good bit of challenge for the time being. We might need to settle on using stereo versions of standard reverbs like room, hall, plate, spring, etc. for slots R05, R06 & R07.

So here are two candidates for R08 (Dual-Tank Stereo Spring Reverb). . . . .

This first one, in my opinion, is a bit janky for a spring reverb. It uses 3 double-tapped delay blocks to achieve the effect. And while it may be useable, I don't think it really fits the bill for a spring/tank verb effect. We can futz with the 3 different Delay blocks' Delay Time parameters (in their respective Control Panels) to get a better spring/tank effect. Still, you may find it useful.

The second one presented uses a 'Spring Reverb' designer block with both left & right inputs & outputs and only has two control pots. The 3rd pot is not used.

R08_Stereo_Tank_Reverb.spcdj
JSON:
{
  "formatVersion": 1,
  "buildNumber": 1070,
  "type": "patch",
  "patchFileName": "R08_Stereo_Tank_Reverb.spcdj",
  "comments": {
    "fileName": "R08_Stereo_Tank_Reverb.spcdj",
    "version": "Patch saved from SpinCAD Designer version 1070",
    "lines": [
      "Pot 0: Reverb Time",
      "Pot 1: Feedback",
      "Pot 2: Feedback Filter",
      "",
      "R08_Stereo_Tank_Reverb.spcdj"
    ]
  },
  "potValues": [
    0.0,
    0.0,
    0.0
  ],
  "blocks": [
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.InputCADBlock",
      "blockNum": 0,
      "x": 319,
      "y": 2,
      "name": "Input"
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot0CADBlock",
      "blockNum": 1,
      "x": 42,
      "y": 89,
      "name": "Pot 0",
      "params": {
        "speedup": false,
        "potRegister": 16
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 2,
      "x": 104,
      "y": 89,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.36,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.control_smootherCADBlock",
      "blockNum": 3,
      "x": 202,
      "y": 89,
      "name": "Smoother",
      "params": {
        "filtReg": 34,
        "filt": 0.0028321367257876373
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 4,
      "x": 575,
      "y": 27,
      "name": "FB Out 1",
      "params": {
        "register": 37
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot1CADBlock",
      "blockNum": 5,
      "x": 40,
      "y": 303,
      "name": "Pot 1",
      "params": {
        "speedup": false,
        "potRegister": 17
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 6,
      "x": 475,
      "y": 168,
      "name": "FB Out 2",
      "params": {
        "register": 37
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBOutputCADBlock",
      "blockNum": 7,
      "x": 216,
      "y": 199,
      "name": "FB Out 3",
      "params": {
        "register": 37
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 8,
      "x": 102,
      "y": 304,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.42,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 9,
      "x": 403,
      "y": 210,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.8912509381337456,
        "delayLength": 6472.0,
        "tap1Ratio": 1.0,
        "tap2Ratio": 0.4206666666666667,
        "tap3Ratio": 0.0,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 39,
        "output2": 40,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot2CADBlock",
      "blockNum": 10,
      "x": 41,
      "y": 458,
      "name": "Pot 2",
      "params": {
        "speedup": false,
        "potRegister": 18
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 11,
      "x": 324,
      "y": 282,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.8912509381337456,
        "delayLength": 8091.0,
        "tap1Ratio": 1.0,
        "tap2Ratio": 0.6525,
        "tap3Ratio": 0.0,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 41,
        "output2": 42,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 12,
      "x": 104,
      "y": 458,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.24,
        "outHigh": 0.8
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 13,
      "x": 603,
      "y": 328,
      "name": "LPF 1P",
      "params": {
        "freq": 0.5095391792541264,
        "lpf1": 44
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 14,
      "x": 603,
      "y": 382,
      "name": "FB In 2",
      "params": {
        "register": 37,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.TripleTapCADBlock",
      "blockNum": 15,
      "x": 554,
      "y": 89,
      "name": "ThreeTap",
      "params": {
        "inputGain": 1.0,
        "fbkGain": 0.8912509381337456,
        "delayLength": 5057.0,
        "tap1Ratio": 1.0,
        "tap2Ratio": 0.189,
        "tap3Ratio": 0.0,
        "subdivision": 0.0,
        "delayOffset": -1.0,
        "output1": 45,
        "output2": 46,
        "output3": 0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 16,
      "x": 602,
      "y": 227,
      "name": "LPF 1P",
      "params": {
        "freq": 0.5095391792541264,
        "lpf1": 47
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 17,
      "x": 602,
      "y": 279,
      "name": "FB In 1",
      "params": {
        "register": 37,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.LPF_RDFXCADBlock",
      "blockNum": 18,
      "x": 613,
      "y": 467,
      "name": "LPF 1P",
      "params": {
        "freq": 0.5095391792541264,
        "lpf1": 48
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.FBInputCADBlock",
      "blockNum": 19,
      "x": 613,
      "y": 520,
      "name": "FB In 3",
      "params": {
        "register": 37,
        "lGain": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_3_to_1CADBlock",
      "blockNum": 20,
      "x": 341,
      "y": 421,
      "name": "Mixer 3:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "gain3": 1.0,
        "output": 49
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Mixer_3_to_1CADBlock",
      "blockNum": 21,
      "x": 436,
      "y": 418,
      "name": "Mixer 3:1",
      "params": {
        "gain1": 1.0,
        "gain2": 1.0,
        "gain3": 1.0,
        "output": 50
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OutputCADBlock",
      "blockNum": 22,
      "x": 377,
      "y": 500,
      "name": "Output",
      "params": {
        "mono": true,
        "offset0": false,
        "gain1": 1.0,
        "gain2": 0.35481338923357547
      }
    }
  ],
  "connections": [
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 2,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output 1",
      "toBlockIndex": 3,
      "toPin": "Control Input"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 8,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 9,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "Feedback Output",
      "toBlockIndex": 9,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output",
      "toBlockIndex": 9,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Control Output 1",
      "toBlockIndex": 9,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 11,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 7,
      "fromPin": "Feedback Output",
      "toBlockIndex": 11,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output",
      "toBlockIndex": 11,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Control Output 1",
      "toBlockIndex": 11,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 10,
      "fromPin": "Control Output 1",
      "toBlockIndex": 12,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 9,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 13,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Control Output 1",
      "toBlockIndex": 13,
      "toPin": "Frequency"
    },
    {
      "fromBlockIndex": 13,
      "fromPin": "Output",
      "toBlockIndex": 14,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 2",
      "toBlockIndex": 15,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 4,
      "fromPin": "Feedback Output",
      "toBlockIndex": 15,
      "toPin": "Feedback"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output",
      "toBlockIndex": 15,
      "toPin": "Delay Time 1"
    },
    {
      "fromBlockIndex": 8,
      "fromPin": "Control Output 1",
      "toBlockIndex": 15,
      "toPin": "Feedback Gain"
    },
    {
      "fromBlockIndex": 15,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 16,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Control Output 1",
      "toBlockIndex": 16,
      "toPin": "Frequency"
    },
    {
      "fromBlockIndex": 16,
      "fromPin": "Output",
      "toBlockIndex": 17,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 11,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 18,
      "toPin": "Input"
    },
    {
      "fromBlockIndex": 12,
      "fromPin": "Control Output 1",
      "toBlockIndex": 18,
      "toPin": "Frequency"
    },
    {
      "fromBlockIndex": 18,
      "fromPin": "Output",
      "toBlockIndex": 19,
      "toPin": "Feedback Input"
    },
    {
      "fromBlockIndex": 11,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 20,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 9,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 20,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 15,
      "fromPin": "Tap 1 Out",
      "toBlockIndex": 20,
      "toPin": "Input 3"
    },
    {
      "fromBlockIndex": 11,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 21,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 9,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 21,
      "toPin": "Input 2"
    },
    {
      "fromBlockIndex": 15,
      "fromPin": "Tap 2 Out",
      "toBlockIndex": 21,
      "toPin": "Input 3"
    },
    {
      "fromBlockIndex": 20,
      "fromPin": "Output",
      "toBlockIndex": 22,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 21,
      "fromPin": "Output",
      "toBlockIndex": 22,
      "toPin": "Input 2"
    }
  ]
}

R08_Stereo_Tank_Reverb_02.spcdj
JSON:
{
  "formatVersion": 1,
  "buildNumber": 1070,
  "type": "patch",
  "patchFileName": "R08_Stereo_Tank_Reverb_02.spcdj",
  "comments": {
    "fileName": "R08_Stereo_Tank_Reverb.spcdj",
    "version": "Patch saved from SpinCAD Designer version 1070",
    "lines": [
      "Pot 0: Reverb Time",
      "Pot 1: Damping (Reverb Depth)",
      "Pot 2: not used",
      "",
      "R08_Stereo_Tank_Reverb_02"
    ]
  },
  "potValues": [
    98.0,
    99.0,
    1.0
  ],
  "blocks": [
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.InputCADBlock",
      "blockNum": 0,
      "x": 256,
      "y": 55,
      "name": "Input"
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot0CADBlock",
      "blockNum": 1,
      "x": 4,
      "y": 111,
      "name": "Pot 0",
      "params": {
        "speedup": false,
        "potRegister": 16
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 2,
      "x": 67,
      "y": 111,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.44,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.control_smootherCADBlock",
      "blockNum": 3,
      "x": 165,
      "y": 111,
      "name": "Smoother",
      "params": {
        "filtReg": 34,
        "filt": 0.0028321367257876373
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.Pot1CADBlock",
      "blockNum": 4,
      "x": 86,
      "y": 160,
      "name": "Pot 1",
      "params": {
        "speedup": false,
        "potRegister": 17
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.ScaleOffsetControlCADBlock",
      "blockNum": 5,
      "x": 148,
      "y": 160,
      "name": "Scale/Offset",
      "params": {
        "inLow": 0.0,
        "inHigh": 1.0,
        "outLow": 0.42,
        "outHigh": 1.0
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.SpringReverbCADBlock",
      "blockNum": 6,
      "x": 256,
      "y": 111,
      "name": "Spring_Reverb",
      "params": {
        "gain": 0.5,
        "krt": 0.95,
        "krf": 0.7,
        "klap": 0.6,
        "kap0": -0.7,
        "kap1": -0.65,
        "kap2": -0.6,
        "kap3": -0.5,
        "baselen1": 4.0,
        "baselen2": 7.0,
        "outputL": 36,
        "outputR": 37,
        "lp1": 38,
        "lp2": 39,
        "temp": 40
      }
    },
    {
      "className": "com.holycityaudio.SpinCAD.CADBlocks.OutputCADBlock",
      "blockNum": 7,
      "x": 256,
      "y": 167,
      "name": "Output",
      "params": {
        "mono": true,
        "offset0": false,
        "gain1": 1.0,
        "gain2": 0.35481338923357547
      }
    }
  ],
  "connections": [
    {
      "fromBlockIndex": 1,
      "fromPin": "Control Output 1",
      "toBlockIndex": 2,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 2,
      "fromPin": "Control Output 1",
      "toBlockIndex": 3,
      "toPin": "Control Input"
    },
    {
      "fromBlockIndex": 4,
      "fromPin": "Control Output 1",
      "toBlockIndex": 5,
      "toPin": "Control Input 1"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 1",
      "toBlockIndex": 6,
      "toPin": "Input_L"
    },
    {
      "fromBlockIndex": 0,
      "fromPin": "Output 2",
      "toBlockIndex": 6,
      "toPin": "Input_R"
    },
    {
      "fromBlockIndex": 3,
      "fromPin": "Control Output",
      "toBlockIndex": 6,
      "toPin": "Reverb_Time"
    },
    {
      "fromBlockIndex": 5,
      "fromPin": "Control Output 1",
      "toBlockIndex": 6,
      "toPin": "Damping"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "OutputL",
      "toBlockIndex": 7,
      "toPin": "Input 1"
    },
    {
      "fromBlockIndex": 6,
      "fromPin": "OutputR",
      "toBlockIndex": 7,
      "toPin": "Input 2"
    }
  ]
}
 
I agree with you. The first option does not exactly fit the description, but I do like it! I think we call that "Triple Tap Reverb" and keep it as an option.

The second spring option is much closer, but It seems to be clipping/distorting when the spring "thwip/drip" simulation noises are triggered. do you hear this as well?
 
Spring simulation goes beyond what the FV-1 can do convincingly, IMO. This typically uses long chains of identical or nearly so all-passes. Cranking the all-pass coefficient risks overloading the accumulator. If it's giving audible distortion, reduce the input gain. If you need more level afterwards, boost it back up. Don Stavely has a springy algo over at the Spin forum which many people have referenced. I think it includes tremolo.

Nevertheless I'd keep expectations low.

 
I agree with you. The first option does not exactly fit the description, but I do like it! I think we call that "Triple Tap Reverb" and keep it as an option.

The second spring option is much closer, but It seems to be clipping/distorting when the spring "thwip/drip" simulation noises are triggered. do you hear this as well?
I pushed the 2nd one thru to SpinASM and loaded it into an EEPROM and hear the distortion there. We can turn the 'Reverb Time' down to about 83 from the current setting of 95. That should clean up the distortion. I'll make the adjustment and push it thru the SpinASM/EEPROM process and try it again on a Binaura build I have.
 
Spring simulation goes beyond what the FV-1 can do convincingly, IMO. This typically uses long chains of identical or nearly so all-passes. Cranking the all-pass coefficient risks overloading the accumulator. If it's giving audible distortion, reduce the input gain. If you need more level afterwards, boost it back up. Don Stavely has a springy algo over at the Spin forum which many people have referenced. I think it includes tremolo.

Nevertheless I'd keep expectations low.

Thanks DL! I'll copy that SpinASM file and see what I can do get stereo out of it.
 
Back
Top