mnt produce 0.1.0
a new, minimal linux DAW (mainly a sequencer) for hackers.
- scalable vector UI based on the GLV toolkit
- minilisp as scripting language / project file format and for keybindings
- connects via JACK MIDI to synths and audio hardware
- connects via multiple JACK Audio outputs to plugin racks for mixing
- do one thing well: comfortable editing of tracks and regions.
- focus on speed, responsiveness and productivity.
- no "modes" or "tools".
- integrate well: produce is designed to work well in a JACK environment and leverage its robust mixing and routing.
- be visually pleasing: reduce clutter and balance colors. work well on high resolution screens.
- click on a track: select that track, deselect all regions
- click on a region: select that region, deselect all others
- shift-click on a region: add that to selection
- drag on track: selection rectangle, selects multiple regions at once
- drag regions: change region start points
- ctrl-drag regions: drag a copy of the selected regions to start points at mouse cursor
- drop audio file (e.g. from thunar): create new track whose regions will trigger a converted version of the dropped audio file
dragged and added regions will snap to 1/2 beat points.
default keyboard commands
,move playhead left
.move playhead right
ssave project (will overwrite the current project file!)
ddelete selected track
tcreate empty track (currently useless because you cannot change a track configuration yet)
acreate region in mouse-hovered track at hovered position
1set duration of selected regions to 1/4 beat
2set duration of selected regions to 1/2 beat
3set duration of selected regions to 1 beat
4set duration of selected regions to 2 beats
b"bounce" project (from loop in to loop out marker); this will play back your song from loop in to loop out and record the JACK system output to a file called jack_capure_XXX.wav where XXX is an increasing number.
keyboard bindings can be adjusted by editing
other GUI features
- loop in (white square) and loop out (pink square) markers can be dragged to define loop/project area
- edit or drag BPM (beats per minute) number in upper left corner
- grid supports only 4/4 measure
- GLV has messed up keyboard scan codes, so project name text field will behave strangely; for me, del/backspace are swapped, cursor keys produce characters; will replace with zenity
- tested on 2560x1600 resolution; element size factors hardcoded, will be moved to init.l
- velocity not editable yet
- fixed maximum project size 400 bars; will be editable soon
soxfor audio file conversion (optional, required if you drag in audio files)
zenityfor text input dialogs (optional, required for lisp evaluation)
mhwaveeditfor editing audio files (optional, required if you want to edit audio files from within a produce project)
- modified GLV toolkit (included, modified font drawing line width)
- modified freeGLUT (included, modified to allow responding to X11 events like drag&drop)
- LADI session handler /
gladishis useful for saving and loading your session state, JACK connections and starting all the necessary applications.
bristolemulates a ton of vintage synths and can be controlled by produce via MIDI ports
calfjackhostfor running an effects plugin stack.
building / running
produce binary and libs are built on x86_64 debian 8. no other distributions have been tested, but your feedback is appreciated.
if you want to build yourself, do this:
- install build dependencies:
apt-get install libsndfile-dev libgl1-mesa-dev libglu1-mesa-dev libglew-dev libx11-dev libxt-dev libxi-dev libxrandr-dev libjack-jackd2-dev g++ build-essential
- build modified libraries:
- build produce:
- drop in some audio samples (one at a time). a track for each will be created
awhile hovering over empty positions in the track; regions will be created
- select all regions by clicking or dragging up the selection rectangle
1to set all regions to 1/4 duration
- important by default, you will hear nothing. you need to connect produce's JACK audio outputs to your system outputs. the easiest way is to do this in
gladish(preferred). in the latter, just drag lines from produce's audio output ports to your system output ports.
spaceto toggle playback. you should hear something.
- to add a midi octave starting with note C3 on midi port 0, press
(. a popup should appear. enter
(octave 3 0). 12 tracks will be created, labeled with their MIDI note numbers.
- launch your favorite synth app (or connect a hardware synth), for example
monobristol, set the MIDI channel to 1 (or omni).
gladish, connect produce's MIDI output port 0 to your synth.
- create MIDI regions by hovering over your MIDI tracks and press
ato create actual notes.
- toggle playback using
spaceand your synth should play back your notes.
sto save your project. next time, load it using
license / credits
produce is free software.
copyright 2014-2015 Lukas F. Hartmann / @mntmn / http://mnt.mn