: V0.32a _Features: * [ALL] Supports 8-bit samples * [GP2X] Added stick push shortcut for start * [ALL] Introduced Low Pass filter (code courtesy of Beausoleil Samson-Guillemette from the northern dragons). Available in all instruments and modifyable through command FLTR. FLTR aabb where aa is the filter cutoff and bb is the resonance. Default all pass is 0xFF00 * [ALL] Now using uncompressed xml files for save (same file name but bigger and human readable) * [GP2X] Alpha release of MIDI through serial for Firestarter * [ALL] Implemented better command browsing in Phrase screen. Now A+L/R jumps to previous next while up/down jumps up down in the alphabet * [ALL] Added project selection at startup. Lists all directories starting with lgpt and let the user select which one to work with. _Fixes: * [ALL] Cursor goes back to original location when ending a selection based cut/copy * [ALL] Fixed engine startup preventing uninitialied data to be access on first audio chunk * [W32] Fixed sound driver bug with nateDawg song * [GP2X] Click-less key repeat * [ALL] Fixed bug with instrument purge * [GP32] Tweak the user interface in order to get rid of the infamous 'GP32 sound bug' that crept back. Possibly more stable thanks to that. * [W32] Fixed cursor redraw feedback when saving #080721: V0.31a _Features: * [GP2X] Worked around SDL for redraw event since it is not properly working * [ALL] Added selection extension with L+B,L+B,L+B. First extends the selection row-wise, then selects the whole screen * [ALL] Implemented purge instruments in p8oject screen. Sets all sample to (null) on unused instruments * [ALL] Added build number in boot & project screen * [ALL] Implemented B+UP/DOWN in instrument screen * [ALL] Added PLOF command for play offset _Fixes: * [ALL] Prevented jumping to next/previous phrase in phrase screen while in selection mode * [ALL] Fixed bug if u started in song mode on a chain with no phrase, switched to live mode then no more chains in that column could be triggered * [ALL] When cutting command with A+B command parameter gets cut too and goes to the clipboard * [GP2X/W32] Cleaned boot procedure * [GP2X] Fixed bug preventing the cursor to come back after a save * [W32] Fixed Garbage written for intruments wit no samples * [ALL] Tempo and Instrument level both written in decimal and hexadecimal * [ALL] Fixed bug with browsing commands in second column of the phrase screen * [ALL] Fixed bug leaving data when purging sequencer * [GP2X] Fixed problems with audio driver crashing on unititialized project * [GP2X] Linked to HW accelerated SDL for fast drawing * [GP2X] Audio, memcpy & memset optimisation leading to less CPU usage * [GP2X] Audio CPU Usage measurement (experimental) * [GP2X] Shows battery level as percentage and make the screen go darker when battery are about to fail. #080518: first GP2x alpha _Features: * Implemented Instrument sample display in chain screen * Implemented start/stop in instrument screen * Added MDCC command for sending midi CC * MIDI support VOLM & RTRG * Added Volume & Note length parameter in MIDI instrument * Added TMPO command * Added RTRG command * Added midi on/off switch in project. Always off when starting up * Added Sample start point parameter * Raised number of sample instrument to 0x80 now MIDI instruments are located from 0x80 to 0x8F. No backward compatibility for old savs using MIDI. _Fixes: * Pasting in Phrase view now wraps like LSDj * Now looping though the command won't display '----' * A+B On instrument samples sets it to (null) * Fixed more live & chain related bugs * Fixed small visual bug when switching phrases while editing parameter values * Fixed bug preventing to start chains in live mode * Now any .wav file in the sample directory is loaded. (no need to name them 1.wav,...). Note that GP32 uses a FAT filesystem, so 8.3 limitation applies * Fixed continuity problem when resetting updaters (volume,pitch commands) * Fixed bug that mono samples where rooted on C4 instead of C3 This means that all older song using mono samples will have those shifted by one octave. To fix, go through all instruments using mono samples and lower their root note of one octave * Fixed bug that crashed when leaving the parameter screen for a MIDI instrument # 051007: V0.30a * Added commands Current command set: VOLM aabb PTCH aabb ARPG abcd KILL --aa HOP ---a Command Description: VOLM: Volume control. bb is the target volume. aa is the speed of change to that volume (0=immediate). LEGA: Legato ; pitch control bb is the pitch target in semi tones from current note (00->7F=upwards 80->FF=downwards) aa is the speed of change (0=immediate) if you specify a pitch target of 0 and are on a line with an existing note the command will act legato style, going smoothly from previous note to current ex: C 3 I01 ---- ---- --- --- ---- ---- C4 I01 LEGA 1200 <- will do a legato PTCH: Implements linear pitch shift bb is the pitch target in semi tones from current note (00->7F=upwards 80->FF=downwards) aa is the speed of change (0=immediate) works pretty much like the legato except that the pitch change is processed linearly rather than exponentially. ARPG: Arpegiator Imlpements chord-like arpegiation. abcd represent each an arpegiation step in semitone. the arpegiation always starts with the original tone then loops through the steps until only zeros are found. C 3 I01 ARPG 3000: C3,D#3,loopback C 3 I01 ARPG 3050: C3,D#3,C3,F3,loopback C 3 I01 ARPG 1234: C3,C#3,D3,D#3,E3,loopback KILL: Kill note in current channel aa: delay in ticks to wait before killing the note HOP : Hops to the next chain a: position to hop to in the next chain * Proper synchronisation between the midi & sample engine * MIDI sync out: Sends tempo sync, start & stop * Windows version uses SDL (much better readabiility) and supports fullscreen in 320x240 * Joystick support for Windows version * Tempo resolution aligned to LSDj * Fixed copy/paste bug in chain screen * Instrument screen now remembers what parameter was selected # 051007: V0.25a * Turned to compressed XLM file for saving.. old .sav are incompatible remove your old .sav before turning on the piggy ! This should ensure much better compatibility for keeping up with added features * Added main volume & wrapping parameter in project. Main volume goes from 10% to 200%. Piggy is loud now ! Wrapping parameter sets up what to do if the combined instrument level goes further than the 16bit resolution. If wrap is 'false', the volume is simply clipped. If it is to true, the part that goes beyond resolution is wrapped and put back * Added instrument parameters: Sample: selects with of the 0x3F is used by this instrument. The name of the sample loaded is still 0.wav -> 3F.wav but you can now select the same sample in more than one instrument. Pan: pans the instrument left or right (0x7F is center) Interpolation mode ('linear'/'none'): selects which interpolation mode is used when in between samples. linear interpols linearly while none takes the nearest neighbor. Use none when playing samples at low range to add some typical overtones. Loop mode (none/loop/oscillator): selects the looping mode. none will play sample from zero to end. loop will start at zero and loop from loopstart to end. oscillator is a special mode where the loop selection (from loopstart to end) is taken as oscillator data and automatically tuned. Experiment with different settings, do not forget 'root note' is your friend to tune the oscillator back in a useful range Loop start: start of the loop selection Instrument length: end sample of the instrument/loop selection * Fixed bug when purging sequencer, all instruments would be set at I00 rather than cleared * Fixed quirk: when toggling quickly from mute to solo, u might end up pressing a+B and cut a note. Fixed, A+B only works if right shoulder is not pressed # 050903: V0.21c * Lowered down LCD refreshing frequency to minimum (50Hz) to minimize memory writeback buffer clogging. Seems to have dropped cpu usage. * Added visual feedback when loading instruments * After discussion with K9D, changed the way muting/soloing works: R+A: Solo current channel. If R is released before A, solo stays If A is released before R, goes back to previous state R+B: Toggle mute/unmute of current channel If R is released before B, mute state is kept If B is released before R, goes back to previous state L+R: Still re-activates all channels R+A,R+B can still be used in conjunction with selections * Fixed problem related to pasting in song screen before having copied selection. * Fixed small bug in phrase screen: doing A+B on a note would move the current position on the instrument column # 050819: V0.21b * Added muting in chain/phrase screens * Added save song in project screen ; Press A to activate * Added purge sequencer in project screen; Press A to activate * Unmuting all L+R now does clear the solo state * Fixed bug that if song started in song mode, any track not playing at startup could not be queued after switching to live mode * Hopefully kicked once for all the problem of dancing parameters # 050816: V0.21a * Introduced Muting and Solos !Slighly different behaviour from LSDj! R+B=TOGGLE MUTE: Toggles cursor channel muted/unmute R+A=SOLO: soloing keeps in memory the mutes so releasing the solo so by pressing R+A again, you get back to original mute state before solo. L+Rs=UNMUTE ALL: releases all playing channels from mute Mute controls while extending a selection applies to all row * Introduced interaction between selection and mode live In song mode, you can now apply live triggering to selection. L+B: Start selection Move your selection horizontally With selecton still on, you can not press START/R+START and all chains across the selection will be queued/stopped ! The row queued is the current row of the cursor. * Corrected but with data not initialized properly is starting in song mode then switching to live mode * Added view locking to avoid some black screen annoying flick # 050809: V0.20b * Made Live mode consistent across all screens (chains/phrases) # 050801: v0.20a * Added live mode ! B+LEFT/RIGHT to switch between live/song mode START to queue a chain (further press toggles between immediate and regular mode) R+START to stop a chain (further press toggles between immediate and regular mode) # 050729: v0.12a * Added block selection copy/cut/paste in phrase/chain screen * Added B+UP/DOWN jump in phrase screen * Now when pasting cut element in phrase/chain, cursor goes down (to comply with LSDj) * Added optional configuration file lgpt/config.xml * Fixed bug that prevented to cut/paste solely instrument value in phrase screen * Fix playback bug if chain fully loaded with phrase * Fixed bug: if playback reaches a chain with no phrase in the first step, it is considered as an empty one (before it would hang in there) * fixed uninitialized memory access that might explain early snow storm. * fixed the dancing parameters in project / instrument screen # 050723: v0.11a * Introduced block selections in song screen: L+B to start selection Arrows to position it B to paste selection to clipboard -or- L+A to cut current selection -then- L+A to paste selection * Unified paste buffer with L+A so element cutted with A+B are pasted with L+A and not with simple A press (to conform to LSDj) * Eliminated the click sound bug when navigating. Not quite happy with the hack but it works... * Modified event generation & key repeating. Not customisable yet but should be more confortable. Locks shouldn't happen anymore * Fixed wrap up bug in transpose not going from 0xFF to 0xFE * Fixed cloning chain in song screen would not clone the transpose data * Added R+START to start full song from last played position in phrase & chain mode * !!! Moved saving to project screen !!! press SELECT in project screen to save. * Added special code to optimize memset if on 4-byte boundary not quite a biggie but does save a few % when playing 8 channels * Added tracing in console to show unused instrument containing sample at boot time. Press L+R to activate console. Useful when u'r getting out of sample room and want to kick out unused stuff. # 050710: V0.10a * Introduced instrument pitch Shifting. Using linear interpolation * Introduced instrument screen & parameters with * Volume * Bit crusher * Root note * Support for mono wav files & sampling rates other than 44.1 * Transpose column in chain now working * Aligned notes to MIDI note numbers for future compatibility. notes now go from C-2 to A7 * Fixed bug when loading instrument samples. Before the number of the instrument would be in decimal which means instrument 1A would map to 26.wav which made it really difficult to sort out * Fixed bug when the same instrument is playing in two different channels. Sound ended up mangled, now is ok. * Re-introduced CPU display, clicking has nothing to do with that it just happens at certain tempo, must be a more general bug * Cutie piggy icon ! (thanks K9D :) ### 050707: V0.01b ### * Fixed bug with wrong wrapping if chain at song position 01 and no chain at position 00 * Player start now starts at the cursor row in chain song incidently, this is why sometimes the cursor was not shown sometimes in the phrase screen, because it would always play the first phrase of the chain ! * Fixed wrong behavior with cut (A+B) so that paste with (A) paste the cut content * Fixed save so that gets trigger only if SELECT is down, and no other button * Forbidden save while playing (so song won't get accidently stopped if SELECT pressed * Added trace to see where saving hungs ### 050705: V0.01a ### First beta release * Structure: drop LGPT.fxe in \GPMM create \GPMM\lgpt ... this is where sav/load will go create \GPMM\lgpt\samples ... put in there your samples named 0.wav;1.waw; ..n.wav samples will be assigned to instruments 0;1; ..n * Functionalities: Project/Song/Chain/Phrase screens Song playback mode in all screens Unpitched sound playback Supports only 16Bit/Stereo wav files ; assumed sample rate of 44100Hz * Interface: note: R=TOP right button, L=TOP left button. Since we can't use the select button, we'll use these ones to replace original lsdj select ARROWs :In screen navigation A :Insert chain/phrase/note A,A :Insert next unused chain/phrase A+ARROWS :Update current cursor value B+ARROWS :Page up/down in song screen R+ARROWS :Switch screens current screen layout: Pr Sg:Ch:Phr L+(B,A) :Clone B+A :Cut current position SELECT :In song screen, save the song