a small rp2040-based music mangler. (coming June 2023)
- a lo-fi music mangler based on the Raspberry Pi Pico (brother of the nyblcore).
- capable of holding 8 minutes of 8-bit 33 kHz monophonic samples.
- powered by a single AAA battery for up to 3 hours or by powered by USB-C.
- tempo-synced with a selectable BPM between 60 and 300, with samples mangled by beat-synced effects (stutter, retrig, gate, tunneling).
- loaded with real-time effects like a resonant filter, timestretching, volume, and wavefolding.
- sequenced with a 128-step sequencer with recording/playback
- saved and loaded via EEPROM for instant patch recall.
- able to load custom firmware, new samples, all through USB-C.
- sync-compatible with Pocket Operators.
- open-source, wonderfully hackable.
there are eight buttons and four knobs that can be used to manipulate the pikocore. there are two outputs and one input. make sure to plug in only stereo cables to any outputs or inputs.
the top left jack is for incoming trigger signal (e.g. from a pocket operator in SYN1 mode or a pikocore). the top left jack sends out trigger signal and audio signal (for syncing to pocket operators using SYN4 mode).
The buttons on the device can be used to jump to samples and retrigger audio in real time.
jumping: Press any of the eight buttons to jump to that relative position in the sample.
retriggers: Press and hold a button and press another button to create a retrigger effect. The retrigger speed is based on the position of the second button press. Random effects add added to the retriggers, such as changes in speed, pitch, filter envelopes, or volume envelopes.
stop/play: press the two leftmost buttons and the two rightmost buttons simultaneously to stop/play.
Button mashing is encouraged.
The rightmost knob is a filter/volume knob that controls the output level. The leftmost knob is the selector knob, which can choose between eight different positions. Each position changes a different pair of parameters, which can be changed using the middle two knobs, knob A and knob B.
|selector pos||knob a||knob a|
|4||jump prob.||retrig prob.|
|5||tunnel prob.||reverse prob.|
|6||sequencer rec.||sequencer on|
- sample changes the sample being played (holds >100 samples totaling ~8 minutes).
- break modifies all probabilities simultaneously using varied easing functions.
- filter is a resonant low-pass filter that attenuates higher frequencies.
- stretch performs a lofi timestretch effect.
- gate controls the amount of gating on the sample.
- gate prob. controls the probability of gating.
- jump prob. controls the likelihood of jumping to a different step in the current sample.
- retrig prob. controls the likehood of retriggering.
- tunnel prob. controls the likelihood of jumping to a different sample.
- reverse prob. controls the probability of reversing direction.
- sequencer rec will record sequences, up to 128 steps (cw = record, ccw = erase).
- sequencer on turns on the sequencer (cw = on, ccw = off).
- save saves probabilities, sample, volume, and tempo (cw = save).
- load recalls the last save (cw = load).
- volume/fold changes the volume and adds a wavefolding effect.
- tempo controls the tempo in steps of 5 bpm (50-305), encoded in binary.
pikocore uses a audio click signal to sync and is fully compatible with sync signals coming from other devices, like the teenage engineering pocket operators. The pikocore syncing operates at 2 PPQN and has max input/output voltages of 3V.
The upper left audio jack takes in a PO sync signal (
SYN1 on Pocket Operator) and will automatically sync the pikocore. The output sync is separate from the main audio output jack, situated below the Pico mcu. When using a pocket operator, set the receiving device to
SYN5 if the chain continues.
Set the tempo by turning the selector knob fully CW to the eighth spot and then turning knob b. The BPM available is between 50 and 305, and the current value is displayed using binary encoding. Instead of memorizing the binary encoding, you can use tool below to visualize the tempo you want to match. Change the slider and then on the pikocore move knob b so that the lights match up to get this bpm. Because of the clock in the pikocore, BPMs are only accurate to 2%.
Official images. (download these to get the pikocore back to the “stock” image or upgrade it to a newer image).
- June 1st, 2023: v1.0.0. Includes 110 different samples.
Use this tool to change the audio on the pikocore. This will automatically utilize the latest firmware of the pikocore.
Uploaded audio is automatically converted to the base sample rate (33 kHz) and to the base BPM (165 BPM). If you know the BPM of your sample, you can help the server detect it by including it in the filename somewhere as
bpmX. For example,
my_drum_bpm150.wav will automatically be registered as 150 BPM. You can also include the number of beats in the filename somewhere as
beatsY. For example,
my_drum_bpm150_beats4.wav will be registered as having 4 beats. If no information is included, the server will do its best to detect the BPM and then determine the number of beats to be used for beat syncing.
Instructions to upload the generated
.uf2 file: First plug in the pikocore to a computer. Once attached, hold down the “BOOT” button and press the “RST” button once.
After a few seconds, the pikocore will show up on your computer as an new drive. Simply drag the generated
.uf2 file to the new drive and wait (may take up to 7 minutes to upload). Once the pikocore starts blinking, the upload is done and you can disconnect the pikocore and start playing.
Here are some fixes for issues that may crop up when using pikocore.
The audio is really quiet. This happens if you plug in a mono cable to the audio output. Make sure to use only 3.5mm stereo cables and make sure they are pluggined in all the way.
There is a high pitched sound. This seems to happen sometimes while powered by the AAA battery and the potentiometers are in a certain position. Try turning the potentiometers CCW to eliminate the noise. If that doesn’t work, try rotating the battery in is holder. If it is still a problem, try powering from a USB powerbank.
There is no sound, or the sound is muffled sounding. This can happen if the filter gets set fully closed, or the timestretch is at 100%, or the volume if fully down. The best thing to do is to reset these three parameters. Move the selector knob to the second position and turn knob a fully CW and turn knob b fully CCW. This will reset the filter and the timestretch. Now move the selector knob to the eight and last position and try to turn knob a until you can hear something (the volume). This should fix it 90% of the time.
If you still have issues: Please feel free to send me an email at firstname.lastname@example.org.