Dual pitch shifter for FV-1

Started by taudio, May 25, 2024, 11:41:43 AM

Previous topic - Next topic

taudio

A question was asked in the "DIY Guitar Pedal" group in Facebook about DIY pitch shifters -- I wasn't sure how many people here are also members of that group so I'm also posting an updated version of my response here ...

I've messed around with the blocks in SpinCAD Designer but never actually put any time into making a pitch shifter. So, here's a first pass at making something in SpinCAD Designer: a dual pitch shifter.

The controls are:

Pot 0: Amount of first pitch shift
Pot 1: Amount of second pitch shift
Pot 2: Pitch shift level

Pitch shifting tends to add some high frequency "hash" so I put low pass filters after each pitch shifter. The gains are staged so the overall effect is roughly unity gain.

For fun, I added a bit of reverb and an additional low pass filter to smooth things out.

It looks like this:



The demo has four examples

1. Clean guitar (no pitch shift)
2. Pitch shift - Octave down + fifth
3. Pitch shift - Octave up and down
4. Pitch shift - Dual octave up with de-tuning


One improvement I can see already is quantizing the pitch shift adjustment (unless you're into microtonal effects :))

Does anyone else have suggestions for improving this?

If anyone wants the SpinCAD Designer and / or SpinASM files, let me know in a reply and I'll post them somewhere.

Thanks!
  • SUPPORTER

potul

In this kind of pedals I tend to use a different approach:

1-Instead of a pot per pitch shifter, use one pot for "presets" (octave up + octave down, 5th up + octave down, ....). You can use pot skip for this.
2-Have a level pot for each pitch shifter

But it highly depends on what you plan to do with it. I use these pedals more at "POG Style" rather than "Whammy style"


Digital Larry

I never liked the FV-1 pitch shifters enough to spend much time on them.  Not much into whammy as a performance effect in my own playing, for example.  I think the pot skip strategy for selecting some different intervals is not bad. 

As you may or may not know, incorporating Pot Skipping requires you to write at least some of the FV-1 code by hand as there is no "pot skip" block in SpinCAD.  I'm not even sure how you could make something with enough flexibility for all the possible ways pot skip could be used that would not require a lot of coding work in SpinCAD that would only be used for that purpose (i.e. I'm too lazy to do it). 

I also believe that writing FV-1 code by hand builds character, the same way crawling under a barbed wire fence does!

DL
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

potul

Quote from: Digital Larry on May 27, 2024, 10:37:37 AMI'm not even sure how you could make something with enough flexibility for all the possible ways pot skip could be used

I get it... the way SpinCAD works is more "signal path" oriented. And pot Skip is more "code execution" oriented. Maybe a "mutiplexer" block, with one input and n-outputs (binary, 0-1?)

taudio

Quote from: Digital Larry on May 27, 2024, 10:37:37 AMI never liked the FV-1 pitch shifters enough to spend much time on them.  Not much into whammy as a performance effect in my own playing, for example.  I think the pot skip strategy for selecting some different intervals is not bad. 

As you may or may not know, incorporating Pot Skipping requires you to write at least some of the FV-1 code by hand as there is no "pot skip" block in SpinCAD.  I'm not even sure how you could make something with enough flexibility for all the possible ways pot skip could be used that would not require a lot of coding work in SpinCAD that would only be used for that purpose (i.e. I'm too lazy to do it). 

I also believe that writing FV-1 code by hand builds character, the same way crawling under a barbed wire fence does!

DL

Thanks for the suggestion potul!

DL, I see a "PotSkip" block in SpinCAD Designer (Build 1039) but it isn't obvious to me how it works. I've searched and can't seem to find any documentation in it.

Can you please explain how to use this block?
  • SUPPORTER

Digital Larry

Quote from: potul on May 27, 2024, 10:46:14 AM
Quote from: Digital Larry on May 27, 2024, 10:37:37 AMI'm not even sure how you could make something with enough flexibility for all the possible ways pot skip could be used

I get it... the way SpinCAD works is more "signal path" oriented. And pot Skip is more "code execution" oriented. Maybe a "mutiplexer" block, with one input and n-outputs (binary, 0-1?)

The only thing I can really come up with is something like a 1-of-n (mux, as you say) input selector.  Currently blocks don't redraw themselves in response to any control panel changes, so while I'd prefer the number of inputs be selectable, it's too much of a pain.  A 4-input mux might be useful for implementing those Boss-style (4 modulations on one knob) sort of things.
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

Digital Larry

#6
Quote from: taudio on May 27, 2024, 11:07:56 AMDL, I see a "PotSkip" block in SpinCAD Designer (Build 1039) but it isn't obvious to me how it works. I've searched and can't seem to find any documentation in it.

Can you please explain how to use this block?
Hmmm, maybe I was experimenting with something last time I was messing around in the code and left it in the menu by mistake.  As far as I know I have not come up with anything actually useful in that regards yet, sorry to say.

