Skip to content
Harry van Haaren edited this page Mar 7, 2016 · 2 revisions

Welcome to the Fabla2 wiki!

Note that this page (just like all wikis..?) is outdated now. See the Fabla2 issues and http://openavproductions.com/fabla2 for updates!


You probably want to look at http://openavproductions.com/fabla2. If you are actually here to discuss Fabla 2.0, then you're in the right place!

Fabla 2.0 Road Map

  • Fabla2 is currently in alpha testing - and is not recommended for users.
  • Fabla2 will enter beta testing, at which point power users can get involved
  • After beta testing is complete, a release announcement will be made for Fabla2.

Progress reports

UI Features

  • ✅ UX workflow design to aid live-performance
  • ✅ Easy preview and load of samples (plays on click in SOFD)
  • ✅ Sample loading pane for browsing samples
    • ✅ Parent folder button (SOFD used)
    • ✅ Preset saving / loading
    • ✅ Last used auto-opens
  • ✅ Pad Visual Feedback
    • ✅ Pad play / stop events
    • ✅ Pad Mute Group
    • ✅ Trigger Mode (Gated / One-Shot)
    • ✅ Sample switch type (Single,Velocity,Round-Robin)
    • ✅ Layer names
    • ✅ Layer play button
    • ✅ Layer velocity ranges
    • ✅ Last played layer
  • ✅ Sample Visual Feedback
    • ✅ Waveform display
    • ✅ Name
    • ✅ Frames / duration
    • ✅ : Velocity Ranges
    • ✅ Gain
    • ✅ Pan
    • ✅ Pitch
    • ✅ Start-point
    • ✅ ADSR State
    • ✅ Filter State

DSP Features

  • ✅ AuxBus feature, routes audio to host DAW
  • ✅ LV2 Atom communication framework in place
  • ✅ LV2 Atom UI->DSP messages implemented with clean code
  • ✅ LV2 Atom DSP->UI messages with UI state replies
  • ⬜ Zipper filters for gain/pan
  • ✅ 16 pads, 4 banks
  • ✅ Worker thread sample loading
  • ✅ Resampling files of non-native sample-rate
  • ✅ LV2 State Save / Restore
    • ✅ Bank / Pad / Layer data written on save()
    • ✅ Bank / Pad / Layer data back in effect after restore()
    • ✅ LV2 requiredFeature state:makePath (for portable presets)

Pad Features

  • ✅ FX per sample
    • ✅ 1x Dynamic Filter
    • ✅ Filter switch modes (High/Low/Band-pass + Resonance)
  • ✅ Stereo and Mono samples
  • ✅ Panning per sample
  • ✅ Gain per sample
  • ✅ Multi-Samples per Pad
    • ✅ Single Sample playback
    • ✅ Velocity layered playback
    • ✅ Round Robin playback
  • ✅ High-quality resample playback (Cubic 4-point Hermite-curve, -42dB AA)
  • ✅ Mute groups
  • ✅ Off-By groups
  • ✅ Trigger modes (one-shot, MIDI-gated)
  • ✅ Adjustable start time
  • ✅ Adjustable end time

Wishlist (Probably 2.1)

Master features

  • ⬜ Master FX
    • ⬜ Filters
    • ⬜ Bitcrush / SampRate Reduction
    • ⬜ Distortion
    • ⬜ Expansion / Limiting
    • ⬜ 4-band parametric EQ

Pad Features

  • ⬜ Renaming pads / Samples (Needs a lot of AVTK text input work)
  • ⬜ FX send for Reverb / Delay busses
  • ✅ FX per sample
    • ⬜ 2nd Filter (Switchable High/Low/Band-pass with Resonance)
    • ⬜ Bitcrushing, Samplerate reduction
    • ⬜ Distortion
    • ⬜ Equalizer (4 band parametric)
    • ⬜ Time-Stretching with pitch constant
    • ⬜ Content dependant pitch/stretch (melodic / percussive)
  • ⬜ Velocity mappings
    • ⬜ Playback Volume
    • ⬜ Sample start position
    • ⬜ ADSR Attack
    • ⬜ Filter Cutoff (details)
  • ✅ Drag-N-Drop support inside AVTK (eg Sample from one Pad to another)

UI

  • ⬜ LV2 Extension / Options so presets can be included in UI
  • ⬜ Entire UI resize: this can be a bit tricky, but perhaps. I'll check it out.
  • ⬜ AVTK DnD with type identifier for re-arranging pads.
  • ⬜ Drag-N-Drop from file browser (Needs PUGL X11 DnD to be implemented)
  • ☑️ Performance Mode
    • ✅ Initial mockups and design
    • ⬜ Details of graphics
    • ⬜ User discussion / testing

Master Bus

  • ⬜ AuxBus returns
  • ⬜ AuxBus FX
    • ⬜ Reverb: Time, Damping parameters (Roomy, 100% wet AuxBus)
    • ⬜ Delay: Time, Volume and Feedback (Della, 100% wet AuxBus)

DSP

  • ⬜ Ring Modulation: see here for details.
  • ⬜ Retrigger (Refactor style).
  • ⬜ Control groups (like mute-groups)
  • ⬜ Velocity curve for note-on events: details
  • ⬜ Loads "drum-loop" samples, with auto-slicing (aubio onset)
  • ⬜ Time-Stretching maintaining pitch: per Sample (offline, rubberband)