Pedalboard: Chainable FX for norns (v2.1.0)

Pedalboard

A broad collection of chainable stereo effects for norns

Pedalboard-board

Pedalboard-pedal

Pedalboard-pedal

Pedals

  • Delay
  • Reverb
  • Overdrive
  • Chorus
  • Tremolo
  • Distortion
  • Flanger
  • Phaser
  • Compressor
  • Sustain
  • Bitcrusher
  • Wavefolder
  • Ring Modulator
  • Pitch-shifter
  • Sub-boost
  • Vibrato
  • Auto-wah
  • Lo-Fi
  • Resonator, based on Mutable Instruments Rings
  • Granular, based on Mutable Instruments Clouds
  • Amp simulator
  • Equalizer
  • Tuner
  • More to come in future versions! File a GitHub issue with recommendations, or just reply to this thread

Documentation

UI & Controls

  • E1 always changes page

Page 1: Board

  • Left-to-right list of slots for pedals
  • E2 changes focused slot
  • E3 changes pedal in focused slot (including “no pedal”)
  • E3 doesn’t take effect til K3 confirms
  • Last slot is always “add new” (using K3 to confirm) (until you reach the max of 4 pedals)
  • K2 jumps to pedal page
  • K2 + E2 re-orders pedals
  • K2 + E3 changes wet/dry for focused pedal
  • K2 + K3 toggles bypass for focused pedal
  • If you hold K2 while adding a pedal via K3 then the pedal will be bypassed by default

Last Page: Mod Matrix

  • First few sections are high-level controls for the Envelope Follower and 3 LFOs
  • After that, there’s a “mod matrix” section, where each modulator can control the active pedals’ settings
    • Left 3 columns are the 3 LFOs, then the right-most column is the Envelope Follower
  • E2 scrolls through the rows
  • E3 changes the focused value
  • K2 moves left, K3 moves right (when in the “mod matrix” section)

Other Pages: the Pedals

  • UI is custom per pedal, but typically shows a dial or two at a time, controlled by E2 & E3
  • Each pedal has dials specific to its effect
  • K2 cycles left thru dial pairs, moving left a section or looping at the left edge
  • K3 cycles right thru dial pairs, moving right a section or looping at the right edge
  • Every pedal has the following dials as its last 4:
    • Bypass
    • Wet/dry mix
    • In gain
    • Out gain
  • On pedals with tap-tempo (Delay and Tremolo), hold K2 and tap K3 for tap tempo

Roadmap

  • I’d like to film a brief demo video and post it in this thread soon :smile:
  • More Pedals!
  • Better Pedals!
    • Multi-tap and Varispeed delays
    • Spring and Plate reverbs
    • EQ shelves can be filters instead, and an additional peak EQ
    • Continued iteration on how the dials alter the effect
      • Covering musical ranges with multiple sweet spots, while also offering interesting extremes
  • Clock-synced LFOs in the Mod Matrix
  • Delay’s BPM and Beat Division should be mod-matrix-able

Requirements

  • norns (200328 or later)
  • Audio input (stereo, or mono via the left input and a parameter change in the menu)
  • Reset after installs and updates (this is a new Engine)

Acknowledgements

Thanks to @zebra, @carltesta, @mimetaur, and @jah for the SuperCollider help and inspiration. Thanks to @okyeron and @geplanteobsoleszenz (and, of course, the wonderful Émilie Gillet) for the Resonator and Granular pedals.

Download

Latest version: v2.1.0 (2284496)
Available via the standard install process at http://norns.local/maiden when your norns is on WiFi

Direct download: ZIP File

105 Likes

Oh yeah!

I was just wanting something like this last night.

:tada:

7 Likes

My guitars and I say thank you.

4 Likes

Lovely! Gonna test this as soon as I can tomorrow. Could I use the Norns with this Pedalboard app as a “headphone amp”, or do I still need to amplify my guitar signal? I have found that (with other apps) the Norns needs a high input level to be audible through headphones, and I use a clean boost to reach a certain input level. Or is it purely a “pedal”, meaning it must be between your guitar and amp? I use a DIY Norns Shield, by the way.

1 Like

Short answer: Pedalboard comes with built-in (optional) input gain and output gain per pedal, so you should be able to bump the volume up enough to be comfortably audible going directly from guitar -> norns Pedalboard app -> headphones.

