top of page

Sicknote - Pitchshifter / Pattern Sequencer Pedal


A 9-bit pitch-shifter / pattern sequencer pedal using an MSM6322 chip (compares to MSM6722)



Schematic




The circuit has a moderately low parts count but does require a microcontroller and the MSM chip is SMD. I haven't included a stripboard layout as I ended up using two connected together (one I'd already made as a breadboard-friendly breakout board) and the layout could be improved to save space.


If anyone's very eager I could draw up a stripboard layout, with an SMD adapter for the chip, but I'm about to order PCBs so probably won't get round to testing it. Hopefully soon I'll be selling the PCBs with the MSM chip and the pre-programmed micrcontroller.


Click here to get the hex file for the microcontroller. I used a PIC16F1705.


Credit to Phobos for their experimentation with this chip that made me aware of its existence! Check out their other work too, lots of fun stuff to gas over. They worked out a way to control the chip as a pitch shifter (but not pattern sequencer) using CMOS.




So a little bit about this chip...


I'm pretty sure it was intended for karaoke machines and it's amazing and disappointing in equal measures.


The tracking is honestly phenomenal, jam any odd chord into its rusty old brain and it'll shift it perfectly. I also really like the internal LPF, that adjusts depending on the pitch you shift to, mostly masking the changing sample rate.


These two aspects together suggest it uses a nascent granular technique, changing the sample rate of playback to manipulate the pitch. Occassionally you can hear a subtle pulsing sound that also backs up this theory. If it is granular, then the envelope tracking and reproduction is also pretty impressive.


On the downside, it's 9 bit at the output and 8 at the input, giving easily audible digital distortion. I tried adding further pre and post filtering but it dulled the signal more than the noise tbh. There are two internal op amps that can be used for pre-filtering, I just used one for a little pre-gain.


This is the slightly infuriating range of notes you can shift to, this comes from the MSM6722 datasheet but applies to both chips. Tell me if you recognise the scale!


The chip has two modes (set with the "MS" pin) and you can only reach an octave up in "UP/DOWN" mode - skipping between pitches by one note in the scale at a time - which is useless for a pattern sequencer. So I hooked it up in "BIN" (binary input) mode, sacrificing the octave up.


In the schematic "MS" is connected to the microcontroller, meaning I could potentially switch it to "UP/DOWN" mode.


If you wanna use CMOS or write your own code, this is how the bits should be set for each note. Took me a bit of trial and error to figure this out, I still can't see the full pattern to it.


"BIT0" = "P0" in the datasheet pinout, "BIT1" = "P1" etc. "!pitch" is the lowest note and "pitch == 15" is the highest. The MS pin should be set high for this mode.


if(!pitch)

{

BIT0 = 0; BIT1 = 0; BIT2 = 0; BIT3 = 0;

}

if(pitch == 1)

{

BIT0 = 1; BIT1 = 0; BIT2 = 0; BIT3 = 0;

}

if(pitch == 2)

{

BIT0 = 0; BIT1 = 1; BIT2 = 0; BIT3 = 0;

}

if(pitch == 3)

{

BIT0 = 1; BIT1 = 1; BIT2 = 0; BIT3 = 0;

}

if(pitch == 4)

{

BIT0 = 0; BIT1 = 0; BIT2 = 1; BIT3 = 0;

}

if(pitch == 5)

{

BIT0 = 1; BIT1 = 0; BIT2 = 1; BIT3 = 0;

}

if(pitch == 6)

{

BIT0 = 0; BIT1 = 1; BIT2 = 1; BIT3 = 0;

}

if(pitch == 7)

{

BIT0 = 1; BIT1 = 1; BIT2 = 1; BIT3 = 0;

}

if(pitch == 8)

{

BIT0 = 0; BIT1 = 0; BIT2 = 0; BIT3 = 1;

}

if(pitch == 9)

{

BIT0 = 1; BIT1 = 0; BIT2 = 0; BIT3 = 1;

}

if(pitch == 10)

{

BIT0 = 0; BIT1 = 1; BIT2 = 0; BIT3 = 1;

}

if(pitch == 11)

{

BIT0 = 1; BIT1 = 1; BIT2 = 0; BIT3 = 1;

}

if(pitch == 12)

{

BIT0 = 0; BIT1 = 0; BIT2 = 1; BIT3 = 1;

}

if(pitch == 13)

{

BIT0 = 1; BIT1 = 0; BIT2 = 1; BIT3 = 1;

}

if(pitch == 14)

{

BIT0 = 0; BIT1 = 1; BIT2 = 1; BIT3 = 1;

}

if(pitch == 15)

{

BIT0 = 1; BIT1 = 1; BIT2 = 1; BIT3 = 1;

}


I know I know ... I should be using switch/case or something

1 Comment


Does this circuit have a pcb?

Like
Recent Posts
Search By Tags
Glowfly_Logo_RGB_inv.png
bottom of page