* Little Sound Dj * ->) H I S T O R Y (<- (C) Johan Kotlinski 2024-01-05: v9.4.0 * R command now also resets pitch if instrument PITCH is set to DRUM. thx def mechan! * fixed: mark song as changed when cutting or pasting. thx rho! * fixed: kit VFF went out of range. fixed by halving kit vibrato depths. thx .exe! 2023-03-18: v9.3.9 * fixed: inaccurate sequencer tempo. broke in 9.2.0. thx oskill8! * fixed: paste WAV note to left KIT note. broke in 8.9.3. thx infu_av! 2022-12-30: v9.3.8 * fixed: rare ADSR bug. broke in 8.8.0. thx andy goth! * fixed: wave play with LENGTH=F. broke in 9.3.6. thx andy goth! * more consistent start timing. thx LIJI32! 2022-11-28: v9.3.7 * when cloning chains or phrases, try to get new chains or phrases with adjacent numbers. thx john hbsn! 2022-11-20: v9.3.6 * adjusted PS/2 keyboard calibration, increased delay to work with nitro2k01's keyboard. * fixed: PS/2 keyboard calibration on CGB. broke in 9.2.D. * fixed: crash messages on CGB. broke in 9.2.D. * fixed: entering commands on right table column after entering L command. broke in 5.6.4. thx def mechan! 2022-10-25: v9.3.5 * fixed: crashes, stalls and visual bugs in groove screen. thx jvxSVT! * fixed: entering commands after pressing B+A on empty command. thx zahran! 2022-10-08: v9.3.4 * allow R command amplitude change for wave channel. thx def mechan! * tap A,A on A command value to make a new table. thx def mechan! * added error message when running out of tables when cloning from A command. 2022-09-26: v9.3.3 * allow cloning by select+b+a. * fixed: wave instrument visual glitch. thx ravancloak! * fixed: noise P command was not reset on song start. thx def mechan! * fixed: in block select, a+up/right on empty command no longer inserts command. 2022-08-06: v9.3.2 * fixed: another phrase select visual bug. broke in 9.2.n. thx hunter v! 2022-08-04: v9.3.1 * fixed: phrase select visual bug. broke in 9.2.n. thx def mechan! 2022-08-03: v9.3.0 * prelisten phrase command value changes. 2022-07-29: v9.2.N * fixed: selecting both left kit + wave notes in phrases. thx pouale! 2022-07-13: v9.2.M * fixed: reset table step position on LSDJ sync follow restart. thx infu_av! * fixed: avoid copying 0 groove steps. thx .exe! * fixed: visual bug on wave loop pos when switching instrument type. thx .exe! * fixed: minor ui bugs when cloning. * added error message when failing to create instrument from phrase screen. thx kellen t! * tweaked CUTE and COLR palettes for legibility on low-contrast screens. 2021-10-31: v9.2.L * fixed: crash in "analog in" sync mode. broke in 9.2.c. thx jan cistin! * slightly less noisy kit+wave playback. * a+left on instr table number 00 will now again switch table to OFF. 2021-10-17: v9.2.K * fixed: random P and V mutes on old CGB models (CGB-B and earlier) caused by "extra length clocking" bug. thx TRJB, matt currie for tech info! * fixed: kit F command reset amplitude. broke in 8.9.0. thx def mechan! * B+left/right in chain and phrase now skips empty channels. thx def mechan! 2021-09-19: v9.2.J * fixed: default wave did not match default synth. broke in 9.2.4. * high-speed tempo fixes. renamed new tempi to 2x/3x/6x, to reflect that they are multiples of screen refresh rate. * made HFF and TOO BUSY! stop all channels in LIVE mode, too. * added "out of synths!" error message when cloning or creating synth from wave instr, but there are no free synths. thx def mechan! * print "UPGRADING..." while upgrading old songs. thx def mechan! 2021-09-01: v9.2.I * new project tempo values: 299/448/896 BPM. (super game boy: 306/459/918 BPM.) these speeds match 2x, 3x, 6x screen refresh rate. thx infu_av! 2021-08-29: v9.2.H * fixed: KEYBD sync mode. broke in 9.2.0. thx john richard verchot! * fixed: ANA.IN sync mode acted weird when starting. broke in 9.2.0. * fixed: visual bugs. thx def mechan, infu_av! * changed noise PITCH=FREE to avoid random mutes on CGB-E/GBA, like 9.1.0 used to work. PITCH=FREE restarts noise after change from 15-bit to 7-bit noise wave. PITCH=SAFE restarts noise after any pitch change. thx infu_av! 2021-08-18: v9.2.G * fixed: "clean instr data" table de-dupe. never worked 100% but broke harder in 9.2.c. thx def mechan! * fixed: more 9.2.d visual bugs. thx def mechan! 2021-08-07: v9.2.F * fixed: more 9.2.d visual bugs. thx def mechan! * fixed: lsdpatcher 9.2.d upgrade issue. thx def mechan! * reset L command when restarting song. thx def mechan! 2021-08-05: v9.2.E * fixed: various visual bugs from 9.2.d. thx def mechan, infu_av! * added wave instrument "resync" playmode, like "pingpong" but restarts wave on each step. * reverted 9.0.0 ADSR A+down change. 2021-08-04: v9.2.D * fixed: "SYNC" would stay displayed after losing "LSDJ" sync signal. broke in 7.5.5. thx def mechan! * fixed: "TOO BUSY!" message. broke in 9.1.2. thx infu_av! * fixed: inconsistency with starting empty chain in lsdj sync. thx infu_av! * added pulse+noise instrument envelope visualization. * added A,A help for noise vibrato and transpose. * added A,A help to synth screen. thx infu_av! * undo v3.8.3 graphics update changes, update screen in 60 FPS again. graphics tweaks and optimizations. let me know if it feels or looks bad. 2021-07-19: v9.2.C * tweaked instrument table off/tick/step UI. thx def mechan, infu_av! * fixed: "clean instr data" would corrupt chains if certain Axx commands were used. broke in 3.9.2. * fixed: when in lsdj sync mode, pressing select+start to restart song could mess up sync. problem on sameboy and possibly also real hw? broke in 6.0.3. thx infu_av! 2021-07-14: v9.2.B * fixed: switching sync "lsdj"->"off" stopped playback. broke in 9.2.0. thx pouale! 2021-06-16: v9.2.A * fixed: entering wave notes on empty kit steps in phrase screen. broken since always. thx infu_av! * regenerated kits with more treble. good for hi-hats and cymbals. 2021-06-05: v9.2.9 * fixed: CMD/RATE >0 broke Rx0 (retrig once). broke in 7.5.5. thx def mechan! * fixed: phrase column titles did not update on cut & paste. broke in 9.1.2. thx def mechan! 2021-05-22: v9.2.8 * fixed: synth limit 0 did not match new DC level. broke in 9.1.c. thx def mechan! * fixed: inverted A+up/down on wave instrument LOOP POS. broke in 7.7.6. * fixed: when going to instrument screen w/o having creating any instrument in phrase screen, an uninitialized instrument would be shown. broke in 8.1.0. 2021-05-15: v9.2.7 * fixed: synth copy/paste did not include both limit values. broke in 9.0.0. * fixed: file screen cursor color. thx infu_av! * changed default noise note to 30. * increased contrast of COLR palette. * slightly desaturated CUTE cursor. 2021-05-07: v9.2.6 * fixed: kit V. broke partially in 7.5.9, completely in 9.1.0. thx def mechan! * fixed: file compression of default wave. broke in 9.2.2. * fixed: Wx0 for wave did not immediately update speed. broken since always. thx def mechan! * swapped cutoff/q synth parameters. thx def mechan! 2021-05-03: v9.2.5 * fixed: song mode left+start would not restart stopped channels. 2021-04-26: v9.2.4 * adjusted synth PINCH phase so that 1F value is more extreme. thx djmaximum! * removed RESYN3 synth phase mode. * reverted 9.2.2 synth DC offset change, as it added overtones to square. * tweaked screen map to allow going from phrase->synth. similar to 9.1.c, but without Y/W flip and P/Y long jump. +---+ +---+---+ <-| P |<->| Y | W |-> +-+-+-+-+-+-+-+-+---+ | S | C | P | I | T | +---+---+---+---+---+ <------| G |------> +---+ 2021-04-25: v9.2.3 * reverted 9.2.2 kit DC offset changes due to cymbal dithering problems. thx def mechan! 2021-04-23: v9.2.2 * fixed: entering kit notes after entering certain wave notes failed. broken since always? thx def mechan! * fixed: song start, left+start, stop, then live start, would sometimes not work. broken since 9.1.8. * fixed: stop channel when hopping to a chain with no phrases. broken since always? thx def mechan! * reverted 9.2.0 inverted phase setting. 9.2.1 songs will have to be converted back manually, sorry. * changed kit mixing DC offset to reduce noise on DMG. best used with lsdpatcher 1.11.2 or above. * tweaked synth DC offset to reduce noise on DMG. * revived old RESYNC as new RESYN2. thx def mechan! * renamed kit option DIST to CLIP. new values are HARD/SOFT/FOLD/WRAP, where SOFT replaces SHAP2 and SHAPE is renamed to FOLD. 2021-04-15: v9.2.1 * fixed: visual bug when starting song in LSDJ sync mode. broke in 9.2.0. thx pouale! * fixed: prelisten in LSDJ sync mode. broke in 9.2.0. thx pouale! * fixed: auto-upgrade old songs to 9.2.0 synth phase settings. thx kim minsik! 2021-04-14: v9.2.0 ! this version uses completely new sound generation techniques, based on months of research, that is not yet supported by all emulators. Sameboy 0.14, BGB 1.5.9 and Gambatte are OK. * new sample playback routine which reduces noise, especially for high-frequent sounds. to hear any improvement, kits must be created using lsdpatcher 1.11 or above. * synth phase v2. normal/resync replaced with smoother sounding pinch/warp/resync. inverted values so that 1F=no change, 0=max change, to match oscilloscope left/right. * less noisy volume envelopes on CGB. * lsdj sync: when pressing start on synced game boy in song mode, it will wait for end of chain of the lead game boy. thx pouale! * allow wave transfer over link cable. thx infu_av! * fixed: ui glitches on out-of-range noise notes. broke in 9.1.0. thx infu_av! * simplified screen map. +---+ +---+---+ <--| P |-->| Y | W | +---+---+---+---+---+ | S | C | P | I | T | +---+---+---+---+---+ <------| G |------> +---+ 2021-03-17: v9.1.C * fixed: waves were visually offset by 1 sample. broken since always. * fixed: wave mute randomly failed. broke in 9.1.B. thx def mechan! * fixed: live queue was not reset on song stop, causing problems with 9.1.8 l+start feature. thx def mechan! * fixed: visual bug when viewing synth in top-right screen map position. broke in 9.1.B. * fixed: visual bug on CGB when cancelling select in phrase screen. broke in 9.1.6. thx def mechan! * reduced DMG synth clicks. * smoother sounding synth phase. * made wave screen cursor wrap edges. 2021-03-09: v9.1.B * fixed: crash when starting live mode in lsdj sync. broke in 9.1.A. thx loic amiot! * fixed: inverted wave channel polarity. broken since forever. * fixed: table B command hop to A command would not switch table. thx def mechan! * fixed: naming of 1st speech kit, AA-EL => AA-EH. * reduced wave instrument clicks when switching between waves. * regenerated sample kits without 9.0.0 wave blending. * the worst screen map. * reverted silky mute added in 9.1.1. click-free muting now happens only at stop of speech instrument or wave instrument set to PLAY=ONCE. this is to make sure K happens instantly. thx def mechan! * SEL+R on W.Fx field in synth screen now shows that wave. thx def mechan! 2021-02-26: v9.1.A * fixed: hopefully fixed random crashes on L+START in song screen. * adjusted LSDJ sync protocol so that incoming bytes >= $c0 will not start playing song. this is because $bf is now the highest song step. 2021-02-24: v9.1.9 * fixed: crash when loading songs older than v8.6.0. broke in 9.1.5. 2021-02-21: v9.1.8 * L+START in song screen queues row for playback. thx infu_av! * added noise transpose on/off setting. thx def mechan! 2021-02-17: v9.1.7 * fixed: CLEAN SONG DATA wiped every second song step. broke in 9.1.6. thx def mechan! * fixed: changed noise PITCH=SAFE to also handle transitions from 7-bit waves. thx def mechan! * avoid unnecessary noise PITCH=SAFE retrigs for slow P commands. thx def mechan! 2021-02-16: v9.1.6 * fixed: CLEAN SONG DATA crash. broke in 9.1.5. * fixed: don't play past song step $BF. broke in 9.1.5. * fixed: wrong color when selecting in chain screen on CGB. broke in 8.6.3. * fixed: clipboard was emptied when switching screens while selecting. broken since always. * press SELECT to cancel selection. thx infu_av, saana! * reverted: live mode start/stop when selecting cancels B copy. this was added in 9.1.2. 2021-02-14: v9.1.5 - happy valentine's day! <3 * fixed: random pops on pulse+noise channels when lowering volume using E+K commands or table envelope. broke in 8.8.0. * made name entry cursor wrap around edges. thx zach warner! * reduced number of words 42=>14. * reduced word name length 4=>3. * reduced song steps 256=>192. 2021-02-08: v9.1.4 * stop scrolltext when switching screen using B+dpad. thx def mechan! * dotted wave cursor line. thx infu_av, ravancloak! * disable interrupts while starting wave instrument by notes or F command. likely makes wave instrument a tad more smooth and reliable. 2021-02-02: v9.1.3 * fixed: wavescreen up/down on selection did not update correctly. broke in 9.1.1. * fixed: redraw screen name after copy/paste in wave/groove/synth screens. broke in 9.1.1. * cosmetic wave screen change. * revived "S MODE" setting, removed in 9.1.0, with new name "PITCH". setting it to "SAFE" should 100% prevent against random mutes on DMG, according to latest research. thx LIJI32! 2021-02-01: v9.1.2 * fixed: vibrato stopped on new note. broke in 9.1.0. thx def mechan! * fixed: click when starting playback. broke in 9.1.1. thx def mechan! * fixed: cursor clear on CGB when pressing B+d-pad in rightmost kit phrase column. broke in 8.6.4. thx infu_av! * fixed: pressing A/B/SEL/START directly after d-pad. broke in 8.8.2. * fixed: chain screen SELECT+B => d-pad => SELECT+A could clone instead of cut. broken since always? * fixed: song screen SELECT+B => d-pad => B could toggle bookmark instead of copy. broken since always? * fixed: hide oscilloscope on stop. * add feedback scrolltext on select/cut/copy/paste/clone in all screens. thx zach warner! * start in groove screen now matches the screen above. * below song screen => play song * below chain screen => play chain * otherwise => play phrase thx infu_av! * made wave E commands outside 0-3 range more consistent, to facilitate reuse of instruments between pulse and wave channel. reverts to pre-6.4.4 behavior. thx cornbeast! * live mode start/stop when selecting cancels B copy. thx def mechan! * revert 9.1.1 psi screen map. always print PYW pages. thx infu_av! 2021-01-23: v9.1.1 * fixed: clicky wav mutes. broke in 8.8.0. thx 607! * fixed: SELECT+B => d-pad => SELECT+A in song screen could clone instead of cut. broken since always? * fixed: wave paste bug. sometimes wrong values were pasted. broke in 4.9.0. * add feedback scroll text on song copy/cut/paste. thx zach warner! * much faster song cut/paste. * silky mute: wave instrument mute now 100% click-free. * more visible wave screen cursor. * renamed ADSR=>ENV. * made 88/00 new default envelope for pulse+noise instruments. * minor UI tweaks to synth screen. * psi screen map. +---+ +---+ +---+ | P |<--| Y |-->| W | +---+---+---+---+---+ | S | C | P | I | T | +---+---+---+---+---+ <------| G |------> +---+ 2021-01-14: v9.1.0 --- noise channel * rearranged noise notes by frequency. 00-3b = static noise 3c-77 = tonal noise tonal noise is shown with note and octave. notes are converted on upgrade, transposes and commands are not. thx pegmode, infu_av! * noise C command now behaves like pulse + wave C. * added V command for noise channel. * made noise table transpose work together with S/C/P commands. * removed noise instrument S MODE FREE/STABLE setting. the hardware bug which caused missing sound on certain noise pitch changes is now properly worked around. --- vibrato * rhythmic TICK vibrato! V vibrato rates in PITCH=TICK mode now matches phrase steps: V0x = 16 steps V1x = 12 steps V2x = 32/3 steps V3x = 8 steps V4x = 6 steps V5x = 16/3 steps ... VFx = 1/2 step this assumes 1 beat = 24 ticks, with groove on average 6 ticks/step. other settings might work too. thx bryface! * V00 now only stops vibrato if a vibrato is active. otherwise, it starts a vibrato with slowest rate and lowest depth. * default vibrato now initially goes up. * adjusted pitch wrap so that VxF at C-2 does not wrap to highest octave. thx def mechan! --- fixes * fixed: oscilloscope could disappear when switching screens. thx def mechan! * fixed: visual bug when kit instrument used in noise phrase. thx def mechan! * fixed: song mark flickering when redrawing chains. * fixed: made wave screen cursor more visible when moving it sideways. 2020-12-25: v9.0.1 * fixed: the first retrig did not apply correctly when using R in tables. broke in 8.3.4. thx def mechan, infu_av! * fixed: rare bug where part of oscilloscope was broken on DMG/SGB. * B,B,B in song screen now marks rows. B+up/down snaps to nearest marked row. thx peter swimm, tobias karlsson! * changed back F command for WAV instrument to pre-7.4.0 behavior. wave change now happens immediately instead of being delayed by silky wave. this causes clicks but seems more useful in the end. * play position indicators (moving triangles) now update at 60 Hz. * reformatted and updated project help screen texts. 2020-12-14: v9.0.0 * fixed: crash when inserting instr 40 in noise phrases. broke in 8.6.2. thx def mechan! * fixed: pitch was a tad too high, most obvious with fast vibratos. broke in 7.6.5. * fixed: pulse finetune help. thx infu_av, def mechan! * fixed: don't start playing from chain screen if there are no phrases. thx infu_av! * remastered all sample kits except animlz and speech! * the ultimate screen map? +---+ +---+---+ | P |<--| Y | W |--> +---+---+---+---+---+ | S | C | P | I | T | +---+---+---+---+---+ <------| G |------> +---+ * expanded synth LIMIT range to 0-FF. while 0-F makes most sense, 10-FF can create interesting overtones when working with loud signals. thx tobokegao! * increased pulse/wave FINETUNE precision & range. thx infu_av! * tweaked A+down on ADSR. thx def mechan! 2020-11-17: v8.9.6 * fixed: enter noise notes using ps/2 keyboard. broke in 8.6.0. thx devin ross! * fixed: E cmd could retrig when LENGTH=UNLIM. broke in 8.9.5. * adjusted behavior when SEL+B copying notes. in 8.9.3, it was changed to also copy instrument number. it now only does that when copying in the wave channel. thx def mechan! 2020-11-15: v8.9.5 * made E command retrig if instr LENGTH is not UNLIM. thx tobokegao! * made K stop P & C to save CPU. thx def mechan! 2020-11-10: v8.9.4 * fixed: crash when jumping between phrase and table on phrases with no instruments. broke in 8.8.5. thx infu_av! * fixed: "clean instr data" could wipe synths in use. broke in 8.8.8. thx def mechan! * fixed: looped phrase hops would switch phrase when pressing B+UP/DOWN while playing a phrase in phrase screen. thx VinsCool, infu_av! * fixed: looped phrase hops were not reset when starting in live mode. thx VinsCool, infu_av! * fixed: phrase R and K can now be active together, so e.g. C-3 R01 --- K10 will work like expected. broken since always. thx def mechan! * print confirmation message when cloning in song screen. thx infu_av! * improved TR-606 samples. 2020-10-19: v8.9.3 * fixed: glitchy oscilloscope. broken since always? thx tobokegao! * fixed: samples were not stopped when switching kit. broken since always? thx peter swimm! * replaced TR-606 kit with a better-sounding one. thx to peter swimm, MicroD, def mechan for testing! * allow copy/paste between kit note columns. * table envelope hops done by setting second digit to H now happen immediately. thx def mechan! * made B+(A,A,A,...) do the same as B+A, to guard against accidental double keypress. exception for song screen which stays the same. 2020-10-13: v8.9.2 * fixed: noisy kit playback. broke in 7.3.2. 2020-10-08: v8.9.1 * fixed: E on wav channel note. broke in 8.9.0. * fixed: S on noise note could mute. broke in 8.8.1. thx def mechan! 2020-10-07: v8.9.0 * fixed: transition to live mode while playing chain or phrase. broken since always? thx def mechan! * fixed: kit/wav amplitude not reset by R command. broken since always? thx def mechan! * fixed: visual bug with phrases with only speech instr. broke in 8.7.1. * fixed: flickering when copy/pasting in song screen on CGB. appeared in 8.8.9. * changed: made AMI orange slightly less saturated. * changed: tweaked SEL+L after switching between synth/wave screens. thx def mechan! 2020-09-30: v8.8.9 * changed: left-margin colors groups steps in 4. thx radim lycka! * changed: tweaked screenmap look in project screen. 2020-09-29: v8.8.8 * fixed: oscilloscope broke in 8.8.7. * when wav instrument is set to manual, choose WAVE instead of SYNTH. 2020-09-28: v8.8.7 * fixed: kit numbering will no longer be affected by empty kits. e.g., if tr-606 is removed, tr-707 will stay as kit #2. broke in 3.6.0. * fixed: ghost cursor when pressing B+L/R in rightmost kit phrase column. broke in 8.6.4. thx def mechan! * fixed: wrong CGB cursor color when scrolling down in song screen. broke in 7.7.8. thx def mechan! 2020-09-13: v8.8.6 * fixed: looped phrase hops would loop forever in cases like 0 C-3 --- 1 D-3 H20 2 E-3 H21 broken since always. thx joe dobrowolski! * made adsr speeds a notch slower, so that 2=>1 and F=>E. 2020-09-11: v8.8.5 * restored pulse+noise LENGTH that disappeared in 8.8.0. * fixed: freeze when loading some songs made with 8.5.1 or older. thx stress_tn! * fixed: sel+r on A cmd in phrase would go to word screen if instr 40 was active. broke in 7.9.1. thx stress_tn! * fixed: live mode visual bug when stopping in other screens than song. broken since at least 4.7.3. 2020-08-30: v8.8.4 * made wav table updates happen before pu1 & pu2. reduces delay between wav instrument note-on and table start. good for reducing the initial blip in wav kicks using table L command! increases delay for pu1 and pu2. 2020-08-23: v8.8.3 * B+cursor in instr screen skips uninitialized instrs. * new DMG palette names AIRY/DARK/KIWI/NORI. ! requires lsdpatcher 1.4.2. 2020-08-12: v8.8.2 * fix: pressing b+(l/r/sel) repeatedly in song screen would insert bookmarks. broken since at least 4.7.3. * only switch between wave/synth screens on first SEL+RIGHT keypress. 2020-08-03: v8.8.1 * fixed: ADSR did not stop at second envelope stage for settings XX/X0/XX. broke in 8.8.0. thx def mechan! * changed back R command to 4.7.3 behavior where Rx0=retrig once. * faster loading of empty song. * improved logic for picking instr to show when going from phrase to instr screen. 2020-08-01: v8.8.0 * soft amplitude envelopes for pulse and noise channels. ADSR now has a wider range of speeds and volume changes are less clicky. this was tricky! let me know if it works on your machine. * removed LENGTH from pulse+noise instruments. * optimized L command. 2020-07-29: v8.7.7 * fixed: pu1 pitch changes could disable noise chain transposes. broke in 5.4.1. thx def mechan! * fixed: noise chain transposes did not work as supposed. broke in 8.6.0. * if last digit in table volume envelope is F, print it as H to show it's a hop. thx wiki user! 2020-07-11: v8.7.6 * fixed: live quick-start of channels not already playing started in wrong song position. broken in 8.7.5. thx infu_av! 2020-07-08: v8.7.5 * fixed: live quick-start of channels not already playing. broken since at least 4.7.3. thx infu_av! 2020-07-04: v8.7.4 * new DMG/SGB palettes: PALE/INVP/FILL/INVF. thx kevin bouvier! * disable key repeat for palette/font change. * changed back to pressing A,A for help. 2020-07-02: v8.7.3 * fixed: visual bug while marking in groove screen. broke in 8.7.1. thx def mechan! * fixed: "clean song data" did not update what happens when pressing A in chain/phrase screens. thx dan nln! * increased contrast of AMI, CRT, CUTE palettes. 2020-06-26: v8.7.2 * fixed: visual bug in phrase screen. broke in 8.7.1. thx def mechan! * fixed: tapping noise note with A would not remember it. broke in 8.6.2. * fixed: A+cursor on empty note in phrase screen did not set instrument. broken since always? thx infu_av! * fixed: when playing a phrase in phrase screen and switching channel by B+L/R, H cmd would incorrectly switch phrase. broke in 6.1.9. thx def mechan! * start/select in text input dialog now do backspace/OK. thx infu_av! * replaced GHETTO kit with ANIMLZ. * tweaked instr screen help UX. 2020-06-25: v8.7.1 * fixed: wrong CGB cursor color in project screen. broke in 8.6.2. * fixed: speech instrument visual bugs in phrases. broke in 8.6.8. * fixed: when playing speech words, the wrong allophone was printed in right margin. broken since forever. * fixed: DRUM pitch notes were slightly detuned, very detuned for SGB. broken since forever. thx def mechan! * replaced GRAY, RED and RGB palettes with BORT, COLR, DEAT and GOOD contributed by defense mechanism. thanks!!! * improved UX re: tempo nudge in project screen. thx def mechan! * dropped 'I' character from instrument column in phrase view. * tidied up groove screen shading. * increased the time to hold A for help. 2020-06-19: v8.7.0 * fixed: upgrade of noise chain transposes from 8.5.1 => 8.6.0. thx def mechan! * A+up/down on noise chain transposes is now +/- $10 instead of +/- $C. 2020-06-17: v8.6.9 * fixed: song screen crash that appeared in 8.6.8. thx stijn frishert! 2020-06-17: v8.6.8 * hold A in instr screen for help. thx zach warner! * hold A (not A,A) to show command help in table & phrase screens. thx zach warner! * renamed instrument setting TABLE PLAY to TABLE TICK, to be consistent with the pitch setting. * limit pulse instr SWEEP setting to 00-7f. (80-FF mirrored 00-7F) * renamed KIT LEN "AUT"=>"ALL". * reverted 8.6.6 change that made wave instruments start at 10, noise instruments start at 30. felt too prescriptive. 2020-06-12: v8.6.7 * fixed: freeze when pressing A+down on empty note in phrase screen. broke in 8.6.0. thx def mechan! 2020-06-11: v8.6.6 * fixed: crash bug in phrase screen. broke in 8.6.5. thx def mechan! * fixed: visual bugs when using kit instruments in pulse or noise phrases. broke in 8.6.2. * when creating new instruments in phrase screen, numbering now starts from 10 in wave channel, 30 in noise channel. * R8F now turns off fast retrig. thx def mechan! 2020-06-10: v8.6.5 * remember noise note also when changing phrase step without instrument. thx def mechan! * reverted 8.6.4 phrase instrument change. 2020-06-09: v8.6.4 * fixed: phrase screen visual bugs. broke in 8.6.2. thx def mechan! * pressing A+L/R on phrase instr will only select instruments that match the channel. 2020-06-09: v8.6.3 * fixed: copy/paste FF notes in noise phrases. broke in 8.6.2. thx def mechan! * fixed: wrong colors in noise phrases. broke in 8.6.2. thx def mechan! * reduced flickering when changing selections in various screens. 2020-06-08: v8.6.2 * various UI changes in phrase screen: - fixes for noise note input - noise phrases look tidier - mixed kit/wave looks tidier - less flickering when changing selection - new bugs? 2020-06-07: v8.6.1 * fixed: noise P broke in 8.6.0. 2020-06-07: v8.6.0 * for noise channel, phrases use shape values instead of standard notes. thx andy goth! * removed noise instrument "shape" setting. * when switching to a noise instrument in phrase screen, the last entered note of that instrument is recalled. 2020-06-05: v8.5.1 * noise channel now shows pitch byte in right margin instead of note. * fixed: going up from wav instrument did not show the matching synth/wave. thx def mechan! * fixed: G shortcuts from phrase/table-> groove screen. thx def mechan! 2020-06-01: v8.5.0 * new and possibly final screen map. +---+ +---+ | P | <-----|Y/W|--> +---+---+---+---+---+ | S | C | P | I | T | +---+---+---+---+---+ <----------| G |--> +---+ 2020-05-31: v8.4.9 * new synth SIGNAL mode, W.Fx which accepts wave F0-FF as signal. filtering disabled. thx def mechan! * live mode START,START in phrase screen now starts playing at chain position (CP). * live mode START,START on empty row in chain screen is now ignored. 2020-05-30: v8.4.8 * fixed: song stop did not stop R and K cmds. broke in 7.2.6. thx INFU_AV! * reverted screen map to classic v4 behavior, as the changes from 7.7.7 and on do not seem obviously better. kept brighter shading. * A+cursor in groove screen now applies only when releasing A. thx FANDOM user! * live mode START,START in chain screen now starts from cursor position. thx .exe! 2020-05-24: v8.4.7 * fixed: visual bug when changing phrase instruments by a+u/d. broke in 7.7.8. thx DonutShoes! 2020-05-24: v8.4.6 * fixed: visual bug when viewing words with short names in word screen. broken since at least 4.7.3. * visual tweak of screen map. same behavior as 8.4.5, but drawn using the classic cross style. * renamed project screen "PLAY TIME" => "PLAY" "WORK TIME" => "WORKED" to fit UI. 2020-05-22: v8.4.5 * fixed a crash in table screen. broken since at least 4.7.3. thx vincenti zghra! 2020-05-14: v8.4.4 * bugfix for 8.4.3. 2020-05-14: v8.4.3 * changed the warning when loading a song without saving first, from "DISCARD CHANGES?" to "LOSE X MINUTES OF UNSAVED WORK?" 2020-05-09: v8.4.2 * trying out a new 5x3 screen map: +---+---+ | P | G | +---+---+---+---+---+ | S | C | P | I | T | +---+---+---+---+---+ | Y | W | +---+---+ 2020-05-04: v8.4.1 * fixed: CMD/RATE of previous instrument stayed active when switching to KIT or SPEECH instrument. thx david sanders! 2020-04-16: v8.4.0 * fixed: select+up shortcuts broke in 8.3.9. thx def mechan! 2020-04-14: v8.3.9 * F command on wave notes in phrase screen now happens instantly instead of being delayed by silky wave. thx def mechan! * fixed: visual bug with A+L/R in wave screen. thx tronimal! 2020-04-14: v8.3.8 * replaced OLD font with ZERO. big thanks to def mechan for making and contributing this font! * screenmap shade now shows what SELECT+UP will do. thx zach warner! * visual separation of ADSR values. thx zach warner! 2020-04-13: v8.3.7 * fixed: upgrade from ENVELOPE to v8.1.0 ADSR. thx zach warner! 2020-04-10: v8.3.6 * pressing A+L/R in wave screen with no selection now draws a horizontal line. thx tronimal! 2020-04-01: v8.3.5 * fixed: B in left table column broke in 8.2.3. thx def mechan! 2020-03-23: v8.3.4 * fixed: R command restarted table one tick too late. broke in 5.9.9. thx bisento no buaka! 2020-03-23: v8.3.3 * fixed: first table VOL step took one tick too long when used with R. broke in 5.9.9. 2020-03-18: v8.3.2 * fixed: some A actions (e.g. changing command) would only happen when all buttons were released. they now happen when A is released. thx tobokegao! 2020-03-15: v8.3.1 * fixed: play indicators would disappear when switching from song to live mode while a chain is stopping. broken since at least 4.7.3. thx def mechan! * project screen play time clock will no longer switch to work time when stopping the song in project screen. thx def mechan! 2020-03-14: v8.3.0 * fixed: when marking in one screen, and navigating to another via project screen, SELECT+(B,B) range selection would get stuck. likely broke in 7.9.1. thx tobokegao! * fixed: when marking in phrase screen, A+CURSOR would change selection without refreshing the screen. broken since at least 4.7.3. 2020-03-11: v8.2.9 * made sure A,A only creates one chain, phrase or instrument. thx def mechan! * fixed: ADSR, CMD/RATE could be initialized with wrong values. broke in 8.1.0. thx def mechan! * fixed: synth clone from instrument screen could mess up the loop pos parameter. broken all the way since 7.2.5. thx def mechan! 2020-03-09: v8.2.8 * fixed: MIDI sync mode broke in 8.2.3. 2020-03-06: v8.2.7 * fixed: ps/2 keyboard calibration broke in 8.2.5. * changed ps/2 keyboard calibration to use down arrow key instead of left arrow key, to prevent confusion with backspace key. 2020-03-04: v8.2.6 * fixed: pitch updates could stop after L command finished. broke in 8.2.3. thx def mechan! * fixed: vibrato stopped too early when switching instrument. broken since at least 4.7.3. * bright dithered DMG background shade. * use icon instead of shading to show song bookmarks. * maybe made it even less likely that PS/2 keyboard gets stuck. 2020-03-03: v8.2.5 - supper tuesday release * hopefully made it less likely that PS/2 keyboard gets stuck. thx marcus burnell- spector! * hopefully made it less likely that the oscilloscope is partly invisible. thx marcus burnell- spector! * music playback is now stopped when starting ps/2 keyboard calibration. * sync settings are now preserved when loading a song. 2020-03-03: v8.2.4 * added PS/2 DELAY setting for KEYBD mode in project screen. tap it and follow on-screen instructions to calibrate communication with your PS/2 keyboard. 2020-02-28: v8.2.3 * "fixed": PS/2 keyboard input is hopefully less error prone now. feedback welcome! * fixed: prelisten when entering notes in phrases by PS/2 keyboard seems ok now. it is a nice option for keyboard playing, since there is no need to start the sequencer in advance, and no need to use a fast groove to get non-quantized playback. * when switching instrument using keyboard, print e.g. I01 if there is no instrument name set. * various optimizations. 2020-02-24: v8.2.2 * fixed: E command would mess with R command, causing wrong amplitude. broke in 8.1.9. thx def mechan! * fixed: when switching between instruments with FAST/DRUM and TICK pitch, P/L/V commands would momentarily be at wrong speed. broke in 7.8.1. * limit A command to A00-A20 in table view. * minor optimizations. 2020-02-23: v8.2.1 * fixed: L in tables broke in 8.1.9. thx def mechan! * pressing SEL+UP in song view now always goes to project view. * various optimizations. 2020-02-21: v8.2.0 * fixed: tables with a cycle of H commands directly pointing to each other would cause program freeze. broke in 8.1.9. * minor optimizations. 2020-02-20: v8.1.9 * fixed: E command on note in phrases would not work with Z command. broke in 8.1.8. * made Z affect all commands but H. * reduced clicking from O command on note in phrase screen. 2020-02-18: v8.1.8 * fixed: E commands on note in phrase screen did not happen instantly, causing an unnecessary click. broke in 3.4.3. thx def mechan! * fixed: oscilloscope was invisible with inverted colors on DMG, and partly invisible on SGB. thx kain de rivera! * fixed: pressing start could incorrectly mute channels. mostly noticeable when playing notes without instrument. broke in 2.5.4. thx def mechan! 2020-02-17: v8.1.7 * fixed: ADSR's in different channels would randomly mess each other up. broke in 8.1.1. thx .exe! 2020-02-17: v8.1.6 * CLEAN SONG DATA now merges duplicate chains. CLEAN INSTR DATA now merges duplicate tables. might work, but please stay safe and backup your .savs. thx matt whitwell! * tweaked ANALOG IN trigger detection to reduce latency. * print LEAD/SYNC status for ANALOG IN/OUT, too. nothing too fancy, as it does not indicate if there is an actual signal, but at least there is something. * minor song+instr cleaning optimizations. still slow. 2020-02-15: v8.1.5 * reduced ANALOG OUT latency. thx jan cistin! 2020-02-15: v8.1.4 * changed ANALOG IN polarity so that the trigger happens on rise instead of fall. I think this is more common, and it is what ANALOG OUT uses, too. thx jan cistin! 2020-02-14: v8.1.3 * fixed: R1x-R7x, R9x-RFx broke in 8.1.0. thx def mechan! * fixed: K randomly failed to mute kit samples. broke in 7.6.5. thx .exe! * fixed: P was sometimes a bit irregular. broke in 5.1.0. thx def mechan! * corrected R help text. thx def mechan! 2020-02-14: v8.1.2 * fixed: ADSR accidentally used PU1 pitch on PU2. thx def mechan! 2020-02-13: v8.1.1 * disabled ADSR if length is not UNLIM. thx def mechan! * improved handling of two ADSR steps in a row with the same amplitude. thx def mechan! 2020-02-13: v8.1.0 * fixed: tapping A,A on table in instrument screen would turn off the table when picking a table over $10. broken since at least 4.7.3. * when selecting a table with A+cursor in instrument screen, make sure it is locked and not selected by future A,A taps. * replaced envelope in pulse and noise instruments with ADSR, which has six digits: - initial level - attack speed (0-7, 0=hold) - attack level - decay speed (0-7, 0=hold) - sustain level - release speed (0-7, 0=hold) E and table envelope column work like they used to, and override ADSR. * instrument initialization now happens when the instrument is selected in a phrase. before that, the instrument data is all zeroes. this allows having different defaults for pulse/wave/noise, and possibly down the road, customizable defaults. 2020-02-10: v8.0.1 * fixed: visual bug when cloning synths from wave screen. broke in 7.8.8. thx def mechan! 2020-02-08: v8.0.0 * fixed: bookmarks did not redraw on CGB when pressing B+up/down in song screen. broke in 7.9.1. thx .exe! * optimized drawing of instrument screen. 2020-02-03: v7.9.9 * fixed: when quick muting in wave screen, note labels would be painted over the waveform. fixed by disabling quick mute in wave screen. broke in 7.8.8. thx def mechan! * fixed: note labels were not painted in speech and word screens. 2020-02-03: v7.9.8 * fixed: PU1 vibrato restarted when muting noise channel. broke in 7.6.2. thx def mechan! * default wave playmode = MANUAL. 2020-02-03: v7.9.7 * fixed: kit instrument without a note, followed by a wave note, would cause a click. broke in 7.8.4. thx def mechan! 2020-02-03: v7.9.6 * fixed: P and L were not stopped when triggering kit notes. broke in 7.9.2. thx def mechan! * fixed: play/step indicator was not redrawn when tapping A,A on instrument table. 2020-02-02: v7.9.5 * fixed: sample playback broke in 7.9.2. thx uraboroshi! * fixed: phrase screen did not redraw when changing multiple instruments at the same time. broke in 7.7.8. thx tronimal! * fixed: 7.9.4 visual bugs in wave screen border. 2020-02-02: v7.9.4 * fixed: song in position 9 in file screen did not draw correctly. broke in 7.9.2. thx uraboroshi! * A+cursor on command value now only does something if a command is set. thx def mechan! * only allow table shortcut in phrases if standing on A00-A1F. 2020-02-01: v7.9.3 * fixed: wave switches were sometimes very delayed on CGB. broken since 7.4.0. thx uraboroshi! * fixed: mute indicator visual bugs from 7.9.2. 2020-02-01: v7.9.2 * fixed: P/L stopped too late on new note, causing occasional blips. broke in 7.8.1. thx def mechan! * fixed: FX/SPEED accidentally slowed down table transpose. broken from start, i.e. 7.0.7. thx def mechan! * renamed FX/SPEED => CMD/RATE. * renamed MSTR/SLAV => LEAD/SYNC to look a bit trendy. thx def mechan! * optimized screen drawing. fixes noise on screen while saving and loading files. * print "MUTE" instead of just "M" when pressing B+SELECT. 2020-01-31: v7.9.1 * fixed: reset cartridge prompt did not disallow screen switching. * trying out a 2x5 screen map, where upper and lower rows have independent horizontal position. feedback welcome: info at littlesounddj dot com * minor screen switch optimizations. 2020-01-29: v7.9.0 * fixed: silky wave would lock up the game boy when playing at highest pitch. broke in 7.8.8. * fixed: silky wave did not work below C-4 on CGB. broke in 7.4.2. * made silky wave even less noisy. 2020-01-29: v7.8.9 * fixed: B in phrases did not skip notes properly. broke in 7.5.9. thx DonutShoes! * renamed magic "K00" kit note to "OFF". * made oscilloscope 3 chars wide again, to reduce CPU use and make the wave look less stretched out. * paint mute indicators with cursor color on CGB. * made A+L/R toggle between table STEP/PLAY. thx def mechan! 2020-01-28: v7.8.8 * improved silky wave accuracy for C-4 and up. re-enabled silky wave for C-7 and up. * revived played note indicator for wave channel. * made oscilloscope 4 chars wide and moved it below played note indicators. * moved quick-mute indication to played note labels. * adjusted A,A tapping on instrument column in phrases. tapping A 100 times will now only make one new instrument. 2020-01-27: v7.8.7 * fixed: phrase screen did not redraw when changing between kit instruments. broke in 7.7.8. thx jörg rittershaus! * fixed: A+LEFT/DOWN on K00 in kit note columns did not always set the last valid sample. broken all the way back since 6.8.8 :( thx jörg rittershaus! * after SELECT+A cutting in song screen, move cursor to the top of the area that was cut. 2020-01-25: v7.8.6 * fixed: when in live lsdj sync, queueing up multiple chains on the slave before it started playing would only start the first chain. broken since at least 4.7.3. thx stijn frishert! * fixed: R8x would not stop on new kit note. probably broken since 7.5.3. thx dot exe! 2020-01-24: v7.8.5 * fixed: silky wave could cause audible blips by locking up the CPU for too long. thx def mechan! 2020-01-24: v7.8.4 * fixed: kit notes with F command would never stop P and L. broke in 7.8.1. thx dot exe! * fixed: F and R would reset kit and word pitch. broke in 7.8.2. * kit notes without instrument number now do not reset effects. * minor optimization. 2020-01-24: v7.8.3 * split instrument table cell in two, trying to make the feature previously known as "automate" less hidden. the new cell has options STEP/PLAY. feedback welcome! * renamed the old kit PITCH to FINETUNE to avoid having two PITCH entries. 2020-01-23: v7.8.2 * fixed: P and L would sometimes not stop in time on new note. broke in 7.8.1. thx dot exe! 2020-01-23: v7.8.1 * fixed: K would not stop R commands. broke in 7.2.6. thx def mechan! * fixed: when playing a new note, P and L commands were stopped one tick too early. in case of fast P and L's, this would cause an audible blip. broke in 5.1.1. * table envelope xF now hops to step x. * tweaked VxA-VxD. new vibrato depth table: +-------+-----------+ | depth | semitones | +-------+-----------+ | 0 | 0.125 | | 1 | 0.25 | | 2 | 0.375 | | 3 | 0.5 | | 4 | 0.75 | | 5 | 1 | | 6 | 1.5 | | 7 | 2 | | 8 | 2.5 | | 9 | 3 | | A | 3.5 | | B | 4 | | C | 5 | | D | 6 | | E | 7 | | F | 8 | +-------+-----------+ 2020-01-21: v7.8.0 * undid most changes to effect value input done in 7.7.8. kept limitation G00-G1F, although in a nicer way. 2020-01-20: v7.7.9 * fixed: chains would get stuck if live queuing a chain by pressing START twice, then immediately switching to song mode. broke in 7.5.9. thx tobokegao! 2020-01-19: v7.7.8 * fixed: when picking a new phrase instrument with A+cursor, make sure it gets assigned a matching type (pulse/wave/noise) and prevent it from getting selected by A,A in the future. * fixed: R command did not work for wave synths. thx def mechan! * when going from wave instr->wave screen, show a wave in the selected synth bank. when going from wave screen->synth screen, show the synth bank that the displayed wave belongs to. thx def mechan! * highly optimized scrolling up/down in song screen. * reduced flickering when changing instrument in phrases on CGB. * tweaked effect value input. for most effects, A+L/R will now only update the second digit. G will now only accept range 00-1F. 2020-01-18: v7.7.7 * fixed: D command broke in 7.5.9. thx def mechan! * fixed: the fix for empty noise instrument in 7.6.9 was broken. * new screen layout, similar to how it was before the experimental 3.5.0 change. +---------------+ | | ___________________________V___________ | | | | s | P R O J E C T | WAVE | | h |_______________ _______|_______| | o | | | | | | r | SONG | CHAIN | PHRASE| INSTR | TABLE | t |_______|_______|_______|_______|_______| | | | | c | G R O O V E | SYNTH | GROOVE| u |_______________________|_______|_______| t ^ | | +---------------+ * kit notes with empty instrument are now played using the last used instrument. * undid the "by f cmd" change in 7.7.6, now it's "manual" again. 2020-01-17: v7.7.6 * fixed: select+down on G command in table would only go to that groove if the cursor was on the G, not the value. thx def mechan! * hopefully made wave instrument screen easier to understand: - changed "repeat" to "loop pos" - renamed "manual" to "by f cmd" - disabled "loop pos" when "once" is selected - disabled "speed", "length" and "loop pos" when "by f cmd" is selected 2020-01-16: v7.7.5 - bugfix release * fixed: crash when queueing a chain in live mode from other screens than song screen. broken in 7.0.4. thx maik macho! * fixed: live queued chains would sometimes start from wrong chain position. broken in 7.5.9. thx maik macho! * fixed: when copy/pasting both kit notes from/to a phrase row without instrument, the left kit note would not get pasted. broken in 7.2.9. thx def mechan! * fixed: color and palette changes did not always work reliably on CGB. has been broken forever. * fixed: a buzz could be heard when live starting a silent chain in wave channel. broken since at least 4.7.3. 2020-01-15: v7.7.4 * use oscilloscope instead of notes for all wave channel content. * use regular palette color for GBC oscilloscope. 2020-01-14: v7.7.3 * minor fix to oscilloscope drawing. 2020-01-14: v7.7.2 * fixed: some kit instruments were broken in 7.6.6. * increased screen refresh rate from ~15 FPS to ~20 FPS. 2020-01-14: v7.7.1 * added an oscilloscope for samples. 2020-01-14: v7.7.0 * v7.6.8 did not make LittleFM patcher work again :( this is another attempt. thx def mechan, nitro2k01! 2020-01-13: v7.6.9 * fixed a bug that happened when playing noise notes with empty instrument slot. thx def mechan! 2020-01-12: v7.6.8 * made LittleFM patcher work again. broke in 7.5.8. thx def mechan, nitro2k01! 2020-01-12: v7.6.7 * made the "TOO BUSY!" emergency stop more agressive. it now kicks in if a song is playing and no button press has been handled for 4 seconds. 2020-01-11: v7.6.6 * fixed: the play cursors on table screen stayed visible when the song was stopped. * faster song screen scrolling. * various optimizations. 2020-01-10: v7.6.5 * fixed: when switching from wave to kit instrument, the pitch change happened a little too early, sometimes causing a blip. * fixed: tapping a note would not remember the instrument. broke in v7.0.0. thx def mechan! * fixed: B+A in word screen did not work if releasing B first. * slightly reduced noise of kit and wave instruments. * adjusted vibrato depth so that Vx7 adds pure semitones. * minor optimizations. 2020-01-09: v7.6.4 * fixed: PU0 S command broke in 7.5.8. thx def mechan! * fixed: L command broken in 7.6.2. thx def mechan! 2020-01-09: v7.6.3 * fixed: initial note frequency broke in 7.5.8. thx def mechan! * minor optimizations. 2020-01-08: v7.6.2 * fixed: triangle and square vibrato were slightly off-center. (saw vibrato is still slightly off-center...) * tweaked square vibrato so that it can vibrate up/down by pure semitones. * made vibrato a bit less CPU demanding. 2020-01-07: v7.6.1 * reverted the pitch changes made in v7.6.0. 2020-01-07: v7.6.0 * pitch frequency update for FAST/DRUM instruments is now done at 180 Hz instead of 360 Hz. the benefit of this is that P/L/V commands now are much less likely to drain the CPU of classic Game Boys. a drawback is that L and V commands for FAST/DRUM instruments now are half speed compared to what they used to be, and songs need to be adjusted accordingly. fortunately, the conversion is easy: L = L / 2 V-rate = 2 * (V-rate + 1) - 1 while there is a difference in sound, and very fast pitch changes may not be just as smooth, I found that the difference is rather small and that it is probably more helpful to avoid slowdowns during playback. if you think otherwise, please let me know! 2020-01-06: v7.5.9 * fixed: B+START solo broke in 7.5.8. thx def mechan! * fixed: B command could affect D delayed notes in other channels. * various optimizations. 2020-01-03: v7.5.8 * fixed: "don't panic" screen did not show version info. broke in 7.5.3. * tweaked how FX/SPEED affects R. thx jörg rittershaus! * make F00 do nothing for wave instrument. (previously, it caused a click as the wave restarted.) * as a safety precaution, stop music before memory reset. * many optimizations. 2019-12-31: v7.5.7 * fixed: some button weirdness that appeared in v7.5.5. * micro optimizations. 2019-12-31: v7.5.6 * fixed: cartridge test broke in v7.5.5. * micro optimizations. 2019-12-31: v7.5.5 * fixed: LSDj would not enter battery save mode when idling. broke in v6.4.3. * made FX/SPEED affect R command. thx def mechan! * micro optimizations. 2019-12-27: v7.5.4 * for performance reasons, disable silky wave for C-7 and above. * tweaked some command help texts. * micro optimizations. 2019-12-27: v7.5.3 * fixed: wav channel could lock up the game boy if if was playing at a certain frequency. * fast retrig: R80-R8F retrigs at very high speed. useful for getting the distorted sound of pre-5.1.0 pitch wrap. * micro optimizations. 2019-12-25: v7.5.2 * song saving is now about twice as fast. * 100% thorough save song verification. * sped up scrolling in file screen. * sped up loading empty song. * when starting a new cartridge, initial project will be named (EMPTY) instead of (NEW). * fixed: failed verify on song save did not show an error message. * fixed: select+right in song screen would crash if pressed on empty step far down in song screen. broke in 7.2.1. 2019-12-23: v7.5.1 * sped up song loading another 30%. 2019-12-22: v7.5.0 * song loading is now twice as fast. thx def mechan, nitro2k01! * changed default wave repeat to F. 2019-12-21: v7.4.4 * made table "env" column for wave channel sound like the E command (i.e. less clicky). 2019-12-20: v7.4.3 * fixed: player sometimes read from wrong RAM bank, creating weird behavior. broke in 7.4.0. thx def mechan! 2019-12-20: v7.4.2 * silky wave now works OK with P, L, V and finetune. * slightly adjusted silky wave timing to further reduce clicks. 2019-12-19: v7.4.1 * fixed: K and R broke in 7.4.0. thx kain de rivera! 2019-12-19: v7.4.0 - silky wave * finally! much reduced wave instrument clicking :) 2019-12-17: v7.3.3 * fixed: lsdj sync in song mode would jump back to song position 0 whenever a new chain was started. fixed by changing protocol so that on new chain start, send $fd instead of 0. thx kim minsik! * updated help screens with "B: MAYBE" and synth clone in instrument screen. 2019-12-14: v7.3.2 * adjusted fast pitch/sample playback so that it is less likely to interfere with screen updates. 2019-12-14: v7.3.1 * lsdj sync select+start now restarts the slave in song mode. thx kim minsik! 2019-12-14: v7.3.0 * fixed: all channels could start when pressing start in lsdj sync mode on other screens than song screen. broken since 6.0.3. thx kim minsik! 2019-12-14: v7.2.9 * fixed: notes got scrambled when copy/pasting both kit and wav. broke in 7.1.5. thx kim minsik! 2019-12-13: v7.2.8 * fixed: wav chords did not go back to base note when a new note was played. broke in 7.0.4. thx aquellex! 2019-12-13: v7.2.7 * max tempo is now 295 BPM. thx aquellex! 2019-12-13: v7.2.6 * optimizations. 2019-12-12: v7.2.5 * fixed: when cloning table in instrument screens, the table would be cloned also during key repeat, creating a lot of new tables if SELECT+B was held. * synths can now be cloned from wav screen. thx def mechan! 2019-12-11: v7.2.4 * tapping A,A on chains/phrases in song/chain screens will no longer cut. it can be surprising and is not consistent with how A,A works in other places. 2019-12-11: v7.2.3 * adjusted tapping A in song screen. rather than creating a new chain, try to reuse one from above. 2019-12-10: v7.2.2 * when SELECT+RIGHT in song/chain screens fails, show a help message. 2019-12-10: v7.2.1 * block SELECT+RIGHT in song screen if the cursor is not on or below a chain. * block SELECT+RIGHT in chain screen if the cursor is not on or below a phrase. * when tapping A in song screen, create a new chain if none was previously added. * when tapping A in chain screen, create a new phrase if none was previously added. thx eric cyb, rocco devito wouters! 2019-12-10: v7.2.0 * when first entering a note in a channel, an instrument with matching type will be auto-created. * micro optimizations. 2019-12-09: v7.1.9 * fixed: wav F in left table column would mess up the command in right table column. broke in 7.1.4. thx def mechan! * micro optimizations. 2019-12-08: v7.1.8 * fixed: PU2 E command broke in 7.1.4. thx def mechan! * optimized wav finetune. 2019-12-08: v7.1.7 * put volume/output on the same row in kit + wav instruments. thx def mechan! 2019-12-07: v7.1.6 * tentatively added FINETUNE to wave instrument. thx def mechan, aquellex! * renamed "PU2 TUNE" => "PU2 TSP." * more micro optimizations. 2019-12-06: v7.1.5 * B+A on kit notes now also copies the instrument. * more micro optimizations. 2019-12-05: v7.1.4 * fixed: kits behaved weirdly since 7.1.2 due to compiler bug. * made B phrase probability distribution more symmetric. * tweaked B input (A+L/R now only changes 2nd digit). * renamed "PU TUNE" to "FINETUNE". * many micro optimizations. 2019-12-03: v7.1.3 * fixed: help text for B * fixed: when playing samples, transposes were broken in other channels. 2019-12-03: v7.1.2 * fixed: B in phrases would not prevent the instrument from loading and table from restarting. * inverted B probabilities. B in phrases B00: Never play note B0F: Always play note/right kit sample BF0: Always play note/left kit sample B08: Play note/right kit sample about 50% of the time B in tables BF5: Hop to row 5, 15 times out of 16 B84: Hop to row 4, about 50% of the time B03: Never hop to row 3 thx def mechan! 2019-12-02: v7.1.1 * fixed: B in phrases for non-kit instruments was broken. now uses two digits for note probability. thx def mechan! * call B "maybe" instead of "botch/branch" 2019-12-02: v7.1.0 * added B (botch/branch) command. B in Phrases = Botch Controls how likely it is that the note or sample(s) to the left will be played. First digit sets probability for left kit, second digit sets probability for notes and right kit. B00: Always plays note B0F: Usually skips note/right kit B80: Skips left kit about 50% of the time B in Tables = Branch A hop that only happens sometimes. First digit sets probability, second digit sets destination row. B05: Always hops to row 5 B84: Hops to row 4 about 50% of the time 2019-11-29: v7.0.8 * fixed: L command occasionally misfired. thx fransesco piazza, jan cistin! 2019-11-08: v7.0.7 * renamed "C SPEED", "CP SPEED" to "FX/SPEED" * fixed: visual bug when pressing A,A on table in instrument screen. 2019-11-07: v7.0.6 * fixed: C command for noise broke in v7.0.4. 2019-11-07: v7.0.5 * noise instr: renamed S CMD => S MODE * noise instr: added CP SPEED, which works like C SPEED but for P, too. thx pain perdu! 2019-11-06: v7.0.4 * reverted v7.0.3 changes. * merged TABLE and AUTOMATE in instrument screen. AUTOMATE is now named STEP and enabled by pressing A+UP on TABLE. * added C SPEED, which controls the speed of C command, to wave and pulse instruments. 0 = fastest, F = slowest. thx to everyone who helped ironing out this idea! * C command no longer goes back to the base note immediately. This makes chord transitions less abrupt. * reset cartridge initialized flags every startup. this should theoretically make it less likely that the cartridge resets in case of repeated memory corruption. * changed cartridge test so that the non-destructive ROM test happens before the destructive SRAM test. this is to allow shutting down the Game Boy before all SRAM is wiped. 2019-11-02: v7.0.3 - experimental * when a table is running, C command will use the same groove as the table. this allows for slower chords. 2019-11-02: v7.0.2 * project screen tempo tap now only updates the tempo after 4 taps. thx kim minsik! 2019-11-01: v7.0.1 * fixed noise channel crash. thx def mechan, clément espeu! 2019-11-01: v7.0.0 * L command now takes semitones also in DRUM mode. thx def mechan! * renamed P/L/V => PITCH * instrument will no longer be set when pressing A on a note in phrase screen. thx clément espeut! * fixed: skip L command if no notes has been played yet. this was already "fixed" in 5.8.5 but not working 100%. 2019-08-21: v6.9.0 * fixed: D command was not working with 1 grooves. broken since v5.5.0. thx nick drexler! * reverted 6.8.9 change which did not work as intended. 2019-07-02: v6.8.9 * T00-T27 sets project transpose. thx kabcorp! 2019-06-19: v6.8.8 * kit channels can now be killed individually. in note column in phrase screen, press A+RIGHT until K00 appears. this only works on kits with fewer than 15 samples. thx def mechan & zenkomani for idea! 2019-06-11: v6.8.7 * improved handling of large D values. thx kipptune, def mechan 2019-04-23: v6.8.6 * fixed: R and K commands were not reset by notes with F command. thx def mechan! 2019-03-18: v6.8.5 * don't switch LIVE->SONG mode on song load. thx def mechan! 2019-02-10: v6.8.4 * allow chain data transfer over link cable. useful for transposes. thx nick drexler! 2019-01-25: v6.8.3 * bugfix: L command corrupted memory at certain pitches, due to "inc hl" CPU bug. thx def mechan! 2018-09-04: v6.8.2 * bugfix: it was possible to set 0 ticks in groove screen. thx def mechan! 2018-09-02: v6.8.1 * made groove ticks 1-FF instead of 1-F. thx nick drexler! 2018-08-19: v6.8.0 * bugfix: wrong wave instr speed/length defaults in 6.7.0. thx nick drexler! 2018-08-15: v6.7.1 * bugfix: starting a live queued chain on master would not start slave. thx stijn frishert! 2018-08-11: v6.7.0 * changed range of instr wave speed from 1-F to 1-FF. thx nick drexler! 2018-08-06: v6.6.8 * pressing B while SELECT+B marking no longer unmutes the channel. thx def mechan! 2018-07-26: v6.6.7 * adjusted P down speed to again match P up speed. (e.g. PF0 matches P10.) thx nick drexler! 2018-07-24: v6.6.6 * rewrote synth limiter so that fold/wrap are a bit cleaner. 2018-07-23: v6.6.5 * when starting song from any other screen than song screen, song is started from current chain position. (this was already true for chain & phrase screens.) thx def mechan! 2018-07-23: v6.6.4 * moved synth VSHIFT so that it happens before LIMIT. 2018-07-22: v6.6.3 * renamed back LIMIT to DIST. * made LIMIT variable. 2018-07-22: v6.6.2 - synth limiter * renamed synth DIST setting to LIMIT. added FOLD option besides CLIP and WRAP. level is now configurable from 0-F. thx andy goth, mike collins-dowden 2018-07-19: v6.6.1 * adjusted F for kits so that only values outside FF0-F10 have double range. thx nick drexler! * avoid click when changing instrument on phrase step without a note. thx andy goth! 2018-07-19: v6.6.0 * doubled range of F command for kits. 2018-07-13: v6.5.1 * made C00, V00 reset chords, vibrato respectively. thx nick drexler! 2018-07-08: v6.5.0 * bugfix: weird wrapping behavior on A+UP/DOWN on length param in word screen. thx andy goth! * bugfix: visual quirks with speech instrument 40. thx andy goth! 2018-07-06: v6.4.9 * bugfix: various wav instrument problems appeared in v6.4.7. thx def mechan! 2018-07-05: v6.4.8 * adjust ROM check to work with buggy MBC5 cartridges. * fixed visual glitch on instr 40. thx andy goth! 2018-07-04: v6.4.7 * made lcd interrupt handling a little more CPU efficient. 2018-07-03: v6.4.6 * press B+UP to go to first row in chain & phrase screens. thx def mechan! 2018-07-02: v6.4.5 * bugfix: E command broke for wav channel in 6.4.4. thx def mechan! 2018-07-02: v6.4.4 * rewrote some C code in assembly to free up ROM space. 2018-06-30: v6.4.3 * bugfix: DRUM notes were displayed wrong in song screen. thx skybox! 2018-06-26: v6.4.2 * bugfix: DRUM scale was broken on higher octaves. thx def mechan! 2018-06-25: v6.4.1 * B+UP on song row 01-0F now moves cursor to row 00. thx def mechan! 2018-06-23: v6.4.0 * bugfix: R command was unstable for kit instruments since v6.1.7. thx def mechan! 2018-06-06: v6.3.9 * bugfix: another fix for P/L/V DRUM option in kits. thx def mechan! 2018-06-06: v6.3.8 * bugfix: another fix for P/L/V DRUM option in kits. thx def mechan! 2018-06-06: v6.3.7 * bugfix: removed P/L/V DRUM option from kit instruments. thx def mechan! 2018-06-06: v6.3.6 * bugfix: triangle vibrato broke in 6.3.3. thx def mechan! 2018-06-05: v6.3.5 * bugfix: playing in LIVE mode sometimes didn't work. problem appeared in 6.0.3. thx lukas von fugler! 2018-06-03: v6.3.4 - ui simplification * removed TUNING setting * brought back old TRANSP. ON/OFF setting * added DRUM mode to P/L/V, which is like FAST mode but with logarithmic pitch (useful for P kicks) 2018-06-02: v6.3.3 - experimental * removed DRM MAX setting and instead made DRM use same scale as 12T in phrases. 2018-05-13: v6.3.2 * minor UI tweaks. 2018-05-13: v6.3.1 * minor UI tweaks. 2018-05-13: v6.3.0 * synth screen q value is now variable. 2018-05-13: v6.2.0 * bugfix: K command was broken for kits. * a+left now sets W00->WFF in wav channel. thx def mechan! 2018-05-11: v6.1.9 * another attempt for failed 6.0.2 improvement, where when playing phrase, H command would hop to the phrase being viewed. thx andy goth! 2018-05-01: v6.1.8 * minor optimizations. 2018-05-01: v6.1.7 * avoids silent tick when switching between WAV and KIT instruments. thx kabcorp! 2018-04-28: v6.1.6 * bugfix: noise table transpose was reset by E command instead of when starting a table. thx def mechan! 2018-04-22: v6.1.5 * visual bugfix for play indicators in live mode/MIDI sync. 2018-04-22: v6.1.4 * fixes for MIDI sync. 2018-04-21: v6.1.3 * made Z command remember last command per-table instead of per-column in tables. thx nick drexler! 2018-04-19: v6.1.2 * bugfix: another fix for E command affecting noise S. thx nick drexler! 2018-04-19: v6.1.1 * bugfix: made E command not reset noise S. thx nick drexler! 2018-04-18: v6.1.0 * fixed the 6.0.4 fix for table volume affecting S command, to make retrigs reset noise shape again. thx nick drexler! * improved SRAM testing. * prevented an assert on bad SRAM read. thx roger sung! 2018-04-16: v6.0.9 * test ROM on first startup. ROM is now verified using checksum. * made CGB analog in sync mode behave more similar to DMG. 2018-04-10: v6.0.8 * bugfix: adjusting tempo was not possible on LSDJ master. thx nick drexler! * save battery when waiting in LSDJ slave mode. 2018-04-09: v6.0.7 * bugfix: project playtime was not updated on LSDJ slaves. thx andy goth! * bugfix: B+L/R in chain screen could reset song position to 0. thx andy goth! * reduced latency when switching LSDJ->OFF while playing. 2018-04-08: v6.0.6 * various sync bugfixes. 2018-04-07: v6.0.5 * reverted broken H change in 6.0.2. thx def mechan! * P/L/V + samples did not work for LSDJ slave. thx nick drexler! * improved logic for finding which song step to play on LSDJ slave. thx nick drexler! * various sync bugfixes. 2018-04-03: v6.0.4 * made sure table volume column does not reset noise S. thx nick drexler! 2018-04-03: v6.0.3 (preview build) * preview of LSDJ sync mode, which replaces MASTER and SLAVE. features: - when starting a song, the other game boy automatically starts at the same song position. - clipboard transfer works in both directions. - prelisten works. 2018-04-02: v6.0.2 * when playing phrase, H command will now hop to the phrase being viewed. thx andy goth! 2018-04-02: v6.0.1 * color game boy minimum tempo is now 40 BPM. thx andy goth! 2018-03-31: v6.0.0 * bugfix: W command for wave channel permanently shortened the number of repeats. e.g. W12 W1F would keep repeat at 2. thx nick drexler! 2018-03-29: v5.9.9 * bugfix: K and R commands were delayed one tick in tables. thx nick drexler! 2018-03-21: v5.9.8 * removed NANO sync mode 2018-03-18: v5.9.7 * bugfix: when in slave/midi mode, first tick was off if slave was started in a screen that doesn't display WAIT. * dmg visual fixes for DRM MAX setting. thx andy goth! * simplified PLAY TIME code a little, hopefully this makes it less buggy. 2018-03-14: v5.9.6 * re-enabled solo/mute in wave screen. thx nick drexler! 2018-03-14: v5.9.5 * bugfix: made PU2 TUNE show in right column again. thx nick drexler! 2018-03-05: v5.9.4 * bugfix: clip dist could wrap at high volumes. 2018-03-05: v5.9.3 * reduced clicking by skipping instrument pan if there is an O command on the same step. thx andy goth! 2018-02-28: v5.9.2 * G can now restart active grooves. thx def mechan! 2018-02-11: v5.9.1 * sped up file load/save. 2018-02-11: v5.9.0 * bugfix: quick mute was only disabled for PU0 when loading a song. thx andy goth! 2018-02-11: v5.8.9 * bugfix: cursor could move out of bounds when pressing save in file screen. thx andy goth! * don't show quick mute info in project screen. thx andy goth! * disabled quick mute in project, file, help and wave screens. thx andy goth! 2018-02-01: v5.8.8 * bugfix: save stopped working after erasing in a certain order. bug appeared in 5.7.8. thx Kevin Vc! 2018-01-17: v5.8.7 * mute wave channel while switching from KIT to WAV instrument, to prevent glitches. thx def mechan! 2018-01-17: v5.8.6 * live mode: tapping start twice to quickly jump to next chain now works also for H commands. thx def mechan! * renamed project screen setting "DRM MAX B-A=" to "DRM MAX" 2018-01-07: v5.8.5 * ignore L command if no note has been played yet. thx stijn frishert! 2017-12-28: v5.8.4 * bugfix: wrong graphics shown when changing pulse instrument wave while wav channel was selected. thx Laboratory X! 2017-12-27: v5.8.3 * added DRM MAX project setting that allows tweaking the range of the DRM pitch table. By default, DRM B-A equals 12T B-A; use this setting if you want to map DRM B-A to a lower 12T note. thx def mechan! * made K command stop vibrato. (saves some CPU) 2017-12-23: v5.8.2 * minor vibrato depth tweaks. 2017-12-23: v5.8.1 * Re-tweaked vibrato depth. Vx0 now means minimal vibrato rather than vibrato off, VxF now means +/- 0.5 octave. Inbetween values grow exponentially, meaning that control is finer around Vx0 than VxF. 2017-12-18: v5.8.0 * Made fast vibratos 4x deeper. Thx Pain Perdu! * Made start button in file screen ignore key repeat. 2017-11-18: v5.7.8 * bugfix: GBDK division was not thread safe, this could cause minor random errors. * bugfix: active file slot was not correctly updated after erasing. thx def mechan! * bugfix: when overwriting an empty file slot, the song name could get some extra characters from the song name that used to be there. thx def mechan! * A command with the running table used to do nothing. now it restarts the table with automate off. thx def mechan! 2017-11-16: v5.7.7 * bugfix: editing a pulse instrument would switch to PU0. thx nick drexler! 2017-11-10: v5.7.6 * W command for wave: 2nd digit=0 now means keep length as is. (just like speed) * W will now only restart the synth if length is changed. * changing W up/down in tables now modifies by $10. 2017-11-10: v5.7.5 * bugfix: moving the left kit offset past end would mute the right kit. thx nick drexler! 2017-10-28: v5.7.4 * bugfix: sliding to note with different tuning would not change tuning. thx def mechan! * bugfix: avoid click on I-- note in wave channel. thx def mechan! 2017-10-27: v5.7.3 * bugfix: pitch speed was accidentally changed in v5.7.0. thx def mechan! 2017-10-25: v5.7.2 * bugfix: fixed wave instrument click added in v5.6.5. thx def mechan! 2017-10-23: v5.7.1 * bugfix: p/l/v step mode didn't work when playing kits. 2017-10-23: v5.7.0 * merged P+L+VIB and P.SPEED settings to P/L/V, which works the same for kit, wave and pulse instruments. this changes the .sav format slightly. pre-5.6.5 songs will be auto-upgraded. 2017-10-23: v5.6.5 * reduced wave instrument clicking when doing volume changes. 2017-10-20: v5.6.4 * bugfix: L00 did not always change pitch in tables. thx def mechan! * made it impossible to enter L in right table column. 2017-10-17: v5.6.3 * lowered DRUM tuning so that the highest note is now audible. thx def mechan! 2017-10-17: v5.6.2 * added more error handling to clipboard transfer. 2017-10-17: v5.6.1 * bugfix: E command would not work in combination with retrigging commands like F on KIT instruments. thx nick drexler! 2017-10-15: v5.6.0 * make sure slave doesn't freeze if clipboard transfer fails. 2017-10-15: v5.5.9 * fixed CGB->DMG clipboard transfer. 2017-10-15: v5.5.8 * tweaked the clipboard transfer protocol to reduce the risk of sync data being treated as clipboard data. 2017-10-15: v5.5.7 - clipboard transfer * when in master sync and not playing, copying groove, phrase, instr, table or synth data will also transfer the clipboard to the slave game boy. 2017-10-14: v5.5.6 * bugfix: D command in two channels simultaneously did not work. thx def mechan! * improved S docs. thx nick drexler! 2017-10-13: v5.5.5 * bugfix: changing WAV REPEAT would reset SYNTH. thx nick drexler! 2017-10-12: v5.5.4 * bugfix: AUTOMATE in KIT was always displayed as OFF. thx noah deck! * made sure negative F command on KIT can't jump before sample start. thx nick drexler! 2017-10-11: v5.5.3 * bugfixed P.SPEED setting. thx def mechan! 2017-10-10: v5.5.2 * changed P.SPEED STEP vibrato to triangle. 2017-10-10: v5.5.1 * brought back V command for kits, on popular request. 2017-10-10: v5.5.0 * bugfix: D command did not work for I-- notes. thx nick drexler! 2017-10-10: v5.4.9 * bugfix: V command aborted K command. thx nick drexler! 2017-10-09: v5.4.8 * Added "STEP" KIT P.SPEED mode, which makes P do a relative pitch change once. thx defense mechanism! 2017-10-04: v5.4.7 * fixed glitch when switching between 12T and DRM instruments. thx aquellex & defense mechanism! * fixed glitch when switching from KIT to WAV instrument with P active. thx defense mechanism! 2017-10-02: v5.4.6 * adjusted WAV offset so that it is easier to sync. thx aquellex! 2017-10-01: v5.4.5 * bugfix: WAV screen LENGTH/SPEED was messed up. thx aquellex! 2017-10-01: v5.4.4 * enabled P command for noise channel. applies S command with the given value every tick. 2017-09-30: v5.4.3 * enabled C command for noise channel. applies S command with the given value every second tick. * changed WAV screen so that REPEAT can never be greater than LENGTH. 2017-09-29: v5.4.2 * bugfix: HFF command in phrases was broken. thx defense mechanism! 2017-09-27: v5.4.1 * replaced DRUMMODE with TUNING. three settings are available: 12T - 12-tone equal tempered FIX - non-transposable 12T DRM - drum tuning, in which notes are tuned for P kicks * bugfix: drummode pitch was broken for some combinations of notes and commands. thx defense mechanism! 2017-09-25: v5.4.0 * bugfix: some drum notes had wrong pitch. thx noah deck. * renamed VIB.TYPE to P+L+V 2017-09-24: v5.3.9 - experimental * Replaced instr screen TRANSP. with DRUMMODE setting. When on, it disables transpose (like TRANSP. OFF used to). Also, it redistributes notes so that P/L/V commands will have the same slope as they used to prior to v5.1.0. 2017-09-24: v5.3.8 * L00 now sets pitch immediately without stopping P command. * RxF now only retrigs once. thx nick drexler! 2017-09-10: v5.3.7 * Bugfix: W in wav tables was locked to values 0-3. Thx Defense Mechanism. * Changed the W command for WAV so that there is no longer a mismatch with speed setting in instrument screen. * Command A20 now stops tables. Thx Defense Mechanism. * Re-added A+L/R functionality for flipping selection horizontally in wave screen. Thx Toboke Gao. 2017-05-28: v5.3.6 - pitch tweaks * Fixed rounding error that made fine pitch changes go slightly more down than up. Thx Noah Deck. * Made pulse finetune a bit more fine. Thx Nick Drexler. 2017-04-12: v5.3.5 * Changed memory reset shortcut from SELECT+A to SELECT+A+B and improved warning message. 2017-04-01: v5.3.4 * Erasing songs no longer creates (EMPTY) slots. 2017-03-28: v5.3.3 * Bugfix: Delayed notes were not panned. Thx Lindar Greenwood! 2017-03-21: v5.3.2 * Pitch was not properly updated when starting a slide. Thx Defense Mechanism. 2017-03-19: v5.3.1 * Bugfix: Another attempt to fix commands :( Should work OK now. 2017-03-19: v5.3.0 * Bugfix: Commands were broken in 5.2.9. 2017-03-19: v5.2.9 * Bugfix: Pulse finetune did not always work while playing samples or delaying notes. Thx Defense Mechanism! * Analog sync tick/step setting now goes all the way to FF. Thanks Otto! * Minor optimizations. 2017-03-16: v5.2.8 * Bugfix: Pan was not applied when using F command on kits. Thanks Defense Mechanism! 2017-03-11: v5.2.7 * Made it possible to go below C-2 again. Useful for vibrato and finetune. Thx kabcorp! 2017-03-07: v5.2.6 * Bugfix: Pan was accidentally reset by e.g. S commands. Thx Defense Mechanism! 2017-03-06: v5.2.5 * Bugfix: L/P commands were sometimes not properly reset when PU2 transpose was active. Thx Defense Mechanism! * Bugfix: Improved timing of O command. Thx Defense Mechanism! 2017-03-03: v5.2.4 * Bugfix: Transpose was reset by new note one tick too early. Thx Noah Deck! * Bugfix: Counting H in tables was broken for wave and noise channels. Thx Noah Deck! * Bugfix: Pan (O) changes happened one tick too early. 2017-02-28: v5.2.3 * Bugfix: L command could mess with pitch bends in other channels. Thx Defense Mechanism! * A command now always disables automate. Thx Defense Mechanism! * Made Z command less confusing. Each digit now specifies the maximum possible random value to be added. The digits are added independently. Example: Z02 adds one of 0, 1, 2 to the original. Z20 adds one of 0, 10, 20 to the original. Z22 adds one of 0, 1, 2, 10, 11, 12, 20, 21, 22. 2017-02-28: v5.2.2 * Bugfix: Visual errors with copy/paste in instrument 40. * Improved NORMAL and RESYNC synth phasing at high values. * Changed Z command so that the value is a bit mask. E.g. ZF0 will add some value 00, 10, 20, 30, ..., to the previous effect value. * Made it possible to step back in kits using F80-FFF. Thx Nick Drexler! 2017-02-28: v5.2.1 * Improved P wrapping. The new P command did not wrap that nicely, this should be an improvement. 2017-02-27: v5.2.0 * Bugfix: P for kits broke in v5.1.9. Thx Defense Mechanism! * Renamed VIB.TYPE setting in kits to P.SPEED, since V does not work for kits anymore. 2017-02-27: v5.1.9 * Made L and P command less CPU intensive. 2017-02-25: v5.1.8 * Bugfix: Some slides going up, then down, would not stop. Thx Defense Mechanism! 2017-02-24: v5.1.7 * Bugfix: PU finetune broke in 5.1.3. Thx Lukas von Fugler! 2017-02-24: v5.1.6 * Bugfix: Delayed notes did not reset P command. Thx Eiyeron Fulmincendii! * Improved tuning of some notes. * Lowered note names by one octave, to match the conventional A4 = 440 Hz. * Minor optimizations. 2017-02-22: v5.1.5 * Re-enabled P command for kits. * Bugfix: Graphical glitches when using P/L/V commands are now less likely. Thx Peter Swimm. 2017-02-20: v5.1.4 * Bugfix: Sample playback interrupted L/V/P commands on pulse channels. Thx Jörg Rittershaus! * A+UP/DOWN on instr kits now step by 10. Thx Jörg Rittershaus! 2017-02-20: v5.1.3 * Bugfix: Pulse sweep was broken. Thx Jörg Rittershaus! * Bugfix: Sample playback interrupted L/V/P commands on pulse channels. Thx Jörg Rittershaus! * Updated L help text. 2017-02-19: v5.1.2 * Bugfix: Sample playback was distorted in v5.1.0. Thx Jörg Rittershaus! 2017-02-19: v5.1.1 * Increased range of P command. * Bugfix: L command was not reset by new note. Thx Pain Perdu. 2017-02-18: v5.1.0 - new pitch * Rewrite of all things related to pitch: L, P, V, and PU finetune. Pitch changes now have the same speed across all notes and octaves. * Hi-freq P is now slower. * L parameter now sets slide duration instead of slide speed. * Lo-freq V and P/L can now be active at the same time. This is a major change, so please don't hesistate to give feedback and report any problems! 2017-02-15: v5.0.3 * Bugfix: The triangle vibrato was glitchy. Problem appeared with v5.0.0. 2017-02-13: v5.0.2 * Another bug fix for switching from P to L command. Thx Aaron U! * Progress indicator for save/load file did not update correctly. Thx Aaron U! 2017-02-11: v5.0.1 * I-- notes now reset pitch bend again, reverting part of the v4.9.7 change. * Minor optimizations. 2017-02-09: v5.0.0 * F command added for PU1/PU2 channels. - 1st digit: PU2 Detune - 2nd digit: PU Finetune * W command added for WAV channel. - 1st digit: WAV Speed - 2nd digit: WAV Length * File menu START now stops/starts song. * File menu SELECT+A now loads a song without switching to song screen. * Made P and V commands more CPU efficient. Should make a difference on DMG. * More responsive during heavy load. * Various minor optimizations. 2017-02-04: v4.9.9 * Another bug fix for switching from P to L command. Thx Aaron U! 2017-02-04: v4.9.8 * Bugfix: Switching from P to L command did not work as expected. Thx Aaron U! 2017-02-04: v4.9.7 * P command is no longer reset by chords, transposes or I-- notes. Thx Pain Perdu. * Minor optimizations. 2017-02-03: v4.9.6 * Bugfix: Instrument transpose off did not prevent global transpose when playing from phrases. Thx Claire Abougelis. * Bugfix: Instrument transpose off did not work on delayed notes. Thx Claire Abougelis. * Effects are no longer reset when playing a note with I--. Thx Pain Perdu. * Moved around some data in RAM to make player slightly faster. 2017-01-28: v4.9.5 * Added TRANSP. setting to wave and pulse instrument screens. When OFF, it prevents the instrument from being affected by chain and master transpose. 2017-01-09: v4.9.4 * Bugfix: Moving a wave selection up/down did not work if the selection was made backwards. Thx William Mon! 2017-01-09: v4.9.3 * Tapping A, A on synth in wave instrument now selects the first free synth. Thx Luke Ess! 2016-12-15: v4.9.2 * Bugfix: Looping H in phrases sometimes did not work as expected. Thx Noah Deck! * Further reduced risk of phasing when a sample is playing on both kit channels. Thx kabcorp! 2016-12-06: v4.9.1 * H command in phrases: The first digit now allows setting a loop count. When looping, H will keep playing the current phrase instead of skipping to the next. H00-H0F and HFF still work like they used to. Thanks Armohnie Campbell! Examples: H14 - hop back to step 4 once. H30 - hop back to step 0 three times. 2016-12-05: v4.9.0 * Improved copy/paste in wave screen. Thx JGD! 2016-11-07: v4.8.9 * Bugfix: K command did not reset left kit channel. Thx Aaron U. * Bugfix: S command could move playback of second kit channel out of bounds. 2016-07-17: v4.8.8 * Changed "power save" functionality to reduce hum at the cost of increased battery consumption. 2016-07-08: v4.8.7 * On failed song load, show error message instead of "DON'T PANIC" screen. * On successful song load, go straight to song screen without first showing "OK". 2016-06-04: v4.8.6 * Reduced stack overflow risk when changing wave synth parameters. Thx Miranda Kastemaa. * Added experimental analog out mode that allows syncing LSDj to Korg Volca and Monotribe sequencers, running LSDj as master. The cable is different than the one for analog in mode; check build instructions in v4.8.6 manual --> http://github.com/jkotlinski/lsdj-doc/releases This mode is experimental, preliminary testing shows that it does not seem work with all devices. (For example it did not work 100% when I connected my backlight modified DMG to a Volca Sample.) Feedback is appreciated. 2016-05-06: v4.8.5 * Fixed analog sync, LSDj lagged one tick behind. Thanks to Liam D Nicoll for reporting. 2016-04-09: v4.8.4 * Further improved timing. The lag between pulse and kit channels has been reduced from about 2-4 ms to 1-2 ms. 2016-04-06: v4.8.3 * Fixed live mode that was accidentally broken in v4.8.2. 2016-04-03: v4.8.2 - timing changes * Playback has been changed so that wave channel sounds now trigger before pulse channel sounds. In my opinion, it used to feel like kit playback lagged a bit behind, and this change makes things sound more like all channels play on the same beat. Feedback welcomed (as always). * Both kit channels now trigger at the same time, to avoid phasing. Thanks to Kabcorp for complaining. 2016-03-30: v4.8.1 * Bugfix: Panning left (using B+left) could change to mute in some cases. Thanks to Ben for reporting. 2015-11-05: v4.8.0 * Added analog sync mode that allows syncing LSDj to Korg Volca and Monotribe sequencers, using a simple cable built by splicing together a Nintendo Game Link cable with a regular 3.5mm miniplug cable. Full build instructions are in the manual. Thanks to: - fReD/evadum.de, for feature request and selling Korg <-> Game Boy cables at https://goo.gl/BleF0z - Oliver Wittchow, for providing tech advise - Håkan Hellstorm, for helping out with testing 2015-11-02: v4.7.5 * Fixed the R command which was actually broken in last release :/ Thanks Arnie Holder! 2015-10-27: v4.7.4 * Changed R command. Setting second digit to 0 now gives the fastest possible retriggering. Values 1-F are unchanged. 2013-06-19: v4.7.3 * Bugfix: Make sure cursor is moved back to top after loading a song. Thx Chipocrite! 2013-02-28: v4.7.2 * Bugfixes for various sync problems, especially in live mode. * Reverted changes made in v4.7.1, as they did not seem to help. 2013-02-12: v4.7.1 * Brought back DC level fix for GBA that was experimentally removed in v4.7.0. 2013-02-10: v4.7.0 - Antispike * Added nitro2k01 "Antispike" fix for the annoying high- frequent noise in wave channel. This is a must get! 2012-10-14: v4.6.9 * Bugfix: Probably fixed issues with Game Boy sync slaves getting silent in live mode, introduced in v4.3.3. Thanks to obi_shin0bi for reporting! 2012-08-17: v4.6.8 * Fixed issue where HFF command could cause crash if it happened while screen was drawn. Thx to Andy Goth. 2012-06-11: v4.6.7 * Fixed one thread safety issue that might, if one is very unlucky, screw up timing a little. 2012-05-13: v4.6.6 * Fixed some bugs related to out of memory handling in song/chain screen. In some cases "out of memory" error was not shown when cloning, even if there were no free phrases/chains. Thanks to Chris Penner. * Experiment with A, A for lifting chains/phrases in song/chain screen. 2012-04-23: v4.6.5 * Hopefully fixed master/slave link issue that appeared in v4.6.4. Thanks to Zach Swanson! * Added some security checks to prevent invalid chains in song screen. * Prevented some error messages from happening. 2012-02-27: v4.6.4 * Fixed PC keyboard bug that appeared in v4.6.3. Thanks to Jacob Frylock. * Fixed some visual bugs. Thanks to Andy Goth. 2011-12-13: v4.6.3 * Some more work on interrupt handling - save some battery while waiting for sync signal. 2011-12-13: v4.6.2 * Possibly fixed occasional freezes during playback. Thx to various people for reporting. * Fix rare error message that could only happen in case of memory corruption. 2011-10-22: v4.6.1 * Fix crash that occured when pressing a+down on empty command step while showing command help text. 2011-10-16: v4.6.0 * Bring back the classic wave mixing table instead of the experimental one introduced in v4.5.5. 2011-10-16: v4.5.9 * Fixed very bad wave mixing bug that was introduced in v2.6.2 :( 2011-10-09: v4.5.8 * Some tweaks for a+up/down in chain and phrase screens, as suggested by nitro2k01. 2011-10-08: v4.5.7 * Fixed an error message/crash that could happen when trying to start playing, in case there were bogus chain values in song. Reported by Harrison Galloway. 2011-09-12: v4.5.6 * Fixed assembly optimization bug that caused speech instrument screen to be drawn incorrectly. Thanks to nitro2k01 for reporting! 2011-08-29: v4.5.5 * Experimentally replaced default wave mixing table with one that adds a little compression. * Changed b+left/right in phrase screen, so that it's not possible to go left/right if there is no phrase in neighboring channel. * Cutting a chain in song screen will make it default chain when pressing A. 2011-08-24: v4.5.4 - small tweaks * Update scrolling help text for L command. * Remember last used instrument over powerdown. * Don't show (EMPTY) in filename save dialog. 2011-08-20: v4.5.3 * Small, paranoid tweak to an odd thing in song screen drawing. 2011-08-17: v4.5.2 * Bugfix: Tempo tapping was broken since 4.3.2 (I think). Thanks to Valentin Yoshimoto for reporting. 2011-08-10: v4.5.1 * Bugfix: Compiler error could cause crashes (since 4.4.4), thanks to Joonas Karjalainen for reporting. 2011-08-03: v4.5.0 * Bugfix: Solo function broken because of compiler bug. Thanks to Stevie Bruce for reporting! 2011-07-23: v4.4.9 * Repair wave synth, some waveforms were broken by v4.4.4. (Thx Hannibal!) 2011-07-23: v4.4.8 * New songs were not correctly initialized since v4.4.4, leading to various problems. 2011-07-23: v4.4.7 * Repaired L command, broken since v4.4.4. Thx to Hannibal. 2011-07-22: v4.4.6 * Repair copy/paste in phrase screen, broken since v4.4.4. Thanks to Clay Morrow for reporting. 2011-07-17: v4.4.5 * Fixed some bugs caused by clever optimizations in v4.4.4. Thanks to Eric for reporting. 2011-07-16: v4.4.4 * Various clever optimizations that frees up a good amount of ROM space and makes the code run slightly faster. 2011-07-09: v4.4.3 * Improve L command in tables so that it never tries to slide below C-3 or above B-B. * Fix bad optimization that may have caused issues with C command in tables. 2011-07-08: v4.4.2 * Some bugfixes for L command in tables. (Thx to nitro2k01) * When pressing select+right in instrument screen, always show the instrument table, if there is one. 2011-07-08: v4.4.1 * L command now also works in leftmost table command column. Use a table like this to get a slide that goes two octaves down: 0 00 E8L10 -00 1 00 00-00 -00 2 00 00H01 -00 ... 2011-06-26: v4.4.0 * bugfix: one tick was lost on every table envelope step. 2011-06-26: v4.3.9 * bugfix: PC keyboard sync mode didn't work correctly when starting up in that mode. Since v4.3.4. 2011-06-24: v4.3.8 * made prelisten setting show "n/a" when other sync modes than "off" or "keybd" are selected. some background: prelisten only works for "off" and "keybd" sync modes. this is as intended, and is a known limitation, not a bug. 2011-06-18: v4.3.7 * bugfix: sample playback has been unnecessarily noisy probably since v3.8.3 :/ fixed. 2011-06-17: v4.3.6 * bugfix: sync master/slave was behaving weird in last versions. thanks to Hannibal for reporting. * bugfix: make sure play time does not advance while slave is waiting for sync. 2011-06-09: v4.3.5 * Changed strategy of what happens when starting from e.g. chain position 5, and chain is length 3. It used to be that the fallback is to start from beginning of chain - now, instead, it starts from position 5 modulo 3 = 2. 2011-06-09: v4.3.4 * Disable timer interrupt while not playing. Reduces noise a lot :) * Removed an error message that appeared if synth data was trashed. 2011-06-07: v4.3.3 * Disable LCD interrupt (driver of sample playback and vibrato/pitch bend) while not playing. This saves some battery and reduces noise. * Deep sleep is now possible even while buttons are held, if the buttons don't do anything particular. * Disable sound while waiting for sync signal. Saves some battery. * Fix visual bug where played notes would not disappear. * While playing in "midi" sync mode, add or steal ticks by pressing A+left/right on tempo in project screen. 2011-06-06: v4.3.2 - energy save improvements * Removed "energy save" setting, instead always use these settings: - While playing, use 100% CPU for best sound. - While holding button, use ~20% CPU. - Big improvement: While waiting for button press or sync signal, use ~0% CPU. (Used to be ~20% when waiting for button press, 100% when waiting for sync signal...) On Game Boy Classic, my measurements give: - While playing: ~60 mA. - While holding button: ~37 mA. - While doing nothing: ~33 mA. 2011-06-05: v4.3.1 * Add some safety checks and better handling of invalid commands (in case of messed up RAM). 2011-05-30: v4.3.0 * Fix rare PC keyboard crash (thx Robert Vonzimmerman). * Make Game Boy ROM header prettier. 2011-05-28: v4.2.9 * Show version number in help screen. * Add version number to Game Boy ROM header. * Add some safety checks. * Remove error on PC keyboard buffer overflow. drop key press silently. 2011-05-21: v4.2.8 * Slightly changed behavior of b+up in chain screen. * Add some more security checks. * Remove some legacy MBC1 code. 4mbit cartridge support was dropped long time ago anyway. 2011-05-20: v4.2.7 * Fix crash when playing synced to other Game Boy and having empty row in song screen. Thx Sam Wray. 2011-05-16: v4.2.6 * Disable prelistening while tweaking several notes at once. * Enable PC keyboard enter, page up/down and cursor in song mode again. On request from Maru. * Make PC keyboard handling just a little bit more solid. * Bugfix: L command killed pulse finetune. * Bugfix: Chain play position sometimes wasn't drawn. 2011-05-14: v4.2.5 * Correctly show wav instrument notes as starting from C-2. Yes, wav instrument goes one octave deeper. * Disable wraparound when tweaking notes in phrase screen, if not changing several notes at once. * Added some more security checks. * Bugfix: Note B-B (highest possible note) never showed in song screen while playing. 2011-05-14: v4.2.4 * Bugfix: Repaired note input - was broken in 4.2.2 and 4.2.3 - sorry for the lameness. * PC keyboard keyjazz in phrase screen now works really well :) 2011-05-12: v4.2.3 * Bugfix: It was possible to select bogus chain FF from phrase screen by pressing b+left/right, leading to crash. Thanks to Sharkofsnark! * Added some more security checks. 2011-05-11: v4.2.2 * Bugfixed phrase PC keyjazz function so that it is possible to play notes for longer than one tick... * Safe up "clean song" function, it could overwrite wave synthesizer stuff in case there were bogus chains in song screen. ($80-$FF) * Print "??" for bogus chains in song screen. * Select+start from current chain row is now only possible if sync is set to off or keybd, otherwise it starts from chain row 0 like before. 2011-05-08: v4.2.1 * Bugfix: When playing in song mode from song screen, sometimes all channels weren't playing from start of chain. Was introduced in v4.1.8. Thanks to sharkofsnark for reporting. 2011-05-07: v4.2.0 * Fix serial communication, has been broken since v4.1.1. Sorry about that. 2011-05-07: v4.1.9 * Fix assert when trying to scroll down beyond the lowermost phrase in a chain. Thanks to sharkofsnark. 2011-05-04: v4.1.8 * When pressing select+start in a phrase, start playing all channels from current chain position instead of start of chain. Somewhat tentative :) Big thanks to Hannibal for being persistent about this... * Fix crash that happened when pressing b+down on last phrase of a chain. Thanks Hannibal! * Add some more safety checks. 2011-04-30: v4.1.7 - pretty pointless update * Add some more safety checks, for the sake of it. * Replace check for valid instrument type with reset to pulse instrument. This is more useful in case of memory corruption. * Fixed some cases of wrong memory accesses when stack pointer was on page boundary. 2011-04-23: v4.1.6 * Show invalid phrase notes as "???" instead as "---". (thx Anthony Schmitt) * Fixed some situations where bogus phrase/chain FF was shown instead of "--". * Fixed a possibly nasty bug in unused phrase cleaning. Instead of zeroing out the notes, it zeroed out a more or less undefined memory address. (Since 4.1.2.) * Add a bunch of safety checks. * Removed some unused code, made some printouts faster. * Fixed a case of drawing outside screen. 2011-04-20: v4.1.5 * Bugfix: Selecting instr 40 in phrase screen crashed. 2011-04-19: v4.1.4 * Write-protect hand-drawn waves so they are not that easily overwritten from synth screen. 2011-04-17: v4.1.3 * While playing in "slave" sync mode, add or steal ticks by pressing A+left/right on tempo in project screen. 2011-04-14: v4.1.2 * support for entering notes from PC keyboard in phrases. * touching a note with A in phrase view now "picks it up" so that it will be entered when pressing A on empty step. * make font and color scheme song specific again, after complaints. * add some hopefully useful asserts here and there. * remove some old broken code from speech view. * make initial SRAM test more lightweight. * moved back some functions from ROM to RAM. * make interrupt handling slightly faster. 2011-04-07: v4.1.1 * add cartridge SRAM test on first startup. * remove RAM interrupt handler tables. this will hopefully make the program a little more robust and efficient. * keep font and color scheme when loading a new project. 2011-04-03: v4.1.0 * bugfix: repair PC keyboard sync for real. thx to Hannes Kraettli. 2011-04-03: v4.0.9 * bugfix: repaired PC keyboard sync, has been broken since v3.9.a. sorry :( big thanks to Hannes Kraettli for report & help. * bugfix: copy instrument names when cloning. thx to Didrik. 2011-03-01: v4.0.8 * fix bad assert when viewing speech instrument. thx to stevie brucie. 2011-03-01: v4.0.7 * removed a really bad optimization that has been in place since v3.6.6. essentially a lot of adds and subtracts have been broken. update probably recommended. thx to stevie brucie for a good crash report. 2011-01-28: v4.0.6 * just added some runtime checks to possibly help finding a problem with broken instruments. 2010-04-13: v4.0.5 * kiko + old fonts: make K less similar to H. regrettable, as i think they looked better before, but they were just too similar. * noise instrument: add "S CMD" setting. "FREE" keeps classic S command behavior. "STABLE" prevents the noise generator from switching between 7-bit and 15-bit LFSR, as it occasionally mutes the sound. adjust the setting to suit your personality. * rewrite possibly buggy groove manipulation code. * remove valid data assert when drawing groove screen. 2010-03-06: v4.0.4 * bugfix: prelisten setting wasn't saved over powerdowns. thx arnie holder! * fix problem with rushing cursor after long operations (clean data, load/save file). thx hannibal, rabato! 2010-01-24: v4.0.3 * make it possible to invert colors on DMG. press a+l/r on project screen "look". thx to ilija melentijevic! 2010-01-06: v4.0.2 * bugfix: live mode quickstart (tap start twice to start a chain after next phrase end) was broken. quickstarting a chain when the current chain was about to end anyway would make the quickstarted chain only play for one phrase. (this bug was six years old - thx trashcanman!) * bugfix: copying in song screen could write outside clipboard in rare cases. 2010-01-03: v4.0.1 * fixed live queuing problem caused by compiler bug. (thx rey garza) 2010-01-02: v4.0.0 - service pack 4 * program now takes a billion random keypresses in no$gmb without crashes or exceptions * bugfix: fix song copy/paste bug introduced in 3.9.k. (thx trashcanman) * improved emergency stop, stop playback nicely when program is too busy. * when changing instrument type to KIT, make sure resulting kit is valid. * groove cursor could get drawn outside screen bounds. * lot of different minor copy/paste fixes. 2009-12-06: v3.9.k * "emergency stop." if lsdj was pushed too hard (e.g. 255 BPM, sample playback and lots of commands), it could get unresponsive and eventually crash. now, it will detect these situations and stop playback before a crash. * disable copy/paste of speech instrument. copying speech and pasting to a normal instrument would result in invalid data. * fix more issues where song cursor could get drawn outside screen. * optimization: inline interrupt enable/disable calls. * project screen: fixed visual bug with play time. 2009-11-30: v3.9.j * bugfix: fixed seemingly random crash bug related to bank switching. * fixed, or at least safed up, some dangerous/broken code. * bugfix: copy/paste problem in synth screen. copying from one row and pasting on another could result in invalid data. * added more useful info to crash screen. * cleaned up interrupt handling. 2009-11-18: v3.9.i * make sure work/play time in project screen is displayed accordingly when starting/stopping song (thx Robot2037) * fixed some visual bugs when changing sync in project screen (thx Robot2037) * make project settings for key delay/repeat and energy save survive file loading (thx Robot2037) 2009-11-01: v3.9.h * bugfix phrase merging on "clean song data". sometimes phrases were merged even if they shouldn't. GBDK sucks. thx hannibal * rename "power save" to "energy save" 2009-11-01: v3.9.g * revert some changes in 3.9.f: - no default kit and noise instruments - default wave instrument type is wave, not kit * clean song data now merges equal phrases (thx to hannibal for suggestion) * bugfix: visual problems in speech instr screen (thx didrik) 2009-10-07: v3.9.f * bugfix: copy/paste errors in word screen. (thx valentin yoshimoto) * bugfix: HF pitch bends didn't quit at new note without instr number. * bugfix: in wav channel, pitch wasn't updated properly for new notes without instrument number. (thx ddp) * disable key repeat for instr type selection. * default wav channel instr type now is kit. * when starting up a new song, instrument 1 will be a default kit instrument, instrument 2 will be a default noise instrument, both instantly usable without having to go to instrument screen. 2009-07-26: v3.9.e * make noise table transposes relative to the instrument shape, instead of relative to the current shape (as is with S command). (thx nitro2k01) note: this change breaks backwards compability! to convert your old noise table to a new version, do like this... old table (v3.9.d or earlier): 00 A1 --- --- 01 84 --- --- 02 74 --- --- 03 00 --- --- change to (v3.9.e and up): 00 00 SA1 --- 01 00 S84 --- 02 00 S74 --- 03 00 --- --- * fix tempo and pitch for super gameboy 2. (thx michael dufault) * split up "free unused data" to "clean song data" + "clean instr data" on popular demand. 2009-07-25: v3.9.d * tempo calculation was rewritten to get more precise. new error margin should be about 0.005%. * correct tempo for super gameboy. (thx michael dufault) * a+up/down for noise table transpose now changes by $10 instead of $c. * a+up/down for noise chain transpose now changes by $c instead of $10. 2009-07-16: v3.9.c * enable copy/paste commands between phrases and tables. * bugfix: when pressing b+up in phrase screen, to an empty chain slot, out of bounds phrase FF would be reached. (thx chris riley) * bugfix: was possible to place out of bounds chains in song screen (thx chris riley) * tweak: pasting in phrase screen with select+a, and releasing select before a, now won't insert a new note (thx nitro2k01) * bugfix: sometimes entering a note in phrase screen would not enter an instrument number. (thx chris riley) * bugfix: fonts sometimes got garbled when switching fonts on classic Game Boy. (thx chris riley) * bugfix: prelistening sometimes wouldn't work when entering notes on an empty slot. (thx chris riley) 2009-07-16: v3.9.b * bugfix: weirdness when going between song/phrase/chain screen while a block is marked. thx rabato * bugfix: was possible to get pointers to out of bounds words, chains and phrases. thx chris riley * bugfix: renamed chain screen column title "PAT" => "PHR" 2009-07-14: v3.9.a * bugfix: instr copy/paste works again (broke in 3.9.3) * make it possible to change pitch of pu1/2 sounds without retrigging, by omitting instrument number. e.g. C-3 I03 G-3 I-- 2009-02-03: v3.9.9 * possible rare crash fixes. * add more info to crash screen. 2009-02-01: v3.9.8 * revert prelistening behavior to v3.9.6. * make prelisten a project screen option. (default = on for n00bs) 2009-01-31: v3.9.7 * bugfix: if loading a new song while playing in live mode, you would be temporarily blocked from playing in live mode afterwards. thx mr e * change prelistening. start prelisten at releasing keys after entering a note, stop prelisten at any key press. * add wave screen info to help screen. 2009-01-09: v3.9.6 * make KiGB emulator work with load/save file screen. * default power save option changed from "off" to "auto". 2009-01-08: v3.9.5 * phrase screen: prelisten notes and instruments while entering them. thanks to various people who suggested this! * make Z command work in tables. had ambitious plans for this, but now it just works like in the phrase screen... 2009-01-03: v3.9.4 * add help screen, reachable from project screen. contains quick reference for button presses + command list. 2008-12-31: v3.9.3 * table cloning now works in instr + phrase screens. press SELECT+(B,A) on table number. * instrument cloning now works in phrase screen. SELECT+(B,A) * add some safety check for invalid table pointers in phrase screen. it was possible to set e.g. command F80, change to A80, and do SELECT+RIGHT to edit out-of-bounds table $80. potentially dangerous. * remove feature "press select four times to randomize phrase screen selection." was introduced in v3.4.4, hopefully will be missed by no one. 2008-12-26: v3.9.2 * replace project screen "purge sequencer/instruments" with "free unused data," which also frees unused tables, synths and waves. 2008-11-28: v3.9.1 * master transpose now doesn't have effect on noise channel. (thx nullsleep) * bugfix: hopefully fixed poltergeist button keypresses introduced in 3.9.0. (thx USK) * bugfix: delay command broken for instrument number $21. (thx USK) 2008-11-19: v3.9.0 * remove small lag when pressing START to start song. the lag was accidentally introduced in 3.8.2. (thx USK!) * reformatted crash screen to make it easier to write down. * fix minor visual bug when marking in song screen. 2008-06-02: v3.8.9 * live mode: START and SELECT + START will now take effect on all marked chains. * live mode: SELECT + START shortcut for starting all channels was removed. * SELECT + (B, B) now expands horizontally in song screen. 2008-04-16: v3.8.8 * improved crash screen. 2008-04-10: v3.8.7 * fixed broken crash dump feature. hasn't been working since 3.8.3 - whoops. * remove key repeat from b + cursor in chain and phrase screens. 2008-03-09: v3.8.6 * disable special GBA "anti-noise" algorithm for Goomba builds. runs pretty OK now, if one sets VSync to "off" in Goomba. * optimized sample mixing further. saves 672 machine cycles/frame = 4% of CPU time. 2008-03-08: v3.8.5 * fixed out-of-bounds memory overwrite that has caused distorted sample mixing since 3.4.0 - whoops. big thanks to thompson tran! * fix exit of "purge complete" screens... button presses were handled weirdly before. thanks rabato! 2008-02-02: v3.8.4 * make sure E command doesn't reset sweep in noise channel. thx markus schrodt * fix bug on drawing command values in phrase screen. * add HFF info to H command help scroll text. 2008-01-15: v3.8.3 * make screen updates a lot faster really :) draw to a temporary buffer and blit it all to the screen in vertical blank. * read joypad input in 60 Hz instead of 360 Hz. 2008-01-13: v3.8.2 * rewrite of joypad input handling. button presses are now queued until the editor has time to handle them. makes it easier to navigate between screens during heavy load. * make screen updates slightly faster. 2008-01-12: v3.8.1 * make clipboard survive file loads. * bugfix: delay command could sometimes get messed up by other commands. (thx to trashcanman) * bugfix: in gbc instrument screen, pasting could mess up background colors. * bugfix: visual error when marking blocks in song screen (introduced in v3.7.9) * bugfix: the first select+b done to start marking a block would always fail. 2008-01-12: v3.8.0 * bugfix: kill on noise channel was resetting automate on channel 0. (thx to gijs gieskes) 208-01-12: v3.7.9 * bugfix: view file screen was noisy in 3.7.8 thanks to compiler bug. (thanks to david dineen-porter) * bugfix: jump between word and table screens fixed. * bugfix: command values in tables weren't displayed properly when doing A+cursor on commands. * more small speed optimizations. 2008-01-07: v3.7.8 * some more small speed optimizations. 2008-01-04: v3.7.7 * various speed optimizations. 2008-01-03: v3.7.6 * added "power save" setting to project menu. power save will prolong battery life at the expense of adding some noise to the sound. off: no power save. (default) auto: power save activated when music is not playing. full: power save always activated. thanks to ove ridé for the suggestion. save the planet! 2007-06-11: v3.7.5 * optimized program further (removed OAM refresh + unnecessary 16-bit multiplies) 2007-03-25: v3.7.4 * now possible to stop playing by issuing command HFF in phrases. in live mode, it stops the channel; in song mode, the entire song. (thx to various people who suggested this) 2007-02-17: v3.7.3 * song playpos is now instantly redrawn when scrolling (thx rabato) 2007-01-15: v3.7.2 * fixed bug related to on-the-fly panning and soloing... (thx USK) * random things are now a little bit more random (thx to brady leo) 2007-01-08: v3.7.1 * bugfixed high-frequency pitch down (thx USK) 2007-01-08: v3.7.0 * the update rate of text scrolling, play positions and played notes is now turned down in case the system is overloaded. this makes it easier to edit music while playing very CPU intensive tracks * some small assembler optimizations 2007-01-07: v3.6.9 * optimized vibrato CPU usage to support Japanese 190 BPM happy hardcore scene (thx USK) 2006-12-25: v3.6.8 - stable * added nice animated transition when switching between screens * bugfix: screen map is now updated when switching between live/song view. (thx simon mattisson) 2006-12-12: v3.6.7 * live mode: SELECT+START in song screen now starts playing all channels, when pressed while not playing. * bugfix: instrument names were occasionally displayed in file screen save dialog. * chain transposes work on noise channel again * finetune affects PU1 channel now. (finetunes downwards) (thx trashcanman) 2006-12-09: v3.6.6 * bugfix: song screen: play/queue position indicators were not reset when switching between live/song mode. * project screen: small bugfix in play time clock. changed the name of the clock that shows how long one has been working on a song, from "TIME USED" to "WORK TIME". also renamed "PLAYTIME" to "PLAY TIME". all work and no play makes jack a dull boy. (reported by simon mattisson) * optimized away some cycles. 2006-11-18: v3.6.5 * bugfix: slide (L) command works again (thx to roboctopoid for reporting) 2006-11-18: v3.6.4 * fixed serious wave synth bug: only 16 out of 32 wave steps were synthesized. (thanks Gijs) * bugfix: playing kits with GB cart on GBA always crashed * bugfix: fixed assorted kit/instrument bugs 2006-06-26: v3.6.3 * vibrato rewritten from scratch. same options in instrument screen, but behaves approximately ten times better. key features: - centered around note pitch (sounds more musical) - depth setting now sounds the same over all octaves - depth and speed parameters are now independent from each other thanks to everyone who complained over the old sucky vibrato * changed wav instrument: "play" option changed name from "off" to "manual" (thx USK) * small bugfix for slide (L) command. sometimes wouldn't work in both directions * (tech note) added a custom-made optimizer between compiler and assembler in the linker chain. was able to remove 600+ instructions from the project. 2006-06-17: v3.6.2 * bugfixed & improved hard-panning (thx to trashcanman) 2006-06-16: v3.6.1 * now switch between live/song mode by pressing SELECT+LEFT in song screen instead of B+LEFT/RIGHT * B+LEFT/RIGHT in song screen now hard-pans left/right (similar to muting/soloing) * bugfixed kit handling 2006-07-09: v3.6.0 (= v2.pi rad) * added bud melvins "ANIMLZ" kit from the animal kit compo in 2004! thank you, bud, for an amazing contribution to the community! * increased number of maximal kits on a cart to 51. NOTE: the way instruments are stored (internally) was changed from 3.5.1. this affects selected kit banks + loop (on/off). the data format will be upgraded automatically when starting to use the new version. this however breaks backwards compability, i.e. when making a song with 3.6.0 or up, it may not sound the same when playing it on earlier versions. 2006-04-25: v3.5.1 - stable * improved support for white Japanese Nintendo Power cartridges with 64 kbyte SRAM. the file menu will be limited to 3F available blocks to prevent data loss. (thanks to USK, Aonami, Takuya Hirooka) 2006-03-22: v3.5.0 * new screen layout. _______________________________________ | | | | | | PROJECT | WAVE | SYNTH | | |_______________|_______|_______| | | | | | | | | SONG | CHAIN | PHRASE| INSTR | TABLE | <-- main row |_______|_______|_______|_______|_______| | | | G R O O V E | |_______________________________________| 2006-03-22: v3.4.5 * active groove is now reset when loading a new song. (thx nitro2k01) * channel soloing/muting is now reset when loading a new song. (thx nitro2k01) 2005-12-06: v3.4.4 (stable) * going to phrase screen and tapping SELECT four times now randomizes the selected block. * improved Z command randomization. (never got 0 random value before) * changed synth screen. instead of displaying synth id:s as 0, 1, 2, 3, ... it now displays them as 00-0F, 10-1F, 20-2F, ... * quick-help added for Z command. (thx to starpaws) 2005-12-01: v3.4.3 * implemented Z (randomiZe) command for phrase screen. it repeats the last non-Z command issued in a phrase in the current channel, using the then used command value added with a random number between 0 and the given Z command value. NOTE: this is not working with delay, hop and groove commands at the moment. * bugfix: phrase screen E command wasn't working for kit instruments. (thx to various people for reporting) * project screen: LOAD/SAVE FILE button renamed to LOAD/SAVE SONG 2005-11-17: v3.4.2 * changed toggle bookmark key sequence in song screen. now use B,B,B instead of B,B to prevent toggling by accident (starpaws) * changed crash data collection method. if you suffer from occasional crashes, please upgrade to this version and send reports to me. 2005-10-20: v3.4.1 * tempo BPM setting should be much more precise now (typically about 0.1% deviation) * bugfix: after starting solo (B+START), tapping B would make all channels fall out. now fixed (thx to starpaws) * changed the way pressing A+UP/DOWN on phrase instrument column works. 2005-10-11: v3.4.0 * note range extended. new max note is B-B (means: B-11...) == inaudible at ~30 kHz!! (thx to h. weixelbaum) * bugfix: speech instrument names were initialized with some garbage characters 2005-07-24: v3.3.9 * bugfix: was hard to move between SONG and LIVE mode with (B+L,R), from v3.3.6 and on (thankx to chesterfield & herbert weixelbaum) 2005-06-13: v3.3.8 * bugfix: file screen broken in 3.3.7 (thankx to Postal_market) * keyboard support: re-enabled enter, cursor and page up/down keys, only if live mode is activated. (thankx to chesterfield) 2005-06-08: v3.3.7 * B+A in song screen (cut chain) doesn't pull up down-below chains anymore, except for when cutting empty steps. (thx to M-.-n) * pressing A,A for allocating new chains/phrases now only works on empty steps (thx to jeremy ksine) * made scrolling in song view faster, for the case when bookmarks aren't used 2005-06-05: v3.3.6 (anti-swedish national day & misguided piracy regulations release) * re-implemented bookmarks. tap B,B in song screen to create or remove a bookmark. the new implementation has an upper limit of 16 bookmarks/column. 2005-04-25: v3.3.5 * removed garbled screen while playing samples on GBA (thankx herr prof. peter lewis swimm) * select+start in song mode+song screen now key repeats. (thx to prof. swimm) 2005-04-25: v3.3.4 * bugfixed error with save dialog that occured when starting off from an empty .sav (thx gijs gieskes) * behavior for channel jump in phrase and chain screens is changed. while playing in live mode, press B+LEFT/RIGHT to jump directly to the phrase or chain being played in the neighbor channel. (thx starpaws) 2005-04-18: v3.3.3 * switching between live/song mode is now always possible by pressing B+(RIGHT/LEFT) in song screen - no double keypresses needed * switching between live/song mode doesn't stop playing anymore * press SELECT+START in song mode for jump-starting song playing. this works even when pressed while playing (thx to matthieu) * L (slide) command is now backwards compatible (thx to m-.-n) 2005-04-17: v3.3.2 * L (slide) command now autodetects direction. (thx to starpaws for suggesting) example: C-4 -00 --- -00 C-5 L03 <-- slide to note C-5 with speed 3 --- -00 C-4 L03 <-- slide back to C-4 with speed 3 2005-04-16: v3.3.1 * now impossible to accidentally overwrite a song other than the one you are working on (thankx to postal_market) 2005-03-21: v3.3.0 * improved gameboy advance sample playback. now sounds quite good! note: this requires that LSDJ is able to detect that it's running on a GBA. currently I know no way to detect that from within GOOMBA. 2005-02-27: v3.2.3 * optimized screen drawing further 2005-02-24: v3.2.2 * optimized screen drawing further * bugfix: the fonts besides Y2K were all bugged out. 2005-02-19: v3.2.1 * improved speed of screen drawing routines. should hopefully make a small difference on classic gameboys. 2005-02-19: v3.2.0 * made file load/saving a little more robust. now handles/avoids unexpected FAT corruption better. (thx to crazy-q for reporting the problem) 2004-07-25: v3.1.9 * fixed bug that didn't make song position rewind upwards properly when starting song play on an empty song sequencer step. this bug (or should we say lost feature) somehow seemed to sneak in with v2.4.3. 2004-06-29: v3.1.8 * "frame" screen renamed to "wave" screen * clipboard won't be emptied on song load anymore (thx to devon beckett) 2004-06-27: v3.1.7 * removed cursor movement + start/stop from keyboard support to protect from unintentional presses * bugfixed copy/paste in synth screen * added "discard changes?" requester when trying to load a file, if there are unsaved changes 2004-06-06: v3.1.6 (special swedish national day sucks-release) * adjusted pitch table for use with super game boy (no longer detuned) * bugfix: visual problems with file load/save progress indicators (thx to dave steinberg) * bugfix: key delay settings not working on B+DOWN / B+UP in song screen (thx to starpaws) * bugfix: visual bug when going from instr $40 to $3F in instr screen (thx to djntd) * renamed "patterns" back to "phrases" again because i never got used to calling it pattern 2004-03-05: v3.1.5 * removed bookmarking feature (might be reimplemented in a better way in the future) 2004-02-23: v3.1.4 * added triangle wave to softsynth * bugfix: cloning bookmarked chains wasn't ok (reported by starpaws) 2004-02-21: v3.1.3 (TECHNO CITY VERSION!) * fixed bug that might cause problems with pc-linker when using "out of bounds" sample mix distortion * changed live/song switch. now use B+LEFT/RIGHT while not playing, B+(LEFT,LEFT) / B+(RIGHT,RIGHT) while playing * fixed visual bugs in chain screen when playing bookmarked chains * added simple (non-100%) file verify at save 2004-02-12: v3.1.2 (bugfixes) * now possible to reset ALL memory by pressing SELECT+A on "LOAD/SAVE FILE" button in project screen * bugfix: total time wasn't reset ok on first startup * bugfix: reset memory bug * bugfix: some strange problems with M command etc 2004-02-11: v3.1.1 * misc screen+mbc5: replaced "reset memory" button with a new "load/save file" button that takes you to the file screen. removed the old top row button at "project" * live/song mode switch changed. now press B+(LEFT,LEFT) or B+(RIGHT,RIGHT) in song screen to alternate between modes. * bugfix: select+right on bookmarked chains in song screen was buggy and dangerous 2004-02-09: v3.1.0 * bugfix: using b+left/right to switch between live/song mode in song screen didn't work in v3.0.9 2004-02-08: v3.0.9 * removed subsong feature * now possible to load "empty" files to start a clean project * might have fixed a bug that caused problems with PC-Linker at startup (thanks to Neil Larion for reporting) 2004-02-07: v3.0.8 * added bookmarking in song screen: press (B,B) to shade/unshade a song position (suggested by starpaws) 2004-01-29: v3.0.7 * bugfix: all memory wasn't reinitialized ok after file load/memory reset. now (for example) cursor positions and channel grooves are reset ok. 2004-01-29: v3.0.6 * bugfix: help scroll was showed already when single-tapping A on commands (as opposed to double-tapping) * bugfix: save dialog buffer overflow when saving filenames with length of 8 chars * removed shading of wave column in song screen (now unneeded because of explanatory column headers?) 2004-01-28: v3.0.5 * fixed visual bug with screenmap when using select+right shortcut from pattern to table screen (reported by simon h) * now possible to start non-automated tables from within automated tables using the A command (suggested by simon h) 2004-01-24: v3.0.4 * now possible to do nested loops with table hopbacks (on request from overthruster) 2004-01-23: v3.0.3 (ACID VERSION!) * renamed "phrases" to "patterns" * fixed more stuff for firestarters upcoming MIDI device 2004-01-23: v3.0.2 * bugfix: table numbers weren't displayed in table screen * implemented some stuff for firestarters upcoming MIDI device 2004-01-22: v3.0.1 * bugfix: file versions weren't always reset ok (in case file 31 was used) * bugfix: total file memory reset wouldn't work as supposed. in case you have used multiple LSDJ images on one cartridge before upgrading, and now can't get file management to work, please try downloading this version and do full memory reset in project screen (by pressing SELECT+A on "yes" option). 2004-01-20: v3.0.0 - file management * added file management function for cards with 128kbit RAM (MBC5 controller). there is now a new "FILE" screen accessible from the project screen, that allows you to store up to 32 projects on one cartridge. Available file screen operations are: LOAD - load project SAVE - save project DEL - delete project BACK/(B) button - go back to project screen Filelist looks like this: SLOT NAME.VERSION SIZE SLOT NAME.VERSION SIZE ... The active slot is marked with a right arrow at the name. If the project you are working has been changed, the name will be marked with an exclamation mark on the top row. IMPORTANT NOTE: if having worked with several LSDJ images on one cart before, it might be necessary to reset all SRAM memory to get file management to work. this is done by selecting "reset memory" in project screen and pressing SELECT+A on the "yes" alternative. * dropped support for 4 Mbit cartridges, now 8 Mbit is minimum * fixed visual bug with clock * fixed visual bug with live play markers * fixed visual bug in phrase screen 2004-01-17: v2.6.3 * permanently fixed bug with 0039 RAM fills at crashes * sound is now a bit more predictable when using hifreq vibrato together with pitch bend/slide * bugfix: select+right in instr screen to tables (through table param) was broken 2004-01-16: v2.6.2 (bugfix) * is now no longer possible to select L command in tables * bugfix: when standing on T command and pressing A+RIGHT in noise channel, program locked up (reported by david steinberg) * bugfix: visual bugs in waveframe editor * bugfix: serious table allocation bug (double-tapping A could allocate non-existing tables over 1F) 2004-01-14: v2.6.1 (bugfix) * fixed small bug that caused random pitch problems (from v2.5.7) 2004-01-13: v2.6.0 * changed screen layout to this one (wave+synth screens now have static positions, word screen was moved to table screen place): _______________________________________ | | | | | PROJECT | FRAME |PROJECT| |_______________________|_______|_______| | | | | | TABLE | | SONG | CHAIN | PHRASE| INSTR | /WORD | <-- main row |_______|_______|_______|_______|_______| | | | | | GROOVE | SYNTH |GROOVE | |_______________________|_______|_______| * SRAM handling is now lots safer. the chances to survive a crash/battery drain without data loss should now be much better. * fixed automate bug (2nd table command channel wasn't reset properly (since 2.4.4)) * pressing select+right when standing on a note in phrase screen will now to go to the instrument at that note. 2004-01-12: v2.5.7 * bugfix: delay command messed up previously played note * bugfix: vibrato didn't work in wave channel * bugfix: visual bug in clock (playtime wasn't always reset when minutes>0) * delay command now can't be selected from tables * moved around some code to make things more effective 2004-01-11: v2.5.6 * bugfixed softsynthesizer (dangerous RAM access!) 2004-01-11: v2.5.5 * A command now stops table when given a value higher than $1F. (this can be effective to save CPU power) * optimized table playback, should make quite some difference hopefully 2004-01-10: v2.5.4 * rewrote V (vibrato) command. it's now lots less CPU hungry. * changed clock in project screen. when playing, it shows for how long the track has been playing. 2004-01-09: v2.5.3 * rewrote P command in assembler. is now lots less CPU hungry than before. * bugfix: visual bug in scrolltext function 2004-01-09: v2.5.2 * screen drawing routine is now interruptable by SELECT+CURSOR. this means you don't have to wait for the entire screen to be drawn until you can navigate to another one. this is very nice if you want to go from (for example) song to table screen quickly on an old slow gameboy * sample mixing engine optimized further - now about 6% faster * optimized printout routines 2004-01-07: v2.5.1 (deep cloning) * added a new option for cloning. it alters the way cloning works when used in song screen. 1) DEEP (default) - clone chain, and all phrases inside it 2) SLIM (old way) - clone chain, but keep the old phrases. (named "slim" because it's more memory effective - there won't be any unnecessary duplicates of phrases) * added clone error message when no chains are available 2004-01-06: v2.5.0 (chords revisited) * reimplemented C (chord) command. produces chords by doing a simple arpeggiato that extends the base note with the given semitones. examples: C37 - plays 0,3,7,0,3,7,0,3,7,... C0C - plays 0,0,C,0,0,C,0,0,C,... CC0 - plays 0,C,0,C,0,C,,... CCC - plays 0,C,C,0,C,C,0,C,C,... * rewrote some of the softsynth routine in assembler * improved command help (just press A+CURSOR to browse through help for available commands) * modifying commands won't wrap anymore * improved command help texts * bugfix: fixed small visual bug in table screen 2003-12-22: v2.4.6 (update recommended) * bugfix: removed a softsynth bug that created problems on some systems (reported by daniel gloor) * K command wouldn't stop some wave instruments. (thx to joshua for reporting) * auto-select active synth bank when going from instr screen to synth screen. * added shortcut between phrase and table screen (if standing on A command and pressing select+right) (suggested by starpause) * changed B+CURSOR behavior in groove and table screens (now not wrapping) 2003-12-07: v2.4.5 * reworked wave instrument to give better support for soft synthesis. new fields are: SYNTH, PLAY, LENGTH, REPEAT, SPEED SYNTH - select the synth bank to use (0-F) PLAY - choose how to play the synth bank automatically. available modes are ONCE, LOOP, PINGPONG and OFF LENGTH - select how many frames should be played. selecting a number smaller than F will make LSDJ skip some of the wave frames in the synth bank. REPEAT - set a loop point for LOOP and PINGPONG play modes. SPEED - how many ticks to play each wave frame. * threw out preset wave frames. 2003-12-06: v2.4.4 * doubled number of instruments, from $20 to $40 * speech instrument is now at instrument number $40 * the space for player startup message in .sav file ($1E98-$1FFF) was removed. instead, the player will print the instrument names. 2003-12-01: v2.4.3 * changed back design a little. i think it looked too cluttered with both a header and footer row. now the header and footer rows are removed, and column headers are moved up to the second screen row. the scrolling help row will be displayed temporarily on the top row when needed. * AMI palette is back! * wave editor change: wave value now wraps when holding up/down cursors. 2003-11-28: v2.4.2 (BODY!) * added column mnemonics to the (footer) info row. * removed palette option for old grey gameboy. * removed AMI palette for CGB (couldn't make it look good with new design). * updated the other palettes to work better with the new design. (unfortunately, palettes aren't tested on real CGB because i don't have any) * paste in phrase screen is faster than before. 2003-11-26: v2.4.1 * holding SELECT now pauses scrolling help text (thx to nitro2k01!) * bugfix: clock time in project screen was printed on wrong place (thx to nitro2k01!) * bugfix: keyboard information was printed on wrong place (thx to nitro2k01!) 2003-11-25: v2.4.0 - major interface change. * added screen map in lower right of screen. * new screen layout, new row for scrolling help text. * changed default palette (on CGB) to "CUTE". * some small changes on the Y2K font, to increase legibility. * new screen organization: _______________________________________ | | PROJ/ | | | PROJECT | WAVE |PROJECT| |_______________________|_______|_______| | | | | | | | SONG | CHAIN | PHRASE| INSTR | TABLE | <-- main row |_______|_______|_______|_______|_______| | |GROOVE/| | | GROOVE |SYNTH/ |GROOVE | |_______________________|WORD___|_______| screens above and below instrument screen will change depending on the type of the instrument being viewed. 2003-11-21: v2.3.6 * when allocating a new instrument in phrase screen by pressing A,A in the instrument column, the instrument type will be pre-selected after which channel you are using. (PU1,PU2=>PULSE; WAV=>WAVE; NOI=>NOISE) * bugfix: problems with speech instrument (since 2.1.9) was fixed. (thanks to covox for reporting) 2003-11-21: v2.3.5 * bugfix in song screen: sometimes cursor could jump outside song screen window by switching channels in chain or phrase screens. * scrolling in songs creen made looser. now it will only scroll when the cursor is right at the screen border. 2003-11-21: v2.3.4 * reworked chain+phrase allocation routines. pressing A, A in song or chain screens will now insert the first free chain or phrase with a number higher than the one that was last inserted in the active channel. this makes it easier to use separate numbering for different channels. * phrase values in chain screen won't wrap anymore. (thanks to starpaws) 2003-11-20: v2.3.3 * implemented separate numbering for different channels. * possibly fixed a bug in phrase screen. sometimes it was impossible to insert new instruments. * fixed a bug that sometimes caused a scary "purge sequencer" report. 2003-11-18: v2.3.2 * song screen bugfixed. (reported by loïc) 2003-11-17: v2.3.1 * updated song screen. now has a scrolling window so you can always see the chains around the cursor. (original idea by starpaws for 1.000.000 years ago (i think)) * changed back behavior in SONG and CHAIN screen. won't wrap from FE->00 when pressing A+UP. and now i'll leave it like this for a while... 2003-11-15: v2.3.0 * soft synthesizer is now faux real time! change any value in BANK screen, and the soft synthesizer will start to generate wave frames in the background automagically. * changed back input behavior in SONG and CHAIN screen. chain and phrase values now wrap around again. 2003-09-14: v2.2.8 * rewrote soft synthesizer from scratch. it now has better sound & is lots faster! * removed notch filter type in soft synthesizer. might come again if enough people complain. * bugfix: select+start to stop live chain didn't work as supposed (reported by neil larion) 2003-09-11: v2.2.7 * changed functionality in song screen. chain values won't wrap around anymore, for example when standing on a chain value 00 and pressing A+LEFT, the value won't wrap around to FE but instead stay at value 00. * it's no longer possible to scroll to next or previous phrase in phrase screen while marking a block. * bugfix: couldn't change several phrases in chain screen when using a block that was marked from bottom and up. 2003-10-28: v2.2.6 * fixed bug that made it impossible to cut non-kit phrase notes to clipboard properly. 2003-10-26: v2.2.5 * some small fixes, + a little better support for firestarters upcoming midi device. 2003-09-11: v2.2.4 * improved support for firestarters MIDI device (latency reduced etc) 2003-08-19: v2.2.3 * bugfix: L command didn't work in 2.2.2 (reported by lo-bat) * bugfix: LENGTH setting for WAVE instrument often didn't look good. (reported by lo-bat) * bugfix: multiple up/down in CHAIN screen was broken. (reported by tobi-wan) 2003-06-21: v2.2.2 * the chord (C) command was removed since it caused bugs in other parts of the program (related to tables). hopefully this command will be re-implemented later in some cleaner way. 2003-05-25: v2.2.1 * bugfix: urgent live queueing now works with all channels (thanks to simon h) 2003-05-21: v2.2.0 * bugfix: the noise channel is less likely to start playing when being muted 2003-05-20: v2.1.9 - bugfix version * fixed some bugs related to live muting/soloing channels and panning (reported by starpaws) * bugfix: fixed problem with tables introduced in 2.1.7 2003-05-18: v2.1.8 - urgent live queueing * tap START twice in live mode, to start playing the selected chain after the end of the currently played phrase. (as opposed to queueing a chain for being played after end of chain.) * tap SELECT+START twice in live mode, to stop playing the channel after the end of the currently played phrase. thanks to simon h for the suggestion! 2003-05-16: v2.1.7 - chords * new C (chord) command. produces chords by doing a simple arpeggiato that extends the base note with the given semitones. examples: C37 - plays 0,3,7,0,3,7,0,3,7,... C0C - plays 0,0,C,0,0,C,0,0,C,... CC0 - plays 0,C,0,C,0,C,,... CCC - plays 0,C,C,0,C,C,0,C,C,... 2003-05-16: v2.1.6 * bugfix: in live mode, channels didn't remember what GROOVE they were last set to. (thanks to starpaws!) * bugfix: some untightness in "purge instruments" function * "purge instruments" and "purge sequencer" now present purge reports 2003-01-26: v2.1.5 * 65% speed increase of soft synthesizer (BANK screen). 2002-12-07: v2.1.4 * fixed small graphical bug that occured when changing many commands at the same time in the phrase screen * song playback in subsongs now works better (thx to bud melvin) * bugfix: cursor left trails when naming instruments (thx to bud melvin) 2002-12-05: v2.1.3 * F command can now also be used to modify the OFFSET for kits. when used, the effect value is first added to the original offset, then the instrument is retriggered. this sounds best when used in the phrase screen. (thankx to starpaws for the suggestion!) 2002-12-05: v2.1.2 * program should now be less prone to total data wipeouts * fixed visual bugs when marking in song screen * changed song position (SP) indicator to be a subsong (SS) indicator * implemented new SUBSONGS setting in PROJECT screen... Default value is 1 - then, it works like it did before. The playback functionality is not changed at all with this feature - it is is just a change of how the editor works when using cut/paste commands. The reason the feature was implemented, is that when using cut/paste, the program would move up/down everything below the cursor. This could lead to aligning problems, if working with many tracks on one cartridge. How it works; If setting the subsongs value to 4, LSDj will divide the song memory into 4 areas: 0-$3F, $40-$7F, $80-$BF, $C0-$FF. Deleting row 5 in the song screen, would then move up rows 6-$3F to positions 5-$3E, but positions $40-$FF would still remain intact. To make the boundaries more clear, it is not possible to scroll between different subsongs just by scrolling down in the song screen. To jump over the boundaries of different subsongs, it is necessary to explicitly press B+DOWN. 2002-12-03: v2.1.1 * fixed small graphical bug * default key delay value is now set to 7 2002-11-27: v2.1.0 * bugfix: B+A (note delete) could threaten system stability when operating in song screen on positions over 7D. * bugfix: cut&pasting in song screen sometimes didn't work correctly (reported by starpawz) * copy/cut/paste action in song screen speeded up further 2002-11-26: v2.0.9 * bugfix: now hopefully no more noise printouts in phrase screen (thx to sprak!) 2002-11-25: v2.0.8 * bugfix: copy/paste in song screen was in effect broken when operating on song positions over 29, threatening to do serious damage to the system when operating over 7D. thanks to lennart ek for reporting this. * speeded up copy/paste in song screen * player optimized further 2002-11-22: v2.0.7 * bugfix: wave instruments didn't work (introduced in 2.0.6) * bugfix: problem with kit offsets (introduced in 2.0.0) * player more optimized 2002-11-18: v2.0.6 - bugfix release The same as 2.0.5, but bugfixed... 2002-11-12: v2.0.5 * player more optimized. should be some % faster now. * changed keybd muting functionality: - pressing F9-F12 flips muting on key down - pressing CTRL+(F9-F12) flips muting on key down+up * improved keybd table playing - just hold down space and jam along to keep playing with the selected keybd table. 2002-10-30: v2.0.4 * changed input method of S/SHAPE slightly 2002-10-28: v2.0.3 * bugfix: noise channel pitch control by modifying octaves in phrase screen was not working properly. (reported by lo-bat) 2002-10-25: v2.0.2 * now possible to keybd play kit instruments. first bank is mapped to upper keyboard row, second bank to lower * keyboard system rewritten. now also detects key release. - muting by pressing F9-F12 is active only while key pressed - muting by pressing CTRL+(F9-F12) stays active after key press * mapped CTRL+ENTER to SELECT+SHIFT 2002-10-23: v2.0.1B * moved keybd instrument selection to F3/F4 keys * added keybd execution of tables by pressing SPACE. select table to run by pressing F5/F6. * quick-mute channels by pressing F9-F12. 2002-10-21: v2.0.0A * computer keyboard control possible with new KEYBD sync mode. ENTER -> START BACKSPACE -> SELECT+START PAGE UP -> B+UP PAGE DOWN -> B+DOWN ESC -> B+LEFT (for switching between LIVE/SONG mode in SONG screen) CURSOR -> CURSOR CURSOR (on num.keypad) -> SELECT+CURSOR F1/F2 - octave down/up F5/F6 - instrument down/up F8 - change pulse instr playback channels (PU1, PU2, PU1+2) see instructions on how to build keyboard<->gameboy adapter on http://wiki.littlesounddj.com * possibility to play live on keyboard. 2.5 octaves of piano keyboard are mapped out on the key rows in traditional tracker style. (not yet implemented for noise+kit instruments) * sweep/shape instrument values are now again initialized to $FF. (fixed from 1.5.8) also rewrote noise shape handling. * bugfix: paste bug in phrase screen. bug appeared when copying/pasting single non-kit notes, after copying/pasteing kit notes. 2002-10-17: v1.5.8b * sweep/shape (S) command was rewritten. in the noise channel, the the both digits are now modulated independently of each other. this means that: if the current shape value is $0F, and you add one using command S01, the new value will not be $10 but instead wrap around and become $00. (on suggestion from didrik madheden) note: pretty much code was affected by this change, so when updating to 1.5.8 it is likely that you will have to the reprogram the sweep/shape related parts of your old instruments. * bugfix: SYNC>SLAVE didn't work when activated on startup. (reported by lo-bat) 2002-10-15: v1.5.7b * improved soft synthesizer. cutoff is now much more exact * Q value range in BANK screen extended from 0-7 to 0-$F * added NOTCH filter type (suggested by jon stambaugh) * bugfix: SELECT+(B,B,B,B) didn't work sometimes (reported by lo-bat) * bugfix: cloning chains/phrases would clear the clipboard 2002-10-09: v1.5.6b * master volume ('M') command was changed. values 0-7 now set absolute volume values, and 8-$F do relative changes. 9-$B increase volume, $C-$F decrease volume. 8 means no change. (suggested by lo-bat) 2002-10-08: v1.5.5b * bugfix: using R&D commands on KIT instruments didn't work when trying to trig on the same tick as a new phrase step. * bugfix: R&D commands didn't work with SPEECH instrument. 2002-10-07: v1.5.4b2 * PURGE SEQUENCER and PURGE INSTRUMENT functions are now hopefully less buggy. 2002-08-27: v1.5.4b * SYNC setting in PROJECT screen is now stored in saveram. * added cursor-sensitive shortcut between PHRASE and TABLE screens; when standing on an A command and pressing SELECT+RIGHT, the corresponding table will be shown. it is then also possible to jump back to the phrase screen by pressing SELECT+LEFT. 2002-08-12: v1.5.3b * tempo tap function. go to project screen and tap A on the tempo value, in pace with the desired speed, to set a new tempo. the timing is not very precise, so you need to tap along for approximately 2 beats before the tempo gets somewhat stable. 2002-08-11: v1.5.2b * bank screen update: program now shows what happens while synthesizing wave frames * hop ("H") back in tables a given amount of times now works with AUTOMATE, too * master volume ("M") command is now relative. like before, the 1st digit modifies left channel, and the 2nd digit modifies right channel. values 1-7 add to the prior volume, values 8-F subtract. 2002-08-08: v1.5.1b * bugfix: wave instruments didn't work, starting from v1.4.8 2002-07-24: v1.5.0b * the functionality for B+START was replaced. it now has a soloing functionality, meaning that all channels but the selected one are muted. if releasing B first, the channels will stay muted. if releasing START first, all channels will be un-muted. so this button combination is also good for unmuting all channels quickly. 2002-07-21: v1.4.9b - bugfix release * bugfix: fixed a bug that sometimes created unwanted noise, after stopping chains by pressing SELECT+START in live mode (thanks to various people for reporting this) * bugfix: SELECT+(B,B,A) and SELECT+(B,B,B,A) wouldn't work OK in SONG and PHRASE screens! (this bug exists in versions 1.4.5 to 1.4.8) 2002-07-02: v1.4.8 * transpose column in tables now has the same effect as if it was a SHAPE (S) command, when used on noise channel instruments * bugfix: retrig (R) didn't use the right shape value for noise channel 2002-06-17: v1.4.6b * renamed STEPMODE to AUTOMATE (just because it sounds cooler) * KILL (K) command now also shuts off high frequency pitch/vibratos. (they were left running quietly in the background before) this can be useful when optimizing CPU-heavy songs to run on gameboy classic. * bugfix: some problems with CLONE function 2002-06-25: 1.4.7b * bugfix: the CLONE function could lock program when used in song screen. * bugfix: when the W (WAVE) command was used, the note was played without paying attention to the LENGTH value set in instrument screen * bugfix: STEPMODE/AUTOMATE didn't work in versions 1.4.4 - 1.4.6 * bugfix: couldn't set pan to LR by pressing A+UP in kit instrument editor 2002-06-13: v1.4.5b * added CLONE functionality (suggested by starpawz). This makes it possible to clone chains or phrases directly from the SONG or CHAIN screens, without worky copy/paste actions. - Usage from SONG screen: Move the cursor to the chain number representing the chain you wish to clone. Press SELECT+(B,A). LSDJ now replaces the previous chain number with the one of the new clone. - Usage from CHAIN screen: Move the cursor to the phrase number representing the phrase you wish to clone. Press SELECT+(B,A). LSDJ now replaces the previous phrase number with the one of the new clone. 2002-05-26: v1.4.4 * all grooves are now set to 6+6 ticks by default * tables now run with 1 step/tick by default (no more default G0A command) 2002-05-07: v1.4.3b - softsynth updates * added new "RESYN2" option to PHASE mode select. a different approach to resync. * changed range for VOLUME value from 0-1F to 0-FF because why not? * bugfix: note B-8 wouldn't display OK in phrase screen. (reported by tim lamb) 2002-05-06: v1.4.2b * added VSHIFT (vertical shift) option to soft synthesizer (BANK screen). * bugfix: fixed small bug in instrument editor for NOISE instruments 2002-05-05: v1.4.1b - a good release * added new STEPMODE for extended TABLE functionality. the stepmode is activated from the INSTRUMENT screen, and makes LSDj advance through the chosen table by one step each time the instrument is triggered. * added "SHAPE" and "SHAP2", two new DIST options for sample kits. they sound pretty similar to CLIP, but with less bass and more high frequencies. * added a voluntary bug for the DIST option. if pressing A+(CURSOR,CURSOR) while standing on the DIST option, the value will jump out of range and start playing the raw memory contents when mixing kits. (the way to TRULY incorporate LSDj into your music!) * bugfix: SPEED setting in kit instruments now works again! * bugfix: retrig didn't modify amplitude value correctly (reported by lexaculpt) * bugfix: envelope (E) command for noise channel caused shape changes when used in tables. (reported by Wauter Mannaert) 2002-04-11: v1.4.0 * the sample mixing engine is now highly optimized and about 20% faster than before. this is enough to make dual kits run well on gameboy classic! * removed MIXFREQ option in MISC screen. 2002-04-10: 1.3.5H * changed default key delay+repeat settings (to 6/2) * renamed "tune" setting in misc. screen to "transpose" * fixed shape command bug in noise channel (reported by nullsleep/8bitpeoples) 2001-12-09: 1.3.5G * groove won't be reset to 0 when starting to play * added ghettotech ("GHETTO") kit. * removed old 808 drumkits and added 808 kit with original samples 2001-08-18: 1.3.5D * bugfix: kill ('K') command didn't stop retrig ('R') command. * bugfix: copy/paste in speech instrument screen didn't work. * bugfix: some copy/paste problems in phrase screen when using kits. * bugfix: graphic bug in table screen. (reported by fredrik stolpe) * pitch bends on speech instrument are now slower. * increased the threshold time for flipping from SYNC to WAIT state when losing sync. (0.1s => 0.2s) good for unstable MIDI sync sources and really low BPM:s? 2001-08-08: 1.3.5C * table envelope handling rewritten in assembler, program should be faster. * bugfix: arpeggios with transposes 0->1->0 didn't work when used on C-3 notes * bugfix: using hop command on the first step in the phrase screen won't freeze the program * bugfix: kits didn't work well when using instrument numbers above $F 2001-08-01: v1.3.5B * tapping A twice in the instrument column of the phrase screen will auto-select an unused instrument number. * tapping A twice on the TABLE entry in the instrument screen will auto-select an unused table number. * new visuals! it's now also possible to choose different color sets. go for the LOOK setting in the MISC screen. 2001-07-24: 1.3.5A * implemented the speech instrument (locked to instrument number 20) and a new WORD sequencer (which can be viewed by pressing SELECT+RIGHT in the SPEECH instrument screen). how to use the speech instrument: 1) view instrument 20 in the INSTRUMENT screen. instrument 20 is always locked to instrument type SPEECH. 2) put the cursor above the note you wish to edit (say, "C-3"). 3) press SELECT+RIGHT to get to the WORD screen. here you can edit the word that will be played when playing note C-3 using the speech instrument. USING THE WORD SCREEN the left column is the allophone column, the right column is for duration in ticks. words are entered like this: HH1 03 AX- 07 LL- 03 OW 00 (this sequence will produce the word HELLO) * the max limit of samples per kit has been reduced to 15. these sounds were removed: - linndrum cow bell - 727 hi tamborine * moved the speech synthesis kits to the highest bank numbers. * bugfix: some visual bugs when using kit instruments in the phrase screen... * bugfix: there were problems when using hopback ('H') command in tables, and having different loops in the different table columns. * bugfix: program should handle empty chains somewhat better. * bugfix: only the 16 first instruments were usable. 2001-07-09: 1.3.4B * bugfix: live sync now works ok again! (bug reported by timlamb) * the design was cleaned up a bit, and information was moved away from the top of the screen to the right of the screen to improve legibility. (on suggestion from topy44!) * the soft-synth cutoff/q now sounds better with the square wave. phase now has 32 steps instead of 16. * built a freeware player that can be used to play a song from SRAM. at startup, the player will display the message located at hex adress 1E98-1FFF in the SRAM .SAV file. (you can edit it yourself using a hex editor) 2001-07-07: 1.3.4A * fixed several wave channel bugs from v1.3.3B. * added BANK screen in the upper right corner. it's a soft synthesizer for generating wave frames. * table transpose channel modulates pitch when used on KIT instruments. * removed bank ('B') command. 2001-07-??: 1.3.3B * fixed WAVE instrument bug from 1.3.3A (reported by thomas söderlund) 2001-07-05: v1.3.3A * KIT instruments now have dual kits! each kit has its own "note" column in the phrase screen, and also has it's own loop/offset/length settings. these kits are mixed together in real-time by LSDj. * hi-fi kit mixing takes massive amounts of processor power, and old game boys may just be too slow for using two kits simultaneously. this can be compensated for by lowering sound quality; the new MIXFREQ (mix frequency) setting in the MISC screen should be set to the lower 6kHz value if LSDj runs too slow. * added DIST parameter to the KIT instrument screen. it sets the type of distortion that should be used when mixing the two KIT channels. * added PITCH parameter to the KIT instrument screen. e the Game Boy Advance SELECT/B swapping was removed, since it created problems with some multiboot-menues. (thx to thomas söderlund for reporting this problem!) * bugfix: the speed of the table envelope column was dependant of the used table groove. WARNING! when doing this upgrade, instrument data is lost. 2001-06-25: v1.3.2b * added delay ('D') commando. this command can be used to delay the triggering of a note with a given number of ticks. funky drummer! * added slide ('L') commando. this command works like pitch bend, but stops when it reaches the given note. example: C-4 --- F-4 L04 --- --- --- --- ...will result in a pitch bend that starts with C-4 and then goes to F-4 with the speed 4. for pitching down, use negative command values (e.g., FF...) * implemented carillon-style envelope column in tables. (it's the leftmost column...) the first digit sets amplitude, the second digit sets duration. * design update: added three fab fonts by ola persson! the fonts can be selected in the MISC screen. * retrig ("R") command now reloads instrument data. WARNING! when doing this upgrade, song screen data is lost, commands are slightly wrong and the new envelope table column may be messy. 2001-06-21: v1.3.1 * the frame ('F') and sweep ('S') commands are now relative, meaning that the command value is added to the last used value instead of setting a new absolute value. this enables easy creation of very complex instruments using tables. * SELECT and B buttons have been switched on Game Boy Advance. this is because of ergonomic reasons. * bugfix: program locked up if a table transposed notes below C-3. 2001-06-17: v1.3.0B * the both table command columns now run & loop independently. example: when used in tables, the hop ("H") command will affect transpose + left command column if issued in the left command column. the command will affect the right command column if used in the right command column. both command columns still use the same groove, tho'. (thanks to daniel viksporre!) * from now on, the program will virtually never hang due to processor overload, and it's now possible to use very high BPM:s also with classic game boys. * large parts of the program were rewritten in assembler to improve performance on classic game boys further. bugfest? 2001-06-16: v1.2.7 * vibrato ("V"), pitch bend ("P") and retrig ("R") commands will now go on until a new note is played. * B+SELECT quick-mute now mutes individual channels. * if releasing B first after pressing B+SELECT for quick-muting, the channel will stay muted until B is pressed. * high speed vibrato works better in tables... * if pressing SELECT+A instead of just A when answering yes on "REALLY [RESET ALL MEMORY]?" question, total time will also be reset. 2001-06-12: v1.2.7 BETA * added high-frequency (HF) vibrato mode, which makes vibrato ("V") and pitch bend ("P") commands VERY fast. this can be used to do nanoloop- style FM. * rewrote command handling slightly -- program now runs faster. this may have introduced some bugs... * power saving mode was removed, due to public demand. 2001-05-25: v1.2.6 - minor update * when selecting instrument in the phrase screen, instrument names will be displayed in the lower right screen corner * bugfix: copy/paste multiple channels in song screen could misbehave * bugfix: purge instruments didn't reset instruments right 2001-05-15: v1.2.5 - bugfix release * vibrato now sounds more in-tune. * bugfix: envelope command didn't work very well. * bugfix: triangle vibrato wouln't really produce a triangle vibrato. * bugfix: vibrato didn't work when used in tables. * bugfix: when running a table, commands in the table would sometimes remain active even if another instrument was played. (reported by timothy lamb) 2001-05-11: v1.2.4 * envelope ("E") command does not retrig instruments anymore, it just changes the volume. * kill note ("K") command now stops the table. * bugfix: copy/paste in chain screen set transpose values wrong. * bugfix: groove screen SELECT+B,B also selected empty steps (bad). * bugfix: pitch was messed up if a WAVE instrument was used directly after a KIT instrument. * bugfix: using wave frame ("F") command in the first table command row caused commands in the second table command row to be ignored. 2001-05-08: v1.2.3 * the wave frames are now, by default, filled with filtered square and sawtooth waves. the first digit of the frame number chooses a set... 0-3: low-pass filtered sawtooths, 4 levels of resonance 4-7: low-pass filtered squares, 4 levels of resonance 8-B: high-pass filtered sawtooths, 4 levels of resonance C-F: high-pass filtered squares, 4 levels of resonance the second digit of the frame number sets cutoff. * added sequential circuits TOM kit (it's a good one, too!) * bugfix: lsdj was one tick behind when synced against midi signal. 2001-05-07: v1.2.2 * nanoloop sync support added! set lsdj to master in "NANO" sync mode, set nanoloop to slave in MIDI mode. lsdj should use grooves based on 6. * bugfix: fixed 1.2.1 problems with setting custom offset,loop&length for kit instruments. * the amount of dithering noise was reduced; sample kits now produce less high-frequent noise. * moved around tr-606 samples some. now, all drum kits first 4 samples contain sounds of kick drum, snare drum, closed hi-hat and open hi-hat (or equivalent). 2001-05-05: v1.2.1 * vertical cursor positions of table and groove screens now follow each other. * bugfix: bank selection in tables looked bad on classic GB. * bugfix: vibrato type setting in instrument screen didn't work. 2001-04-29: v1.2.0 * dropped the old speech kit and added a 59-voice SP0256-AL2 allophone speech kit. * split the dr-110 + dr-55 kit bank. * the 707 kit now contain all 15 sounds from the original machine. * bugfix: a hop followed by a groove command on next phrase would lead to that the groove command was ignored. * bugfix: "purge sequencer" would hang boy when used while playing. * bugfix: pulse 2 instr. wave change wouldn't work. 2001-04-24: v1.2B * included phonems for speech construction. (thanks to daniel viksporre for the idea!) * added BANK SELECT ('B') command, which allows for kit sample sequencing by using tables. * bugfix: when hopping directly to a row with a groove command while playing a single phrase, the groove command was ignored. (fixed) 2001-04-10: v1.1.3 * removed the "dual" modes from 1.1.2. * implemented pulse channel 2 detune options in instrument screen. this creates interesting phase effects when the instrument is used on both pulse channels. * fixed a bug from 1.1.2 that caused pulse channel 1 table commands to have effect on pulse channel 2. * memory reset code hopefully is more stable. 2001-04-05: v1.1.2 * added DUAL modes to pulse instruments. background: when playing the same phrase on both pulse channels, the pulse instrument is played back as one voice, using two oscillators. the dual modes allow you to detune one of the oscillators, in order to create interesting phase effects. dual mode 1: make table command column 1 and table transpose active on channel 1 only, make table command column 2 active on channel 2 only. dual mode 2: as dual mode 1, but table transpose is active on both channels. example: when using dual mode 1 and using a table transpose of 0C, pulse channel 1 will play back the sound one octave over pulse channel 2. 2001-04-01: v1.1.1 * retrig command improved. first parameter digit now modulates envelope; values 1-7 makes sound louder, 9-F makes sound more quiet. * sweep command now modulates kit instrument loop points. first digit modulates loop offset, second digit modulates loop length. (1-7=increase, 9-F=decrease) * added new "ATTACK" loop mode to kit instruments. it plays all samples from the beginning, but uses "offset" for loop start. * fixed bug that occured when entering chain values really fast (reported by timothy lamb). * some player code was rewritten in assembler, in order to make the player faster. 2001-03-17: v1.1 * bugfix: noise instruments muted wave instruments (!) in versions v1.06- v1.08. (fixed) * sync bugfix: a lockup occured when slave game boy muted all channels in live mode. (fixed) (reported by timothy lamb) * sync bugfix: program now works better when in songmode and starting slave before master. 2001-03-15: v1.08 * quick help implemented. simply tap A on a command to get a scrolling help text. (idea by daniel viksporre!) * A+UP/DOWN in groove screen will now adjust swing percentage, while keeping the total number of ticks - and thus, the resulting song speed - constant. (example: 7/6 58% => A+UP => 8/5 66%) * bugfix: commands won't be changed by just pressing A anymore. * bugfix: quick-jump from kit instruments to table screen should be OK. * bugfix: vibrato won't be affected by other commands anymore. * visual bug: live mode play indicator is now ok in song seq steps E and F (reported by kop) * visual bug: song seq play indicator will now disappear when stopped, also in high steps (reported by kop) * visual bug: grooves with swing<10 won't display "%%" after the value anymore (reported by kop) 2001-02-27: v1.07 (full version only) * bugfix: kits won't disturb instrument naming anymore. (reported by kop!) * project screen now shows how long you've used the cart in total. * added key-delay and key-repeat speed setting to project screen. 2001-02-23: v1.06 (full version only) * lsdj will now auto-select a free chain or phrase only when pressing A,A in song or chain sequencers. (thanks, kop!) * added the "acieed" kit. * added "tune" setting to the project screen, for transposing all channels simultaneously. * bugfix: chain transposes won't affect kit instruments anymore. * transpose improvement: transposing below c-3 won't wrap all the way up to the highest octave anymore. * bugfix: improved sample engine further; it should now be nearly click-free when switching between instruments. 2001-02-22: v1.05 * added 606, 707, 727, 909, cr-78, cr-8000, kr-55, dr-55, dr-110, dmx, drumulator, rhythmace and linndrum kits. * it's now possible to set the tempo in the project screen. * tempo setting changed. the BPM will now be correct for grooves based on 6 ticks/step, but not otherwise. this simplification hopefully means that lsdj won't hang when using very high tempos anymore. * bugfix: phrases shorter than 16 steps now work fine in live mode. * removed a harmless 808 kit. 2001-02-18: v1.04 * added two new 808 style drum kits and boosted the volume of the old one. * output selection is now a lot more intuitive: A+LEFT will select left channel, A+RIGHT will select right... (thanks, tobi-wan!) * handy "solo" keypress implemented. press B+START in live mode to "solo" a channel. * fixed sound glitch that occured when switching to/from project and wave frame screens. * added a clock (to the project screen). the clock measures how long time you've worked on a track. cute! 2001-02-15: v1.03 * player won't try to go into low-power mode while playing anymore. this reduces background noise considerably. * fixed a minor bug that occured when changing many values in a marked block. (sometimes, values were left unchanged.) * fixed sound glitch that occured when switching between looped and single kit instruments. 2001-02-10: v1.02 * added offset+length bound check to sample kits. * added vibrato setting to kit instruments. * implemented kit sample name support. * the player should now behave less weird when starting and stopping. please tell me if you still get any strange start/stop behavior... 2001-02-07: v1.01A * instrument and channel names have been renamed. * fixed fatal live mode bug. (reported by kop) * song position marker bug fixed. (reported by d. viksporre) * W/O command visualization bug fixed (reported by d.viksporre) * "go to the edge and press again" channel switching method has been removed, in favor to B+LEFT/RIGHT. * fixed visualization bug in frame editor (reported by timothy lamb) * fixed visualization bug in wave instrument editor (reported by timothy lamb) * fixed high-speed sync issue (reported by t.lamb) * crude sample playing support (808 style kit included) 2001-01-26: v1.0B - RELEASE VERSION * implemented game boy <-> game boy sync. * fixed horrible wave ("W") command bug, reported by timothy lamb. 2001-01-22: v1.0 * when standing on the TABLE parameter in instrument screen, pressing SELECT+LEFT will edit that table. * added a shortcut between PHRASE and GROOVE screens. * if the cursor is on a groove command, the selected groove will be displayed if going to the GROOVE screen. * removed the shortcut between WAVE and PHRASE screen; I got second thoughts and began thinking it just added confusion. * fixed a bug that occured when executing certain commands on the first step in a table. also fixed several table bugs (some of them quite serious!). * fixed instrument purge bug. * fixed a bug that occured when switching from live mode to song mode when channels were queued for halt. * player won't stutter when editing instrument names anymore. * BELIEVE THE HYPE! 2001-01-13: v0.99 * LIVE mode implemented! this basically is a different flavor of the SONG screen, that allows jumping to different positions in a song while playing without audible glitches. read documentation for more info. * when standing on an instrument value in the phrase screen, it's OK to press SELECT+DOWN to edit that instrument. on demand from daniel viksporre! * added a shortcut between WAVE and PHRASE screens. * sweep values have been inverted. i think this has a nicer feel to it? * fixed a bug that occured when using HOP command in song play mode. * fixed a command selection bug. 2001-01-04: v0.90 * note values and transposing now have effect on channel 3. the sensivity is in steps of octaves. (tech-note: this pitch control is realized by modulating the leftmost digit of the sweep value.) on request from dj 6955! * command input is improved. a command won't be active until the A button is released. * channel 2 vibrato & pitch bend commands now are a LOT less noisy. * the editor has been made a lot faster and is now very pleasant to work with, even when using an original gameboy. * the player is less likely to stutter when changing screens. * the HOP ("H") command can now be used for creating custom-length loops in the tables. on request from daniel viksporre! * sound length for channel 2 instruments is improved (255 steps instead of 64). * the number of grooves is raised to 32, on request from frantik/ht! * LINE screen renamed to CHAIN screen again, to add confusion. * editor now is more energy efficient, battery might last 20% longer? * easy channel switching in chain+phrase editor: just move cursor to the left/right edge, release cursor, then press again. * fixed a bug that occured when combining pitch bend and arpeggiator. 2000-12-07: v0.83 * redesigned the player code to make the player tighter. * fixed a horrible phrase/line allocation bug. 2000-12-04: v0.82 - technical release * Little Sound Dj now uses MBC1 instead of MBC5, in order to be compatible with more cartridge types. * fixed a few graphical bugs. 2000-12-01: v0.81 * CHAIN screen renamed back to LINE screen... i think this is more intuitive if you think of "line" as in "bass line" or in "melody line". * fixed some graphic update bugs. * save functionality removed from the public beta version. 2000-11-25: v0.8 * little sound dj now works with original gameboys! * renamed TILE screen to the more trendy sounding PHRASE screen. * renamed ARP screen to the more trendy sounding TABLE screen. * added PROJECT screen. in this screen, it's possible to 1) purge chains and phrases that aren't used in the song, 2) purge instruments that aren't used in any phrases, and 3) reset the entire memory. * fixed PHRASE/CHAIN allocation bugs. * channel 0 SWEEP ("S") command now retrigs previous note automatically, which means it now sounds WAY more cool. :) * added PITCH BEND ("P") and VIBRATO ("V") commands to channel 2. due to the nature of the gameboy sound chip, these commands are rather noisy, but seem to work pretty ok anyways. * implemented ENVELOPE ("E") command for channel 2. this doesn't really set an envelope, just volume, according to a 3 step grade. (0=0%, 1=25%, 2=50%, 3=100%) 2000-11-22: v0.12b * fixed bugs introduced in v0.12. * wave editor: possible to flip marked block horizontally (by pressing A+LEFT/RIGHT) 2000-11-20: v0.12 * many optimizations and bugfixes. * renamed PAN ("P") command to OUTPUT ("O"). * added PITCH command ("P"). (channel 0,1 only) * in the tile editor, it's only possible to select commands that have any effect in the actual channel. * documentation somewhat updated. 2000-08-30: v0.11b * fixed some (serious) sampleplaying bugs from v0.11. 2000-08-29: v0.11 * usage of B+cursor in the CHAIN SCREEN moves around the SONG SCREEN cursor (and displays the CHAIN that's under it). * usage of B+LEFT/RIGHT in the TILE SCREEN now changes channel! handy! * PAN parameter added into instruments. * panoration bug fixed - at last, "L" means "left" and "R" means "right"! * added SET SWEEP (S) command. * implemented INSTRUMENT SCREEN for channel 2 & 3 sounds, too. * added possibility of naming instruments. * added copy/paste to instrument screen. * FLAM ("F") command renamed to RETRIG ("R"). * KILL ("K") command can now be delayed with N frames. * SAMPLE EDITOR SCREEN added! * set WAVE FRAME ("F") command added. (channel 2 only) 2000-08-21: v0.10 * program now displays the notes being played. * song screen cut/paste is less destructive. * the program now autoselects a free line number when pressing A on an empty step in the song screen. * SELECT & START always starts playing in song play mode. * phase ("S") command is renamed to wave ("W"). * wave and pan command value selection is a lot more graphical & cosy! * implemented INSTRUMENT SCREEN for channels 0&1! MAX POWER!!! 2000-08-16: v0.09 - NOT compatible with previous versions. * LINE screen renamed to the more descriptive name CHAIN screen. (big up, frantik!) * the program now autoselects a free tile when pressing A on an empty step in the CHAIN screen. * removed the second tile command channel, due to shortage of static RAM. * the maximum number of tiles has increased from 102 to 255. * the maximum number of arpeggiatos is doubled, from 16 to 32. * the default arpeggiatos all say "G0A". (now, let's have a party in the psychedelic sea...) * implemented an instrument column in the tile screen. * documentation somewhat updated. 2000-08-14: v0.08 * fixed some arpeggiator bugs. * added PHASE command. * do funny LIVE MUTING by pressing A&SELECT! 2000-08-13: v0.07 * added envelope command. * added arpeggiator/micro-sequencer. POWERFUL!!! 2000-08-08: v0.06 * fresh LINE VIEW implemented! by adding the possibility of chaining together multiple tiles, LINE VIEW enables swift creation of melodies and complex rhythm patterns. * SONG VIEW implemented, enabling creation of actual multi-channel songs. hoppla! * use (SELECT&START) to switch between different playmodes (SONG, LINE, TILE) while playing. 2000-07-22: v0.05a * tempo command now recalculates BPM speed according to the groove that's being played. this will make the BPM value make more sense in cases when the active groove is not a multiple of 6 * can recalculate tempo on groove change. * program now supports all channels! 2000-07-21: v0.04a * added tempo command. can now set tempo to 80-255 BPM * added groove screen! * SET FRAME SPEED command became unnecessary and was removed. 2000-07-15: v0.03a * do note/octave changes on all notes in marked block! * fresh tekken-style copy/paste commands in tile editor! * now possible to change tile during play. * added funny vibrato * player now acts SUPER TIGHT thanks to tricky INTERRUPT HANDLING! 2000-07-12: v0.02a * mem is now initialized on first startup. (thanks, vnz!) * added flam command. * can set position on hop. * compiled using SDCC -> faster code. * implements ROM bank switching techniques -> allows program to grow larger than 32kB. 2000-07-06: v0.01a * first release. this basic version allows editing and playing of tiles. some simple commands are also included.