Longer answer(s):
Honestly even without Pedalboard, though, my guitar was decently audible just using the norns built-in “Levels > Headphone Gain” parameter. But it certainly sounded much better once I added Overdrive (with +12dB input gain) and Reverb pedals to Pedalboard! Pedalboard doesn’t have an “amp simulator” pedal, but Overdrive into Reverb does an okay job simulating an amp if that’s what you’re after.

The bigger drawback is that Pedalboard is right now stereo by default – each effect is applied to each channel separately, so if you only have Left signal in, you’ll only get Left signal out. The two exceptions to this are: Reverb (which reverberates the input signal in stereo space), and Delay in Ping-Pong mode (which will bouce your mono in back and forth between left and right outs). If you plug your instrument into the norns Left in, and then run from the norns Left out into your amp, then this all fine, but for headphones you’ll probably get tired of only hearing in your left ear. I’d recommend adding Reverb at the end of your chain with mix up pretty high, and then you can turn size and decay down to reduce the reverb amount (but keep the mono->stereo benefits). It shouldn’t be too hard for me to add mono mode – I can do that before the v1.0.0 release :smile:

I’m sure one of the norns designers or someone with more technical knowledge could speak to this better than I could, but my understanding is that norns is ideally designed to be used with line level hardware (either consumer -10dBu or pro +4dBu), and basically every guitar outputs signal far below that. However, each pedal in the Pedalboard app offers an “input gain” control up to +12 dB, which may be very helpful if you’re plugging directly into norns and then out into your headphones. This would more or less mimic your “clean boost” stage, but (just like whatever you’re using for clean boost) it’s going to boost noise as well as signal. A lot of clean boost pedals can have fancy techniques to reduce noise, but this is also kinda just the nature of the beast.

2 Likes

Thanks for the elaborate reply! I don’t mind a bit of noise, so I’ll figure it out tomorrow and see how bad it actually is. Really looking forward to test this.

Oh, and something like a glitch/stutter pedal would be great as well (something like the stutter part of the Meris Ottobit Jr), but that’s probably difficult to program and not the priority right now :grin:

2 Likes

Looks/sounds super useful. Thank you!

1 Like

i’d strongly recommend using an analog gain stage between passive electroacoustic instruments and norns or norns-shield. you will get much lower noise floor (12b of gain ~= 2 bits of noise, &c) and probably a more satisfying frequency response. don’t need anything fancy.

(aside)
i’d characterize my norns units as closer to +4dbu than -10dbv, seem to peak around 1.1v when connected to capture circuits in +4dbu stuff (but i’ve not done extensive impedance analysis or anything.) call it “0dbu” maybe. but other people have reported that it looks more like -10dbv. so i’m not sure what to say to that but am generally conservative in recommending that it’s best to think of it as a consumer line level device.

@21echoes lovely work on this! the abstractions are so nicely organized, i can see this being a really great resource for crazy new scripts as well.

7 Likes

Selfishly, the timing of this couldn’t be more perfect for me. I had a norns delivered today and one of the use cases I had in mind was as an FX send from my mixer. I hope to try this out and provide feedback – maybe even suggest some FX modules. Cheers

3 Likes

Awesome, looking forward to your feedback! Happy to hear you’re going to try it as an FX send from a mixer – I know that “pedalboard” makes people think of guitars, but honestly I mainly wrote this to use with my modular. Most of my playing these days (well, before the quarantine) is free improv sessions at a friend’s place, so I keep my rig pretty small, and I wanted a way to bring a lot of effects without using up hp (effects that I wasn’t going to modulate with CV anyway). I liked the norns already for MLR or Compass or Foulplay or etc, so being able to use it for FX when I wasn’t using one of those was a perfect fit.

5 Likes

Going for a test drive today… and I’m wondering if I’m seeing odd or normal behavior from the Flanger unit.

I’m sending a drum machine thru and the flanger doesn’t seem to do much of anything interesting until I get the feeback up to like 97-98-99-100 and then it’s a fast train to crazytown. :grin:

Chorus also seems to be pretty subtle on a dum pattern.

Expected or ?

1 Like

