The home of JavaMod 3.9.3, WinMod 1.5 and DosMod 1.9

last updated at 12.07.2024

What's this all about?

This is the central home of my three mod players I developed over time. Those are DosMod, WinMod and JavaMod. The latter is still under development - the other two versions can be downloaded if nostalgica kicks in.
Use the menu on the left to jump directly to the download section. The source code of WinMod and JavaMod is also available there.

The Legacy!

The first one ever made back in the 80s was "DosMod" which was written in assembler and C and is running under MS DOS. It still runs very well with dosbox, if you want to give that a try.
I did that because I read in PC Intern from Michael Tischer about programming the Sound Blaster 16 sound cards and wanted to try that with a nice example of sound processing. As Protracker Mods were a thing back then on the PC I decided to stop into that - and also because in that brick of a book the Protracker format was already explained.
It still gives me the chills when listening to "kermit.mod", which does not use many effects and is therefore a nice start for basic tests.

The player "WinMod" was than a complete redesign running under Windows (95>) using DirectX (V7.0 is minimum) and is completely written in C++.
The basic cause for a complete rewrite during my time at university was: because I can. And also because now I did not need to program the sound card myself but could use DirectX to do that for me. However, WinMod also can use a direct wav output to the current sound driver as well.

The Current!

In 2006 I again developed a new player - now using Java. Starting with the intention to develop a new modplayer this is not a pure mod player anymore - it is a complete audio player supporting several different file types, playlists, audio streaming and so on. You will need at least Java 17 to work with JavaMod - it is compiled with JDK17. It is tested with Open JDK 18.
This player is not based on the MikMod-Library. It's based on my own knowledge and experience.

As every program seems to have a mascot, javamod is no exception to that. The Mascot is called "Quippy, the kangaroo". Me wife drew it and put the java logo on its T-Shirt.

JavaMod had an article on german wikipedia, but the article has not (yet) been deemed relevant. The article was copied to the Marjorie Wiki - I sometimes updated that one. Furthermore you can also have a look to JavaMod on SourceForge or on GitHub.

With version 2.8 a new feature was added: OPL emulation. That is why we now can play old AdLib ROL files and some other stuff - yeah!

It supports the formats / Files:

The Feature-List:
  • NoiseTracker Mods (*.nst)
  • ProTracker-Mods (*.mod, *.wow: M.K., M!K!, FLT4, FLT8, 4CHN, 6CHN, 8CHN, CD81, OKTA, CH/CN)
    ProTracker Mods are played with the original Period table (16 finetune-tables) of the ProTracker 2.1A Playroutine! Not rendering Protracker through XM or IT playroutines.
  • FastTracker 2 MODs (*.xm) - FT 2.09 compatible
  • ScreamTracker (*stm, *s3m)
  • ImpulseTracker (*.IT) with NNA and DNA, IT 2.14 compatible
  • XM Log-Table, XM linear table
  • IT Amiga Table, IT linear table, it old effects, it compatible, it legacy switch, correct effect memorys
  • Schism IT penetration tests 100% correct
  • stm/s3m/it-Frequencies
  • All effects are implemented (at last NNA / DNA also with IT --> use JDK11 or greater, JDK8 is only good for ~100 NNAs)
  • Interpolated mixing (linear, Cubic, windowed FIR)
  • Noise Reduction
  • 8/16/24/32-Bit Output: internally 32 bit is used - if less, dithering is used
  • Plus support for mp3, mp3 http streams, wav, au, aif, midi, rmi, ape, flac, ogg/vorbis
  • display of ID3v1-, ID3v2-Tags and Limecast, Shoutcast (und compatible) Tags
  • SID-Files (for all the C64-lovers out there ;-) )
  • APPLETS:  even because a lot of people asked for it! We DO NOT HAVE them anymore!
  • Supports now pls and m3u playlist files
  • Endless loops can be recognized and stopped (via fade out)
  • WAV-export
  • and a lot lot more!
Quippy, the javamod mascot
© since 2004 by Daniel Becker