Skip to content
Lukas W edited this page Jan 16, 2014 · 1 revision

Note: This roadmap was transferred from the old wiki at SourceForge. It may contain outdated information that doesn't apply to the current development state of LMMS any more.

Table of Contents

0.4.x series

See Roadmap/0.4 for details.

1.0.x series

See Roadmap/1.0 for details.

NEW IDEAS

Ideas for New Developers

If you're familiar with C++ and Qt4 and are looking for some way to contribute to the LMMS project, here are some ideas:

  • Plugins:
    • Write more instrument plugins (ideas below)
      • Generic MIDI instrument plugin
      • Piano instrument plugin
      • Violin-like instrument plugin
      • Brass-like instrument plugin
      • Flute-like instrument plugin
      • 'Wave Traveller' or 'Scrubber' plugin that allows the user to move backward and forward across a sample in a way compatible with Automation
    • code a LADSPA-hoster as an instrument-plugin
    • code plugin for using buzz machines - see buzztard.org
    • slide/portamento between notes/triggers
    • search and automatically download samples from freesound.org , ala Aldrin
    • add vibrato effect
    • add option to set octave/arpeggio time in note values as opposed to milliseconds
    • add option for starting volume before attack (starting at a certain level and then following with the attack, as opposed to the attack starting at zero)
  • Import/Export:
    • improve import-filter for FruityLoops-projects (flp-files)
    • add a LilyPond import-module
    • add support for Hydrogen drum machine import/export.
    • Group Instruments to export multiple submixes.
    • expandable favourite lists of folders in opening dialogue
    • add more formats to export (such as MP3 and FLAC)
    • add audio tagger to exporter
  • Interface:
    • improvements to sample track (see below)
    • add the ability to save 'pattern patches' that contain all the instruments in the Beat + Bassline Editor.
    • Change the 'Beat + Bassline Editor' to 'Pattern Editor' throughout.
    • Option to filter 'Beat + Bassline Editor' so it only shows instruments currently in use (ala FLS)
    • record automation whether hardware controls or virtual dragged by mouse
    • use LFO or vectors as automation source
    • better control over channel routing for better JACK integration
  • Automation Editor:
    • add option for smooth lines and curves as opposed to sudden changes
    • make automation change to its appropriate value after song is paused/stopped or the position is located (currently it changes and stays changed, so you lose the volume level you had previously)
    • add option to enter automation value on certain points or snap to a certain grid vertically
  • Piano Roll:
    • include a selection of major and minor chords, etc. that can be automatically pasted into the roll
    • slide/portamento between notes/triggers
    • right click or other menu option to import/export MIDI
    • be able to set probability per step/event (in percent) in piano roll and step sequencer in order to create intelligently randomized patterns when looping
    • add option for inserting/snapping to note triplets
    • add option to enter velocity/panning value
    • add option to automatically delete underlying notes (in case you accidentally put two notes on top of each other)

TODO

Things you can do as developer

Modifications

  • Interface:
      • ability to have one bar at a different length or time signature (break whitin pattern).
    • Support for rhythm swing (groove/shuffle)
    • FX Mixer: when grabbing a volume slider and moving it, it should tell you what dB you're moving it to. It's important to be able to see details in some status bar or tool tip so users can know what settings they are applying.
    • When adding a new channel, the channel name becomes "Default" or "Default Preset". It would be better if the default channel name was the name of the instrument or plugin. "Default TripleOscillator" or "Sine" would be acceptable.
    • Interface is inconsistent with which mouse button deletes. Piano roll uses right click, song editor uses middle click. I say right click is global delete, shift+drag is copy, and ctrl+drag is select. -> right click=delete is no option as we somehow have to show context-menu, tobydox/20081201

