• TalkBass has been independent since 1998. Add your voice.
    Create a free account to reply to discussions, view embedded media, and browse with fewer display ads.
    Join freeLog in
    Want zero display ads or expanded classifieds tools? Compare plans.

DIY Pedalboard/Sampler

Just finished this custom pedalboard/sampler combination. I use effects and samples a lot in my band and have always had a a bunch of stuff on the floor. I used to have separate pedalboard and sampler units but have since combined them for streamlining purposes. I wanted everything as compact and portable as possible with minimal external cabling. This is actually version 2. Version one was very slapped together.

Anyways, the structure is all build from 1/2" sande ply, except for the sampler top piece which is doubled up 1/4" sande ply. I used the doubled 1/4" ply for the top so that I could cut out button and knob insets out of one of the pieces then glue them together, as a full 1/2" was too deep for the parts that I had but 1/4" may have been too flimsy. The exterior edges were rounded over with a 1/4" router and everything was rolled with two coats of Duratex.
PedalBoard-Painted-20220511.jpg

The sampler is programmed in Go and is run on a Raspberry Pi 3B with a PiSound add on board. Button control is handled by a Teensy 4.0 micro-controller programmed as a USB MIDI device.

SamplerComputers-20220511.jpg

Eight sample trigger switches are mounted along with a pair of banking switches and three more switches for menu control. All switches are attached by screw terminals to the Teensy board.
SamperTop-Inside-20220511.jpg

There is also a 5" screen mounted to the top board for the user interface.
SamplerScreen-20220511.jpg

There is also a 1/4" bass signal pass thru with a bend knob for the sampler output. This is mostly a convenience feature when practicing on my own so that I can run bass and samples through a single amp. There is also a dedicated DI for the sampler output. The parallel out from the DI is run through an active buffer before the bass/sampler blend knob to avoid the bass signal from bleeding back into the DI signal.
There is also an isolated USB power adapter for the computers to help keep digital noise from creeping into the pedal power. The top is hinged and closed with velrco on the lower side for ease of access.
SamplerInternal-20220511.jpg


Pedal power and a shielded audio cable are routed from the main unit to the pedal board side. The bass signal plugs into a Byte Heaven SC-1 crossover pedal that feeds a high and low frequency signal chain.
The high chain is: Byte Commander -> Sub'n'up -> Black Secret -> Helix
The low chain is: Bass Sweeper -> Lo-Fi Machine
The high/low signals are summed by a passive 1K ohm loaded mixer cable and run into the Feedback delay pedal. The delay pedal is run through the bass pass-thru line back into the main unit.
Since the skinny pedals can make stomping on the correct pedal difficult, alternating pedals are raised up on 1.5" wood blocks and set back a bit to keep that from happening.
Pedals-20220510.jpg


The two sides are connected by a strap hinge so that the whole thing scissors closed with a latch on the opposite side for packing up.
FullBoard-20220510.jpg

PackedBoard-20220510.jpg


Power comes in through a fused switch with a standard D plug and there's also a breakout USB port for the Raspberry Pi. Also added some cable wrap hooks and a suit case handle for carrying.
The whole thing sets up and packs up in about a minute and is pretty light as well. I'm pretty happy with the build.
 
Last edited:
Thanx for sharing, very nice build !

I do not know Go. I will have to do some reading and see if this could be interesting for me also. I have build drummachines/sequencers with PureData (also opensource, but it use a graphical interface for programming). How long did it take to learn Go and build this sampler (not the hardware, just the software), if I may ask ?
 
Thanx for sharing, very nice build !

I do not know Go. I will have to do some reading and see if this could be interesting for me also. I have build drummachines/sequencers with PureData (also opensource, but it use a graphical interface for programming). How long did it take to learn Go and build this sampler (not the hardware, just the software), if I may ask ?

I'm a software developer by trade and already had experience with Go, so not too long. I used Go because it allowed me to link to existing C/C++ libraries very easily for the audio and MIDI functionality, but with the benefit of easy multi-threading and automatic memory heap management. It also compiles down to an standalone executable file optimized for the Raspberry Pi architecture which makes if very fast and efficient to run. The CPU on the Raspberry Pi unit only floats around 5% while it's running.

Writing the sampler myself allowed me to add some nice ease-of-use features.
  • When entering the sample mapping mode, it checks if a USB drive has been connected. If one has, it automatically scans the drive and looks for any wave files that it doesn't already have a copy of in the internal sample folder. If any new files are found it checks if they are valid wave files then copies them into the devices internal sample folder. This makes it very easy for other band members to be able to bring new samples to practice for me and I can get them on and mapped very quickly.
  • When samples are actually mapped to a button position, the sample is quickly scanned with a 500ms RMS moving window to calculate an overall loudness estimate. This estimate is used to automatically set an adjustment volume for the sample. This helps keep all of the samples at approximately the same volume.
  • I was able to bake in some plugins for the master sample output to help keep everything clean, level, and focused. This is the chain:
    • High pass filter @ 100Hz
    • Low pass filter @ 7000Hz
    • Multi-band time aligner: this is similar to the basic functionality of a Sonic Maximizer. It splits the audio into low, mid, and high bands. Below 150Hz is delayed by 2.5ms, between 150Hz and 1200Hz is delayed by 0.5ms, and everything else is left alone. This is just a psychoacoustic trick to help with clarity and can really help when multiple samples are playing.
    • 1176 style fast compressor to help keep volume and sample dynamics in check.
    • Exciter @ 1200Hz, to help with mid clarity
  • I can have nearly unlimited samples available, but I arbitrarily have it set at 128 rows. They are mapped by rows of 8 samples with up to 11 rows visible on the screen at one time. Banking up and down rows scrolls the whole onscreen sample display so I can easily see where I need to get to next.
  • One of the onscreen shutdown options actually just drops down to the system console and starts up a VNC remote desktop server for easy development. As long as the unit is in range of my home WiFi I can connect to it from my laptop. All development is done right on the unit and it has its own integrated development environment installed.
Big nerdin' over here.
 
I did investigate Go (asked a friend..) and it's way over my head. PureData is a 'framework'(?) for C/C++ written objets for prototyping stuff which you would normally, when finished (but it never is..), translate to C/C++ to make it efficient and stand-alone.

Once you are able to build some of your own musical software/functionality it's difficult to be satisfied with exsisting stuff already on the market, right ? :thumbsup:

(My Raspberry Pi goes back into it's box..)
 
  • Like
Reactions: RumbleBot