LSDJ Feature Wishlist[]
These are mostly user requests - feel free to add your ideas!
To encourage the work on making these dreams real, you can donate on www.littlesounddj.com
/Johan
Stuff to consider:[]
- Editing FX always shows tooltip for current command
- HFE Hop all channels immediately to next song row (also restarting groove)
- Tooltip in groove screen to calculate BPM
- Ability to change tempo in groove screen
- G command affects single column of table to allow different individual column speeds
- Key combo to bypass "Lose X minutes of changes?" when loading song (useful for live sets after tweaking song parameters)
- Key combo for root note + C cmd inversions. E.g. note C with cmd C47. 1 inversion up = note E with cmd C38. 1 inversion down = note G with cmd C59
- Two-operator FM synthesis in SYNTH screen
- A command adds table position. E.g. A00-A1F start from pos 0, A20-A3F start from pos 4, ... OR Let A command switch part of a table. E.g. A20-A3F switches left table column to another table, A40-A5F switches right table column, something like that (will this break A20=stop table?)
- Zero groove steps, used to skip phrase steps. E.g.: 08 08 08 00 for triplets.
- Vocaloid-like song synth, similar to Animal Crossing or Virtual Singer
- Enable LENGTH for MANUAL wave inst
- Instrument de-dupe (ignore inst names)
- Cloning instrument auto-increments inst name
- BUG: Irregular behavior when reaching or looping to empty chain in song/live modes
- Indicators for remaining # of free chains/phrases (and instruments/synths/tables/grooves? Maybe a separate screen in Project screen, like Help? )
- "Next X sample" command for kits (to be used with Z command)
- Wave instrument SWEEP field, which would start L command to lowest frequency. Allows table-less, blip-free wav kicks. Problem: how to fit in wave instrument screen
- S cmd for Wave inst to control SWEEP value
- Show total number of ticks in GROOVE screen
- Wave inst --- Ixx retrig (like R00)
- Arpeggio schemes like 0CC-FamiTracker
- Ability to create a new instrument from the instrument screen
- Delayed Transpose command <--- explanation needed. What is this and how should it work?
- Echo Buffer - instead of note, value symbolizes the pitch triggered X notes previous e.g. ^1 (pitch of previous note), ^2 (pitch of note prior to previous note), etc.
- Table transpose: Allow absolute note number (don't transpose, just set fixed note)
- LZ77 song compression
- R volume change also applies in wave channel
- Named colors/instruments in phrase screen. Instead of printing number in instrument column, possibly print start of instrument name if defined, or have a way to color the instrument number.
- Groove entry in phrase screen. Add G-- command field to the right of PHRASE ## header.
- More tables + instruments, possibly chains or phrases.
- Phrase screen: Show length in steps, taking H and looped H into consideration. This might also be done in Chain screen, add length column next to phrases.
- A mini tutorial in another rom? or maybe inside the LSDJ rom itself?
- Z cmd following O cmd left and right digits affect left and right channels respectively
- L command for noise channel
- Make table envelope column relative instead of absolute (add to ADSR/E instead of override)
- Volume Tremolo command
- Wave instrument E command which works on samples, so that it can be 0-F instead of 0-3.
- Noise instrument shape control similar to wave synth: shape range (up or down?), speed, once/loop/pingpong/manual. Could work according to free/stable. ALTERNATE IDEA: six loopable S values in instrument screen
- Volume / E cmds 02, 01, and 00 shrink height of oscilloscope to 50%, 25%, and 0%
- Select+(B,A) on G command clones groove
- Double tap A next to A cmd selects next unused table
- Different grooves on left/right table column
- Song screen auto-scrolls during song playback
- Separate PU2 PAN parameter for pulse instruments
- PC Keyboard: Really nice keyboard control, similar to Protracker/Musicline or whatever, so that tracking can be done comfortably using only keyboard on e.g. Super Gameboy or emulator.
- Synth V2
- Real-time generated, does not render to WAVE.
- Parameters have individual speed, loop point, step mode
- ADHSR amplitude envelope, possibly introduce REL note to go from S to R
- could be ROMpler with lot of preset waves? needs design...
- Wave synth: would be nice with wave banks that are 32, 48, 64 frames long...
- Allow tables to optionally run at a fixed, tempo-independent rate
- Native MIDI implementation. Accept raw MIDI stream through link port. Would greatly simplify implementation of Arduinoboy-like devices, and allow for greater flexibility.
- Tonal sample player. Should be possible for lower octaves
- When two LSDJ's are synced in live mode, and master stops, the slave should become new master and continue playing | I would like to use sel+start for this - If you do that on the slave it will decouple and start playing at its own tempo, satisfying this request. What would be nice is if it also sent a stop message to the former master to stop playing. HFF should work with this.
- Apply chain transpose while current phrase is being played (same as project transpose)
- Table ping-pong (via command?)
- A meta instrument for pairing instruments sharing the same notes across channels but with different instrument settings.
- Example: Within instrument 41 you select what instrument (00-40) you want triggered on each of the 4 channels. Useful for building layered synths, or pairing Noise crunch to wav kicks.
- Ability to edit pitch tables (LSDPatcher support)
- Investigate wavegen rounding (could it be improved to make sines smoother?)
- wave/synth: Use grooves to advance wave frames
- show song position in chain screen
- LSDJ sync: arming LSDJ LIVE sync slave (through marking in song screen?)
- Make an XL version of LSDJ(e.g. 2MByte) to contain more kit samples(Kinda hard to do because in order to do this, ROM patcher will also need to change).
- Block copy-paste in instr 40 (speech)
- A way to switch between fast/tick PITCH for SPEECH instrument
- Ability to patch default instrument parameters in ROM
- Make Arduinoboy build the default build
- ROMpler - ability to include all .snt in https://github.com/psgcabal/lsdjsynths in the ROM?
- VST (like Retroplug)
- The ability to skip the first chain when the song repeats
- Move around songs in file screen (besides LOAD/SAVE/ERASE button, also add MOVE)
- Follow mode, cursor follows play position. Tap A to insert notes on the fly?
- PC keyboard: record what's being played
- An indicator on the main screen, blinking at the rate of bpm (for a visual aid on the tempo).
- The ability to save instruments I've made through the wavetable for use in other songs.
- Add more default kits.
- Better sounding speech - could be the same samples but a bit louder? or other samples?
- Sync: if starting song play from phrase, try to sync chain position. Possible??
- Noise channel for keyboard - kind of done, in phrase screen.
- Super Gameboy border graphics and palettes
- Speech channel for keyboard (should work but seems buggy? or?)
- Prelisten in all modes?
- Reset automated tables with A cmd + 80 + tableno
- PC keyboard table select (maybe with num keypad)?
- PC keyboard: fake polyphony switching between pu1, pu2, wav
- Use PC keyboard keys for launching chains/phrases
- Concerning the new Wave Synth feature in LSDj v8.4.9, making it so that the new custom signal type W. XX could be effected by filters just like other signal types. As usual, filters would not be in real time, but they would effect the hand-drawn wave by generating and caching 16 frames, each one effected by the evolution of filter parameters throughout the synth's progression (as it is for other basic wave shapes).
- Dual Table
- Possibility to move content (infinite scroll) in selected area with some shortcut:
- A + UP/DOWN when at least two columns are selected
- SELECT + UP/DOWN ('cancel selection' happens after depress)
- Link cable song/project transfer (this is possible with LittleFM)
Fixed:[]
(removed stuff here to make the page tidier)
- BUG: R command does not work for speech (fixed in 9.4.1)
- BUG: K command will not stop playing a long word (fixed in 9.4.1)
- Tooltips for Synth screen
- Prelisten while editing C commands
- Select+(B,A) on A command clones table
- High quality synth PHASE with proper downsampling and 00-FF range. (HQ Phase implemented in 9.2.0)
- Noise instrument transpose on/off (added in 9.1.8)
- Left/right and up/down cursor wrapping when naming songs/instruments (going left from A goes to J etc) - if possible, perhaps require an explicit directional press at one end to wrap to the other side (key repeat behavior would still stop at the edge) (added 9.1.5)
- Program noise shape directly in channel instead of notes
- noise S CMD=STABLE also safing up table transposes
- 2x SELECT cancels selection mode without loosing copied/cut content in the buffer (simple tooltip indicating such possibility can appear in scroller)
- while having cursor touching left side, LEFT+START in SONG view queues up whole row without need to select it
- When using Cut, Copy and Paste, flashing a message at the top where tooltips are displayed? Good for new folks who don't know where their notes just went (and people prone to panic!) Could briefly display something similar when the selector has been enabled to various degrees with Select+B, as well?
- Finetune: finer finetune/greater range (possibly revert to v4?)
- Vibrato: Improved range and precision at silent/slow end of FAST vibrato. (currently lots of V01 going on)
- Rhythmic V Speed setting. Ex: VCX = 1/4 note, VDX = 1/2 Triplet, VEX = 1/4 Dotted -- it should be easy to adjust speeds to make this work in PITCH=TICK mode!
- Allow bookmarks to be displayed on chains while play cursor is also displayed --- how?? -- one idea could be to blink between play cursor and bookmark?
- A+A tooltip display in the manner the CMD options are shown, but for other screens? Could be huge for beginners or people without their manual - ADSR/sweep/transpose on the Intrument screen are some potential candidates. --- DONE in 8.6.8 for instrument screen
- Second digit of table volume column could show "H" instead of "F" so volume hop is visible to users -- DONE in 8.7.7
- G command only allows 00-1F in phrases and tables for faster input
- "Clean song data" also reduces duplicate chains to the same instance
- Ability to set loop/hop point in table volume column (Hx)
- Show both notes and oscilloscope for wave channel
- Global tempo above 255
- Copy/paste kit notes between columns
- Pre-5.1.0 wave channel pitch wrap (implemented using R8x)
- Leave blank spaces blank when incrementing blocks -- not sure, but I do not think this is an issue anymore
- Wave channel detune (like pulse)
- L commands for wave synth ignore kit notes
- Toggle when Instrument is added to Instrument column when adding notes - kinda fixed by adding Instrument only first time a note is entered
- Control speed of C and noise P (by some groove?)
- Player that supports multiple songs on .sav
- DRM tuning not affecting notes or transpose (to enable kicks that end on a specified bass note)
- Synth: FOLD in addition to CLIP/WRAP, Synth: Add adjustable dist threshold 0-F - 6.6.3
- Sample offset switch to toggle between F80 being longer forward offset (previous functionality), or stepback/backward (current functionality) - kinda fixed in 6.6.1
- Open source player - https://github.com/jkotlinski/lsdpack/tree/master
- Make C00, V00 reset chords, vibrato - 6.5.1
- When playing a phrase, switch to the currently viewed phrase on H (like with phrase end) - 6.1.9
- Bug: D command in phrase with I-- note will kill the sound - fixed in 5.5.0
- Unify pitch/slide/vibrato control, so that kit/wave/pulse have the same settings - 5.7.0
- Allow HF sqr/saw vibrato - 5.7.0
- Investigate if it is somehow possible to reduce clicks from table volume column - improved in 5.6.5
- Bug: FFF can jump before sample start - fixed in 5.5.4
- transfer instruments/phrases/songs over link cable and infrared port - possible to transfer groove/phrase/instr/table/synth data from 5.5.7
- Add "shift" in addition to "fast/slow" pitch type in kits to allow P command to offset kit pitch - added STEP mode in 5.4.8
- Add way to exclude instruments from chain transpose
- C command in noise channel - added in 5.4.3, P command added in 5.4.4
- Pre/post-5.1.0 pitch switch - it's kind of fixed with DRM tuning
- Using L commands in table with 00 in TSP column should bend back to base pitch - L bends use relative pitch
- After deleting a song, auto-remove the empty slots in the middle - added in 5.3.4
- Provide page-by-page scrolling via D-pad left and right - actually B+up/down does this already
- Detune/finetune command - F commands in pulses (5.0.0), or P commands using STEP mode (5.7.0) are now possible
- CMD's to change synth characteristics (eg. Speed, Repeat, Length) - W commands added in 5.0.0
- Bug: in phrase screen, first set vibrato, then pitch. Won't work unless HF mode selected.
- Bug?: L and C command don't work together - same with P and C. - they now do (since 4.9.7)
- Bug?: L/P and transpose don't work together. - they now do (since 4.9.7)
- Custom color palette (TODO: mention LSDpatcher again in lsdj docs?) - this is now possible in LSDPatcher
- Add Command to modify KIT playlength [ nice effects and even melodies ] - already exists through S command
Probably Won't Happen?[]
Comments by me (Johan)
- render start & end waves on synth screen - less needed with oscilloscope
- Allow Select+B selection in Song Erase menu to enable erasing multiple songs at once - seems a bit risky to me
- Show cursor on Wave screen number while editing individual sample -- detracts too much from waveform cursor
- Show both WAV samples being played in border.
- Must remember to move the MUTE/LR/SYNC indicators down a row so as to maintain visual separation from the "N" line
- Add DRUM lookup table for Super Game Boy support - is this even needed?? doesn't it work already?
- Independent sample offset control per-column in phrases - needs an idea how exactly to do this - adding a new command is a tough sell because there are many commands already
- Build-in-mixer feature in LSDJ, where you can adjust the different 4 channel's volume.
- Wave synth pitch wrap from pre-5.10 (perhaps using S command?) - old and new pitch can't co-exist, both won't fit, however if there is something that sounds nice on pre-5.10 that can't be done in newer versions, please send me an example and I'll try to improve the new pitch accordingly /Johan
- Allow transfering LSDJ sync master on four channel adapter - seems like it would take some effort and not sure how many would use this feature
- MERGE in addition to LOAD/SAVE/ERASE, which will copy all patterns, chains, and instruments from the current song into unused locations of another song in the save - seems too complicated, this is better done outside LSDJ itself with some 3rd party software
- Force to mono in project screen: for people who use lsdj as a dual mono synth live, but track in headphones, it would be cool to have a way to override panning settings temporarily with a global option. - doesn't seem like such a good idea in the end since forcing to mono will also affect volume, so the mix will not come out like intended
- R commands reset P bends in tables - use L00 for that
- Random vibrato - toyed around with it a bit, but on the whole it does not seem particularly useful besides making kettle whistle sounds.
- E commands not alter noise shape (this may likely break noise instruments - may be better to leave as is) - it is unclear if and how this should be changed
- "Extra deep clone" to clone instruments within phrases - the number of instruments are very limited so they might be eaten up too fast for this to be really useful?
- Volume column in the phrase screen - there simply is not enough RAM.
- Separate clipboards for different stuff - probably not, RAM is limited
- External arpeggio notes in tables; allow tables to reference the note pre-increased by parameter 1/2 of the Cxy effect (c.f. effect 10xx in klystrack) - I'm sorry, but I don't immediately see the big advantage with this, can you explain?
- Customizable duty cycle/"shape" parameter for synth - I don't understand how this is different from the already available sync settings
- Shape distortion for synth; more options besides clip and wrap - please describe in greater detail what you want
- Keyfollow/keytracking in a wave channel synth - the CPU is too slow to adjust filter settings live
- Second CMD column in PHRASE screen for complex work - not enough RAM
- I suggested repurposing the table RAM, so each sacrificed table would make room for a couple two-CMD phrases, but this would dramatically increase code complexity, and the DMG CPU is likely too slow to handle the added load
- keyboard mapping tool, allowing a user to custom map a keyboard to lsdj, especially for special keyboards with extra buttons - this is something that could make sense once keyboard is a bit more useful. right now, it's not particularly useful.
- Ability to randomize a phrase - this actually existed in versions 3.4.4 - 3.9.2, but wasn't a very popular feature.
- video - what's that supposed to mean? Maybe check out http://truechiptilldeath.com/blog/2010/05/28/lsvj-appeared/
- A timer on the main screen showing elapsed seconds and minutes of the song - there's not much screen space for this. Check project screen instead.
- A function like Ctrl+z -UNDO- (in windows) for correct errors such as accidentally deleting notes. If you delete notes, they should be in the clipboard - just press select+a to paste them back in.
- A NDS LSDJ sequencer with touch interface and the ability to create gb sav files to be used in LSDJ on the Game Boy. I would love to make a NDS sequencer, but in that case I would specifically want to take advantage of NDS capabilities and design.
- Reverse sample play. I would really like this, but unfortunately it's not an easy thing to do - it's very difficult just to play two channels forwards. Instead, one will have to prepare reverse samples... (now added as kit stepback!)
- Startup demo song. Is this really a good idea? It would be pretty nice for new users to quickly check if the setup is working by pressing start... but at the same time I just think it's pretty nice to start from a clean slate.
- Command for changing kit speed - this could be done, but there are so many commands already... not sure how to fit it in.