Very excited to try this out!! Also seems like a fun source for those looking to hack basic effects into other things for other reasons :smiley:

2 Likes

Yeah I had a hard time tuning the Flanger and Chorus pedals :thinking:. They were noticeable in headphones, but trying it out on speakers some more I think they could do with more exaggeration. Have you tried keeping Flanger’s feedback low, but really cranking the rate and depth? Also remember the mix dial on every pedal’s second page :smile: If you could let me know what settings to you sound like a noticeable-but-not-too-crazy flanger and chorus with your setup, I can try to put the midpoint baseline closer to that :+1:

So yeah - sounds like a bit more going on with headphones, but still subtle.

Playing with just Flanger Rate and Depth, it seems kinda the same to me below 50 or so, with more interesting stuff happening above like 75, then bringing up the feedback to 90+ things sound more flanger-y

(grasping at straws since i’m not sure how this works) should those controls be exp instead of lin? (or vice versa)

Update Edit - A curiosity - Assigning a parameter to midi cc and using an external controller (16n) does not update the Pedalboard UI (on screen ‘knob’ positions). So… would Board:_add_param_actions() action need to set screen_dirty to fix that?

Yeah, I haven’t done MIDI mapping before so I hadn’t wrestled with how to make sure the screen stays in sync. It would in fact be as simple as having this line https://github.com/21echoes/pedalboard/blob/master/lib/ui/pedals/pedal.lua#L127 set screen_dirty, but the wrinkle is that pedal doesn’t currently have any way of doing that directly (other than returning true from enc or key). Could do like we do with board and pass in mark_screen_dirty as a callback function. Do you have a link to instructions for MIDI mapping, btw? I’d love to set that up on my end so I could test it out.

I’ve also pushed up some improvements for Flanger and Chorus here: https://github.com/21echoes/pedalboard/archive/7a5a77d6867bc1144844f337fd74aa8b360402f6.zip Let me know what you think! The other pedal that’s giving me a headache is Sustain – there are some pops during the attack that I’ll have to work on getting rid of tomorrow or over the weekend.

1 Like

This is great! Assignable envelope followers and LFO’s would be most excellent!

2 Likes

Alright, new version v0.9.2 is up! ZIP file

Changes:

  • Flanger and Chorus improvements (same as version v0.9.1)
  • Mono mode (accessible in the parameters menu). While enabled, the left input is doubled into the right input and the right input is ignored
  • You can add a pedal or swap to a pedal and have the pedal bypassed by default if you hold K2 and then do the normal K3-to-confirm. This allows you to set up some more / different pedals and tweak them before they start affecting your sound so you can more easily time precisely when you turn the effect on during a performance
  • Added a Sample Rate control to the Bitcrusher
  • Sustain pedal shouldn’t have as intense “pops” during transients
  • Small dial tweaks (better positioning, both encoders control the dial if there’s only one dial in the section)
  • Bug fix for MIDI mapped parameters updating the screen
14 Likes

Version v0.9.3 is up! ZIP file

Changes:

  • Delay pedal now knows about tempo and rhythm. Rather than a vague “time” dial, there’s a BPM dial and a “Beat division” dial (quarter note, triplet 8th note, whole note, etc.). You can also tap tempo to get your BPM by holding K2 and tapping K3
  • Delay pedal now has many different quality settings: Digital, Analog, Tape, and Lo-Fi. Analog is a hint of softclipping and filtering, Tape is more aggressive softclipping and filtering plus a bit of noise, and Lo-Fi is like Tape with some bit-reduction and a hint of a high-pass filter.
  • UI is slightly improved (bypass is now a label instead of some vague 0/1 dial). Under the hood this was honestly more about the significant rewrite of the Pedal UI classes. The rewrite pulls almost all behavior into the superclass so that new pedals are basically just a list of parameters, and the UI and interaction bindings and engine bindings are all handled for you. Here’s an example

Coming soon: multi-tap delay, varispeed delay, reverb shimmer, and tap-tempo for tremolo.

Hoping to reach 1.0 and add it to the Library by the end of the week, would love any more feedback before then :smile:

20 Likes

definitely looking forward to that tuner—everything’s been amazing so far with my electric violin!

1 Like

This looks phenomenal, will give it a spin soon.

Any kind of granular fx would be rock.

5 Likes