It is programmed in java and will therefore run (or at least crawl) on any platform that has an implementation of Java and the javax.sound.* api (In most cases that means jdk1.3.0 or newer from Sun)
ANA-MP is released under the LGPL license.
You may also notice that the version numbering scheme has changed. It just seemed very unlikely that 0.99 would be the last release before 1.0. The new scheme will make room for as many releases as I might want before I call it finished and put the "1.0" stamp on it.
Made interpolated mixing work. Mixing is now handled by plugins and mixers with higer order interpolation should be easy to implement. The command line option "noint" can be used if you want to use a faster (crappier) interpolation algorithm. Reworked the output plugin interface. The player now always work at 44100Hz, 16 bits, stereo. It's up to the output plugin to resample if a lower quality is needed. This simplifies the player code but means that there is no performance gain in decreasing the sound quality. Wav output plugin added. Supports only 44100Hz, 16 bits stereo. Use the "wav" command line option. Version number increased :-) Bugfix: KeyOff resulted in sample being cut. Reorganized the distribution: -All files distributed in one archive. -Added build.xml for building using ant. -Added this file :-) Lots of smaller code cleanups.
Some details:
added: support for ping pong loops
added: detection of Noisetracker modules ("N.T.")
added: relative note and finetune is used
fixed: loading of 16 bits samples (.xm)
fixed: the .xm-loader loader loaded all notes one note to high
fixed: a serious bug in all the slide note effects
fixed: the .xm loader f***ed up the extended (Exx) effects
fixed: (.Xm loader) set sampleLength, loopStart and loopLength right
when loading 16 samples
fixed: loop pattern effect
fixed: (.Xm loader) load the right number of patterns (when not all
patterns is used)
fixed: nullPointerException when "slide to note and volume slide" is
played and "volume slide" never have been played in the same track
fixed: more bugs in "slide to note and volume slide" and "vibrato and
volume slide" (when passing arguments on to slide to note and vibrato)
fixed: yet another bug in "slide to note" when sliding down (a "<"/">"
confusion... ;) )
fixed: a lot of small bugs in the mixing code, generating exeptions
fixed: (.XM loader) make extra empty patterns quiet (not playing
instrument 0 with note 0 in all divisions, all channels...)
fixed: make it safe to play an instrument without any samples (to stop
any sound in that track)
fixed: (.XM loader) make patterns with packed size == 0 quiet (like
extra patterns)
fixed: patterns with varying length...
fixed: the .MOD loader didn't load fineTune values right
fixed: handling of volume (don't assume default = 1, get value from
sample)
fixed: handling og panning (let loader decide which panning value
should be used)
added: (empty) classes for xm and s3m effects
fixed: the rounding error when calculating ticks in whole millisecs was
to large. Fast modules sounded crap...
added: A ModuleUnits interface have been created so that the player
dont have to know hov to do note-period-rate calculations for each
type of module. There will be one implementation of this interface
for each type of module
added: instruments will fade out if a KEY-OFF note is played
fixed: I finally gave up on making the slide effects work for both mod
an xm, making separate effects for each format. Im confused: Slides
for xm are said to be as protracker in the xm-spec commented by
SaharaSurfers, while the with comments from Byteraver say that the
distance between two octaves is 255 portamento units. What
actually works is the protracker way, only multiplied by 4. (and that
seems to be what mikmod does, except that mikmod also does that when playing
ordinary .mods...)
added: volume envelopes!!! :)
fixed: a bug in the forward looping code that made it play the first part of
the sample, skip a part and then start on the loop. This happened if
the loop start wasn't reached in the first tick of playing this sample.
added: panning envelopes!!! :)
Things that have been fixed/added:
I have also started to rewrite the player to make it possible to support more formats. You can test the xm-loader by typing:
java -cp ana-mp-0.91.jar anakata.modplay.loader.XMLoaderTest <an-xm-module>
Some details:
bugfix: sample-loop was broken, played "play entire sample, then loop" instead of
"play sample until loop-end, then loop"
bugfix: verbose command line arg fixed
test: slide up/down, works like winamp, madtracker broken?
bugfix: slide to note now works
removed: glissando control. I misunderstood how it worked...
bugfix: jumping to start of 0'th pattern now work
test: FLT4 works, 6CHN works
fix: old 15 instr mod works :)
added: look for id's 2CHN, OCTA (octalyzer), CD81 (atari falcon) and
TDZx (taketracker) (none tested...)
added: buffer cache... +less garbage
-the mixer assumes that all new buffers contains only zeros,
so all cached buffers must be cleared
test: arpeggio works!!! (finaly)