Additions

  • Plugins:
    • write more instrument-plugins
    • code a LADSPA-hoster as an instrument-plugin
    • code a LV2-hoster for instruments and effects : http://lv2plug.in/
    • implement DSSI : http://dssi.sourceforge.net/
    • Linux VST support
    • code plugin for using buzz machines / see buzztard.org to see whats meant
    • add support for multisample instruments - where a sample is available for many different pitches of one instrument (otherwise known as Sound Fonts or Sample Banks, although not to be confused with SoundFont patches). This could be a complete replacement for the AudioFileProcessor. Features:
      • Multiple samples per note - choose from:
        • in order, (always start with first sample for each root note, then second sample and so on),
        • sequential (cycle through the samples so that the first note plays sample 1 and the second plays sample 2 even if they're different root notes)
        • random (hopefully self-explanatory).
      • Individual loop start and end points per sample.
      • Individual playback start and end points within the sample. The loop start and end points sit inside these. The intent here is to provide a similar experience to the ADSR envelope - start from the playback start, proceed to the loop end, go from there back to the loop start, and continue replaying that loop until the key is released, whereupon the sample is played from the end of the loop end until the playback end point.
      • Loop direction: normal and ping-pong.
      • The ability to zoom in on the wave display to set the (loop and normal) start and end points to sample accuracy if required.
      • Note mix choices:
        • single upward (resample the next-highest sample or the lowest for notes below the first root note),
        • single downward (resample the next-lowest sample or the highest for notes above the last root note)
        • mid-point (resample the closest-pitched sample)
        • mixed (resample the two closest-pitched samples and average them together).
    • Add a FM synthesizer. This can be realized by STK's FM instruments.
    • more waveforms choosable for LB302, e.g. sine wave
    • Audiofile processor with embedded delay, sample offset and auto normalize function
    • drop-down box with claviature
    • loop start and positions editable
    • slide/portamento between notes/triggers
    • add cent-pitch for instruments and master region
    • load sample by drag'n'drop on audioprocessor button
  • Import/Export:
    • improve import-filter for FruityLoops-projects (flp-files)
    • add a LilyPond import-module
    • add support for Hydrogen drum machine import/export.
    • Group Instruments to export multiple submixes.
    • expandable favourite lists of folders in opening dialogue
    • add .flp to Files of type in the import menu so that users know this program supports importing FLS files
    • improve exporter to export entire song up to the point where the volume has completely died off (currently, it cuts it off even if the volume hasn't gone down to zero yet)
  • Interface:
    • add locking in the song-editor (like bar, 1/2, 1/4, and free)
    • Add a time display on the main tool bar beside the wave / CPU display.
    • addition of cut- (cut and cut-by) and mute- groups
    • shiftable quantizing for triggers (late singular triggers for some ms)
    • Song-Editor:
      • cloning pattern copies even pattern content
      • loop start and end movable by drag'n'drop through click with right mouse button
      • automation parameter choosable in dropdown- box
    • create button to invert automation
    • read samples containing mutated vowels
    • Presets for FX
  • Other:
    • stable JACK transport
    • improve the use of JACK output (using lmms with jack often causes xruns and unstabilities).
    • possibility to use lmms as a Midi Slave / midi Master (for use with external hardware).
    • create a version of LMMS for Mac

Things you can do even if you're not familiar with programming

  • add localizations for Italian, Dutch, Swedish ...
  • help improving this Wiki
  • Documentation needed for the 0.4 Manual:
    • tutorials are needed, especially on how to make the various plugins make useful noises.
    • Any document that isn't yet written.
    • Created documents needing work: Category:Incomplete (including this one now :-)
  • record cool samples you release for free
  • create cool demo-songs and presets for LMMS
  • share your cool stuff on the LMMS Sharing Platform at http://lsp.lmms.info
  • your ideas...!

LMMS – live module ideas

These are some ideas about the creation of a live module that should give the possibility to use LMMS for live performances.

Some new features would be necessary:

  • dual audio output: because now only one sound output device can be used at once, every preview is played from this only device (for example instruments or samples preview).
In live performances preview should not be played on the main audio device: preview should be played by a second audio output connected to a headphone. Primary and secondary outputs could be front, rear... speakers of a multichannel audio card.

A button should allow user to connect/disconnect every mixer/project channel (to be defined) to headphone output.

A knob control should allow user to set master/prelistening ratio to be played in headphone output.

  • User should be able to add, start and stop “beat+bassline editor” loops, synth loops created in piano roll or audio drum loop (all these will be called “sounds”) to the playing mix.
Each sound should be drag and dropped onto a mixer audio channel and begin playing at the beginning of the next music bar. Each mixer channel should control more than a sound.

If a track is n-multiple long respect the selected partiture, it should cover n bars. For example, if partiture is 4 beats, and loop is 8 beat length, it should be played entirely to cover 2 bars. An option to cut it to 4 beats could also be implemented.

If a track is shorter than a bat (sub-multiple) it should be repeated n times to cover bar time length.

New time partiture feature could be useful because user could also set bar length. It should NOT be possible to modify partiture while a live session is ongoing.

  • Because of the feature described in point 2, the program should give the possibility to stretch audio drum loops to any BPM value, and shall do it with or without changing pitch (tempo stretch or turntable behavior).
Audio stretch would require a BPM analysis of audio drum loops. Analysis could be automatic or manual (by setting begin and end of the loop it will be possible to know BPM value that is related loop length). This stretching feature will also be useful for classic LMMS.
  • A new graphical interface specific for live performances should be created. The way to realize it has to be defined, but basically it shall include:
Mixer, it could be the main panel of live performance LMMS module. Mixer should be similar to the FX-Mixer one implemented in LMMS, but it should be larger so that it would be possible to easily manage all sounds from there and their connected effects. It shall include for each track volume and pan knobs, mute, solo and headphone buttons. User shall clearly and immediately see which sounds are connected to each mixer channel. General controls knobs for headphone should also be included near master output controls; FX-Mixer could contain a button to switch between classic/live mode.

Beat/rhythm indicator: it should show the beat/bar progress while live session is ongoing, according to partiture defined by user. It should return at the beginning at the end of each music bar.