LSDJ Feature Wishlist
These are mostly actual requests from users - so feel free to add or comment upon this. /Johan
Stuff to consider:
- Copy/paste kit notes between columns
- Improved pulse envelope control. Currently, there is no easy way to make a smooth ADSR like pulse envelope. One idea would be to replace current instrument envelope parameter with volume + ADHSR. When the instrument is played back, this would in practice translate to a series of E commands. Another idea, which might fit better into the already existing design, would be to make the already existing table envelope column smoothly interpolate between levels.
- Allow tables to optionally run at a fixed, tempo-independent rate
- Tonal sample player. Should be totally possible for lower octaves
- Add ability to start a chain at the current position in live mode. Similar to pressing "START START", except instead of starting at phrase 0, start at phrase X, where X is the position of the next phrase that will play in the currently playing chain
- "Clean instrument data" reduces duplicate instruments and tables with identical parameters to the same instance / "Clean song data" also reduces duplicate chains to the same instance
- When two LSDJ's are synced in live mode, and master stops, the slave should become new master and continue playing
- render start & end waves on synth screen
- Prelisten while editing C commands
- Program noise shape directly in channel instead of notes
- Apply chain transpose while current phrase is being played (same as project transpose)
- Table ping-pong (via command?)
- Add DRUM lookup table for Super Game Boy support
- Independent sample offset control per-column in phrases
- 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.
- Rhythmic V Speed setting. Ex: VCX = 1/4 note, VDX = 1/2 Triplet, VEX = 1/4 Dotted
- Ability to edit pitch tables (LSDPatcher support)
- Super Gameboy Color Palette support
- Investigate wavegen rounding (could it be improved to make sines smoother?)
- L commands for wave synth ignore kit notes
- Allow 00-Tick to skip current note in phrase. Example: Phrase C/D/E/F/C/D/E/F/C/D/E/F/C/D/E/F; Groove 6/6/0; Resulting notes: C/D/F/C/E/F/D/E/C/D/F
- User-generated wave synth - Synth X would use data in frame X0 for Signal: User. Start frame parameters would be removed along with Filter/Cutoff/Q, but would still allow Volume, Dist, Phase, Vshift, and Limit changes for the following 15 frames
- Volume Tremolo command
- noise S CMD=STABLE also safing up table transposes
- 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).
- Range copy-paste in instr 40 (speech)
- 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)
...these are somewhat older suggestions:
- 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)
- 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.
- Sync: if starting song play from phrase, try to sync chain position. Possible??
- Noise channel for keyboard.
- Super Gameboy special features (border graphics??)
- 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)?
- ADSR in wave instrument/synth. Maybe does not even need to be a synth, could be a new loop mode like LOOP/PINGPONG, with the option to enter a "REL" note in phrase screen.
- PC keyboard: fake polyphony switching between pu1, pu2, wav
- Wave synth: would be nice with wave banks that are 32, 48, 64 frames long...
- Groove entry in chain screen
- Use PC keyboard keys for launching chains/phrases
Fixed:
(removed stuff here to make the page tidier)
- G command only allows 00-1F in phrases and tables for faster input
- Ability to set loop/hop point in table volume column (Hx)
- Show both notes and oscilloscope for wave channel
- Global tempo above 255
- 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)
- 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 s
- tart - 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)
- 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
- 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 - seems like something very few people would be interested in
- 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. Why would you want that?
- 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.