A powerful MIDI pattern generator for Bitwig Studio using Scribbletune's unique bracket notation system.
Riff is a free, open-source Bitwig controller script that generates musical MIDI patterns with recursive subdivisions. Originally created as a VST3 plugin, Riff is now available natively in Bitwig Studio.
Perfect for quickly sketching basslines, leads, melodies, percussion and chord progressions without falling into repetitive patterns. The randomization keeps things fresh while staying musical.
- Riffs: Monophonic patterns for basslines and melodies
- Chords: Polyphonic chord progressions
- Pulse
- Sparse Pulse
- Melody
- Sparse Melody
- Counterpoint
- Syncopated
- House Groove
- Off Beat
- Roll
- Fill
- Breakbeat
- Buildup
- Conversation
- Stutter
- Hypnotic
- Simple
- 12 Scales: Ionian, Dorian, Phrygian, Lydian, Mixolydian, Aeolian, Locrian, Harmonic Minor, Pentatonic Major, Pentatonic Minor, Blues, Chromatic
- Scale Filtering (Riffs mode): All, Odd, Even, First Half, Second Half, Thirds
- 7 Chord Progressions (Chords mode): I-V-vi-IV, I-IV-V, vi-IV-I-V, I-vi-IV-V, ii-V-I, I-V, I-IV
- Pattern Combinations: A, AAAB, ABAC, ABBB, ABCD, AAABAAAC, ABACABAD
- Note Lengths: 16n, 8n, 4n, 2n, 1n, 2m, 4m
- Pattern Reuse: Generate variations or completely new patterns
- Download
Riff.control.js - Copy the file to:
~/Documents/Bitwig Studio/Controller Scripts/ - Restart Bitwig Studio
- Go to Settings → Controllers
- Click Add controller and select Scribbletune → Riff
- Download
Riff.control.js - Copy the file to:
%USERPROFILE%\Documents\Bitwig Studio\Controller Scripts\ - Restart Bitwig Studio
- Go to Settings → Controllers
- Click Add controller and select Riff
- Download
Riff.control.js - Copy the file to:
~/Bitwig Studio/Controller Scripts/ - Restart Bitwig Studio
- Go to Settings → Controllers
- Click Add controller and select Riff
- Create or select an empty MIDI clip in the Bitwig arranger
- In the controller settings, configure your musical parameters:
- Choose your Root Note and Octave
- Select a Scale (e.g., Ionian for major, Aeolian for minor)
- Pick a Pattern Style (try "pulse" or "melody" to start)
- Click Generate!
- Listen and iterate - each click generates a fresh pattern
Riff uses Scribbletune's bracket notation language to describe patterns:
x= root noteR= random note from the scale-= rest (silence)[...]= subdivide (play the enclosed pattern twice as fast)
Examples:
x-x-= root, rest, root, rest (simple pulse)[xx]= two quick root notes in one beat[x-][R-]= quick root-rest, then quick random-rest[x[xx]]= root note, then two super-quick root notes
Brackets can be nested infinitely, creating complex rhythmic patterns from simple notation.
Contributions are welcome! Feel free to:
- Report bugs or request features via Issues
- Submit pull requests with improvements
- Share your favorite pattern combinations
- Add new pattern styles or chord progressions
The script is written in JavaScript using Bitwig's Controller Script API v17.
Key files:
Riff.control.js- Main controller script
To modify:
- Edit
Riff.control.js - Copy to your Controller Scripts folder
- Restart Bitwig or reload the controller
MIT License - see LICENSE file for details
Created by Walmik Deshpande
Part of the Scribbletune project - a suite of tools for algorithmic music composition.
- Scribbletune: https://scribbletune.com
- Demo Video: https://www.youtube.com/watch?v=Pxa6T1t0Ips
- Issues & Support: GitHub Issues
- Other Scribbletune Projects: https://github.com/scribbletune/plugins
Made with ♥ for the Bitwig community
