Menu

Home

Ray Lambert

Description

Stomper is a virtual pedalboard for guitar, using commonly-available audio plugins in a user-defined arrangement and MIDI for switching. It is intended for on-stage use and will be optimized as such.

Status

Development is well underway but there is still a lot to go (see updated road map). Although a lot works it is not yet functional for its stated purpose. Work has been progressing in fits and starts, as time allows, and will likely continue that way for a while more.

The GUI is ~80% done. MIDI is fully integrated (via Jack). No audio yet (but it won't take long once it's time to enable it). The GUI is now based on QT5. I made a change from the initial road map and decided to integrate LADSPA plugins directly (this is easy enough that I felt it would be more expedient than going with a third-party library). Stomper can now discover and load LADSPA plugins and enumerate their effects. Although the MIDI implementation is complete the last mile (connect to the plugins) is not done yet (it's waiting on GUI stuff).

Rationale

I've used rack effects for years and I've gotten really tired of programming patches for everything. I now use a pedal board and I enjoy the spontaneity but I hate dealing with velcro, audio cables, power cables, knobs getting spun during transport, the physical weight of it and did I mention velcro? :) It's also a pain when you need to remember specific pedal settings for certain songs and tweak them on-stage.

It occurred to me one day that I could leverage all the audio plugins that are available and create a virtual pedal board that could save specific effects settings and allow me to activate effects on a whim (using a midi pedal).

Design

The design that I envision for this app starts with a thing called the Effects Library. The user will define individual effects and store them in the Effects Library. Each individual effect will be based on a plugin that the user has installed on their system. The user will assign a name to the effect as well as the plugin settings and store it in the library. The user may define as many effects as she pleases, including multiple effects of the same type or based on the same plugin (presumably with different settings).

For example, a plugin that provides a chorus effect might have settings for "speed" and "depth". A user could define a 'normal' chorus, with a slow "speed" and shallow "depth", as well as a 'deep' chorus with a higher "speed" and/or deeper "depth".

The user will set-up their pedal board by defining its size (in terms of the number of rows and columns of effects) and then creating one or more Banks (with user-defined names). The size of the pedalboard is intended to be based on the configuration of the user's MIDI controller. For example, a Rocktron All Access can be configured to have 15 CC buttons (in a 5 x 3 arrangement) and the user could configure her virtual pedalboard to match this. Banks can be changed using MIDI PC messages.

Each item in a Bank is called an Effects Chain. Each Effects Chain is given a title and one or more effects from the Effects Library is added to it. In most cases an Effects Chain will have only a single effect (e.g. a chorus or a delay) but it will be possible to add more than one. Each Effects Chain can be turned on or off with a single button press (using a MIDI CC message) regardless of how many effects it contains.

This is the basic design that I'm starting with and it will likely grow as the application matures. There will almost certainly be more advanced MIDI functions, including real time parameter controls (and a global bypass). I don't currently have plans for a tuner but that is another possibility. Feel free to add your suggestions to the forum on this site.

Since Stomper is intended for on-stage use, I consider the GUI to be just as important as the audio and I have started development on the GUI first (so that when I get to the audio I'll have all of the required UI control and supporting facilities ready to go). The GUI will feature large fonts and controls, and minimal clutter. I will soon post some screen shots of the early GUI so users can see where it's heading.

I intend to use Jack for interfacing with MIDI and audio hardware and an existing library (hopefully) for handling plugins (possibly Carla) initially integrate LADSPA support. The app and GUI are being developed using QT5 with CMake on a Linux platform. GUI style customization will be possible using QT5's CSS-like stylesheet capability.

Road Map

  • GUI (~80%) and basic architecture (mostly done).
  • Settings editing and load/save (done! but loading not yet tested).
  • Basic MIDI capabilities, including mapping and dispatch (initially direct to the MIDI/serial port). -- Done! Went right to Jack!
  • Integration with Jack MIDI. Done!
  • Initial Integration with Jack audio.
  • Implement one or more very basic audio effects for POC and testing (e.g. volume boost).
  • Integration with plugins / plugin host library.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.