DL
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

Cybercow

Quote from: Digital Larry on May 27, 2024, 12:26:47 PM
Quote from: taudio on May 27, 2024, 11:07:56 AMDL, I see a "PotSkip" block in SpinCAD Designer (Build 1039) but it isn't obvious to me how it works. I've searched and can't seem to find any documentation in it.

Can you please explain how to use this block?
Hmmm, maybe I was experimenting with something last time I was messing around in the code and left it in the menu by mistake.  As far as I know I have not come up with anything actually useful in that regards yet, sorry to say.

DL

From what I make of the "Pot Skip" control, whilst it appears to remain unfinished, what is available in its Control Panel is a range selector of from 4 to 12. To me, this suggests that it was intended to act as some sort of 'detent' control for a pot. If that is anywhere near true, it would need an 'Output' contact point to exact any effect. With only an 'Input' contact point, the "Pot Skip" seems pointless. (?)
Cybercow (moo)
Don't let your talent take you where your character cannot keep you.

taudio

#8
Quote from: potul on May 27, 2024, 02:06:46 AMIn this kind of pedals I tend to use a different approach:

1-Instead of a pot per pitch shifter, use one pot for "presets" (octave up + octave down, 5th up + octave down, ....). You can use pot skip for this.
2-Have a level pot for each pitch shifter

But it highly depends on what you plan to do with it. I use these pedals more at "POG Style" rather than "Whammy style"



I've spent more time working in SpinCAD to make something more practical ... and here's what I've got so far.



Based on the suggestion from potul, the effect now has one level control per pitch shifter. The pitch shifters are set by constants that you select from the following table:



Some mild chorus on the output of the pitch shifters (combined with low pass filtering) makes things sound a bit better when lower buffer sizes are used.

Different pitch combinations can be realized by changing programs on the pedal.

Any additional suggestions for improving this?
  • SUPPORTER

Digital Larry

Quote from: Cybercow on May 27, 2024, 07:36:18 PMWith only an 'Input' contact point, the "Pot Skip" seems pointless. (?)
Yeah, well you got me there!

 :icon_eek:
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

taudio

Quote from: taudio on May 27, 2024, 08:53:42 PM
Quote from: potul on May 27, 2024, 02:06:46 AMIn this kind of pedals I tend to use a different approach:

1-Instead of a pot per pitch shifter, use one pot for "presets" (octave up + octave down, 5th up + octave down, ....). You can use pot skip for this.
2-Have a level pot for each pitch shifter

But it highly depends on what you plan to do with it. I use these pedals more at "POG Style" rather than "Whammy style"



I've spent more time working in SpinCAD to make something more practical ... and here's what I've got so far.



Based on the suggestion from potul, the effect now has one level control per pitch shifter. The pitch shifters are set by constants that you select from the following table:



Some mild chorus on the output of the pitch shifters (combined with low pass filtering) makes things sound a bit better when lower buffer sizes are used.

Different pitch combinations can be realized by changing programs on the pedal.

Any additional suggestions for improving this?


I continued working on these and now have a bank of eight different patches:

Patch 1: Chorus with feedback
- Pot 0: Speed
- Pot 1: Depth
- Pot 2: Feedback

Patch 2: Multi-voice Chorus with feedback
- Pot 0: Speed
- Pot 1: Depth
- Pot 2: Feedback

Patch 3: Octave up-down with Chorus
- Pot 0: Speed
- Pot 1: Depth
- Pot 2: Octave up-down level (combined)

Patch 4: Octave up-down with Chorus
- Pot 0: Chorus Speed
- Pot 1: Octave up level
- Pot 2: Octave down level

Patch 5: Third and Fifth with Chorus
- Pot 0: Chorus Speed
- Pot 1: Third above level
- Pot 2: Fifth above level

Patch 6: Fourth and Fifth with Chorus
- Pot 0: Chorus Speed
- Pot 1: Fourth above level
- Pot 2: Fifth above level

Patch 7: Octave up-down with Multi-voice Chorus
- Pot 0: Chorus Speed
- Pot 1: Octave up level
- Pot 2: Octave down level

Patch 8: Octave up-down with Flanger
- Pot 0: Flanger Speed
- Pot 1: Octave up level
- Pot 2: Octave down level

The SpinCAD Designer file and the fv1-programmer .json file can be downloaded here. (Scroll until you see the "Pitch Shift + Chorus Algorithms" button.)

I'll also try to get this posted to the FV-1 Programs archive.

Cheers!
  • SUPPORTER

mark2

#11
I haven't had a chance to look at this yet, but it sounds pretty awesome. Thanks for sharing!

Mind if I add it to this site too? https://mstratman.github.io/fv1-programs/
EDIT: Nevermind I see you added a pull request. Thanks! I'm adding a quick question or two to the PR for you before I merge.