CHIPNSFX is a musical software suite focused on lightweight code and data (the player itself is under 950 bytes long, and can be as small as 550 bytes) for the Amstrad CPC, Sinclair Spectrum 128 and MSX1 platforms; other hardwares can be supported with minor modifications in the player code, such as Sega Master System. The tracker can create songs up to 256 patterns long, patterns can be up to 96 ticks long, and there can be as many as 255 different instruments. The player itself is hardware-independent, the programmer can provide the external functions required to make it work on any Z80-based platform. CHIPNSFX was succesfully used in past projects such as "CNGTRO #1", "Justin", "Bubble Bobble for CPC", "Frogalot", "Hire Hare"... and will be used in future projects to come.
20171124: sixteenth public release. Improved compression to handle repeated strings of patterns if their contents aren't already packed. Added arpeggio special case D (+24) with just one more byte of code. Added ABADIA1-3.CHP, CORSARI1-2.CHP, SOLOMON3.CHP and STARDUST.CHP.
20171118: minor patch fixing minor noise in playback of almost mute amplitudes and formally setting arpeggio case E to stand for -24, way more useful than -13, and only requiring three bytes of code in the player. Added INSIDOUT.CHP and MEGAPHNW.CHP.
20171115: fifteenth public release. Fixed amplitude errors in normal (random crackles) and linear (heavy noise) modes. Added (in several cases retroactively) BLACKBRD.CHP, CAULDRN1.CHP, COLISEUM.CHP, KONGSTCK.CHP, LIVISTN1-2.CHP, M_U_L_E_.CHP, MADMIXG0-2.CHP, TOOBIN_1-5.CHP and UNTOUCH0-7.CHP.
20171109: minor patch fixing a mistake in the order list (INSERT and DELETE were moving the end of the song when they weren't supposed to) and another one in the tracker's vibrato (internally limited to 7 steps rather than 15). Added GOODY.CHP and SIRWOOD.CHP.
20171104: fourteenth public release. Consistency fixes: arpeggio cases E + F stand for -13 + -12 both in the tracker and the player; Alt+F4 equates to ESCAPE; pushing INSERT or DELETE on the order list only affects the currently selected channels rather than all at once. Added BLKLMPSV.CHP, MYTHOS.CHP and ULISES.CHP.
20171002: minor patch restoring proportional vibrato adjustment, overwritten by the new signed vibrato featured in the past release.
20170930: thirteenth public release. Pushing SPACE in the instrument panel plays A-n (where n is the current octave) rather than A-4. New vibrato special case: values X8-XF generate a negative depth vibrato. Control-A/Q works on parameter panel. Added BLKLMP64-65.CHP.
20170918: minor patch fixing a bug in Control-Shift-U when dealing with extreme positive or negative order transposition values, and adding BLKLMPST.CHP, BLKLMPSU.CHP and TRANSMUT.CHP.
20170916: minor patch extending the behavior of Control-Shift-U to cleaning order transpositions up, fixing an old bug in the INCLUDE output and a new one in the extended player, and adding SHOCKWYR.CHP.
20170914: twelfth public release. Command line options allow getopt syntax: for example, "-a -b -c" can be shortened to "-abc"; flags -b1..-b6 are now -B1..-B6, in uppercase. Improved the player's support of multiple channels playing noise at once, thus solving the glitches in BURNINR1.CHP and other songs. Added INDIANA3.CHP and JACKNIP2.CHP.
20170911: minor patch fixing a bug in the extended player and adding VERMINT1-3.CHP.
20170909: eleventh public release. New special case for instrument noise: XX80 plays noise XX only at the beginning of the note, then disables the noise signal; the player's extended mode has been updated accordingly. New command line flags -b4, -b5 and -b6. Moved Control-P to Control-B and added Control-U (song optimisation and cleanup). New CAULDRN2.CHP, EQUINOX.CHP, HATE.CHP, LASTMISN.CHP, MOT1-3.CHP, RESCATLA.CHP, RTS-25-27HZ.CHP, RTS-50-52HZ.CHP, SHADSKIM.CHP, TRAILBLZ.CHP, WELLSNFG.CHP, WINGSOD5.CHP and ZONA0.CHP: 85 songs.
20170814: minor patch extending Control-A/Q to the instrument panel.
20170813: tenth public release. New command line options -a (append) and -Q (enable oversampling). Fixed two bugs in INCLUDE file output: instruments setting secondary parameters at the end of the song didn't reset them after looping back to the beginning, and song loop could be lost if within a compressed string. The arpeggios' special case F is now universal instead of limited to extended mode. New BURNINR2-3.CHP, ARMYMOV1-2.CHP, METROPLS.CHP, MYHERO_1-5.CHP, NAVYMOVS.CHP, RENEGA10-19.CHP, THUNDRBD.CHP and XENON1-3.CHP: 65 songs.
20170731: ninth public release. New special case for arpeggios: the nibble F stands for -12 and changes the loop behavior. Sound playback is now wavelength-based rather than frequency-based, and thus closer to the hardware. Minor bugfixes in the keyboard map handling. Added CHUBBYGR.CHP, CHUBBYGS.CHP, MEGAPHNX.CHP and MEGAPHNY.CHP.
20170724: eighth public release. Fixed a serious bug in the noise generator: playback and WAVE output randomly skipped pure noise notes. New ATEAM.CHP, BURNINR1.CHP, BURNINR4.CHP, SOLOMON2.CHP, UNDERWTR.CHP, WESTBNK1.CHP, WESTBNK2.CHP and WINGSOD4.CHP: 32 sample songs.
20170719: seventh public public release. New extended tremolos (60-9F) lead to important changes in the amplitude effect byte: old 60-6F become 5F, old 80 becomes 9E, old 81-8F become 61-6F, old 90-9F become A0; 70-7F stay as they were. Minor optimisations in the player. New command line options -b1, -b2 and -b3. New CATABALL.CHP, FREDDY_H.CHP, HYDROFOL.CHP and SCOR3020.CHP.
20170708: revised sixth public release, with just one change: pressing backspace in order list panel updates pattern panel.
20170707: sixth public release. New command line options -y and -Y (generate YM3 file, either full song or song loop), commands Control-W (apply transposition to current pattern), Control-D (detect duplicates and optionally erase them), Control-E (check for duplicates and optionally create them). Minor changes in CHIPNSFX.I80 extended mode vibratos, in the file dialog and the INCLUDE file compression. New DEFLEKTR.CHP, GRANGEHL.CHP, PHANTIS1.CHP, PHANTIS2.CHP, SCOR3020.CHP, THINGBBK.CHP and TIMETRAX.CHP.
20170616: fifth public release. Fixed a file dialog bug reported by Garvalf (who also wrote CHIPNSFX's first new song from scratch), as well as minor internal consistency bugs. Pattern panel allows using Control-D. New ATOMINO3.CHP and DESPERA2.CHP.
20170607: fourth public release. New command Control-D tells whether the current instrument is unused or the current pattern is a duplicate (Shift: erase unused instrument, turn current pattern into a link to the pattern it is a duplicate of). Minor bugfixes: inconsistencies in -P mode and in channel toggling, better compression when generating INCLUDE files, etc. Minor changes in several songs. New DESPERA1.CHP.
20170602: third public release. New command line options -P (cursor follows playback), -k1, -k2 and -k STR (set QWERTZ, AZERTY or custom keyboard map), following a suggestion from Beb.
20170523: second public release. New command line options -F (48000 Hz) and -L (linear amplitude). A blue bar makes the active items stand out. Minor changes in the documentation file.
20170513: first public release of the tracker (binary only, no source code yet because it's pure chaos) and the player (source code and sample binary).