Made Future Composer player more robust for empty modules.
If you have set up Windows to use more than 2 channels, NostalgicPlayer crashed when trying to play a module. Big thanks to Robert Konrad (RobDangerous) for the fix.
If the very first line is selected in the module list, then the page-down key didn't work.
In some rare situations the Piano visualizer crashes when fast-forwarding with an invalid argument error.
Some mp3 files was not recognized as so.
Fixed different bugs when double-clicking a file to open it in NostalgicPlayer.
The different players return a list of frequencies for each note. This is used by the Piano visual to show which note is playing. Each player support different number of octaves, and before, they was centered in the middle of the piano. This has been changed, so the same note (same frequency) is shown on the same key for every players.
Added tool tip in the Module Information window for Module format and active player. The tool tips show the description of the format/player.
Fixed a bug, which made some MED modules that contains multiple octave samples fail to load.
Improved the AHX player to use channel mode instead of its own mixer. This makes the Piano and Spinning Square visualizers to work with these modules.
Made a big change on how the song position is shown and navigated. Before, the position reflects the players position list and which position in this list is currently being played. This may cause some confusion, specially with players which has position loops like SoundMon and DigiBooster. This has now been changed, so the position reflects the time into the song. Each position is a 3 seconds step. This means, when moving the slider or pushing the rewind/forward buttons, you move in time and not the position list. To not remove the old information, it has been moved into the module information window. This has also been expanded with currently playing pattern/tracks.
Written my own control to handle the module list in main window. This make all the operations on the list a lot faster than before, special with big lists.
Now there won't be created an extra process for every file you double click on in File Explorer to add them into the module list. This fix also speed up the processing of the files, so they are added faster.
When adding a lot of files to the module list at once, e.g. the whole modland archive, it did take a loooooong time to process. This has been speeded up a lot, so all the in-deep scanning is done in a background thread if enabled in the settings.
Added new option to remove files from the module list which cannot be recognized.
Ported mpg123 to C# to get rid of the CPU dependencies. In the process, I also added support for the Free Format (rarely used, find examples on my webpage).
Fixed a bug that may cause the program to hang when closing down and a double-buffering module has been loaded.
Restricted the module length for 15-samples mod files to prevent false positives. Unfortunally, this change make a couple of modules on modland undetectable because they have a lot of extra data at the end. I have fixed those modules on my webpage, so if you find such modules, try to see if you can find the fixed version there.
Added support for ARM processors.
Updated libsidplayfp to version 2.5.0.
Renamed the MED format to MED 2.10 (MMD0).
Added these new module formats: DigiBooster Pro 2.x (with support of echo), DigiBooster 3.x, DigiBooster 1.x (with support of "robot" effect), MED 1.12, MED 2.00, MED 2.10 (MED4), David Whittaker.
Several players show 0 as volume in the Sample Information window instead of 256.
The sub-song detection change in last version contained several bugs. The module could stop too early if you changed the position. When looping is on and the module loops, if you then stop the loop, the module ended the next time it changed its position. Also some modules timed out when the duration was calculated. All this should be fixed now.
The Unreal Music File loader was broken by a change a couple of versions ago, so the modules could not be loaded.
The piano visual did not show anything when opened while a module is playing. It only worked if already opened when a module starts.
Fixed a critical bug in the Spinning Square visualizer. When stopping or switching modules, there was a potentical risk for memory leaks or even a crash.
Added tooltips to the sample information window, so it is now possible to see what the different icons means.
Updated Krypton.Toolkit and Krypton.Navigator to version 70.22.11.312.
Updated libsidplayfp to version 2.4.0.
Added these new module formats: Game Music Creator, Quadra Composer, Delta Music 1.0, Delta Music 2.0.
Improved the piano visualizer, so it is now easier to spot if the same note is retrigged + vibrato and slides are shown too.
Improved the sub-song detection for all players.
Updated SharpCompress to version 0.32.2.
Updated mpg123 to version 1.30.2.
Updated NVorbis to version 0.10.5.
Channel disabing didn't work for SidPlay modules.
Rewritten, so the master volume go through the output agent instead of the mixer. This means, the visualizers won't get effected when changing the volume.
Added ProWizard agent which make us reach the first mile stone of 100+ supported formats. It can convert these module formats: AC1D Packer, Ben Replay, Binary Packer, Channel Player 1, Channel Player 2, Channel Player 3, ChipTracker, Devils Replay, Digital Illusions, Eureka Packer, FC-M Packer, Fuchs Tracker, Fuzzac Packer, GnoiPacker, GnuPlayer, GPMO, HCD Protector, Heatseeker mc1.0, Hornet Packer, Kefrens Sound Machine, Laxity Tracker, Module-Patterncompressor, Module Protector, Mosh Player, Newtron Packer 1.0, Newtron Packer 2.0, NoisePacker 1, NoisePacker 2, NoisePacker 3, NoiseRunner, NoiseTracker Compressed, NovoTrade Packer, Perfect Song 1, Perfect Song 2, Pha Packer, Polka Packer, Power Music, Promizer 0.1, Promizer 1.0c, Promizer 1.8a, Promizer 2.0, Promizer 4.0, ProPacker 1.0, ProPacker 2.1, ProPacker 3.0, ProRunner 1, ProRunner 2, Pygmy Packer, SKYT Packer, StarTrekker Packer, STIM (Slam Tilt), The Dark Demon, The Player 2.2A, The Player 3.0A, The Player 4.0A, The Player 4.0B, The Player 4.1A, The Player 5.0A, The Player 6.0A, The Player 6.1A, Titanics Player, TMK Replay, Tracker Packer 1, Tracker Packer 2, Tracker Packer 3, Unic Tracker, Wanton Packer, Xann Packer and Zen Packer.
Added the favorite song system window. Here you can see all the modules you have heard and how often.
Now players that do they own mixing, can get the real output frequency and mix to that, instead of going through a resampler. This improves e.g. SID playing. Thanks to Wilfred Bos for telling me this. I don't know why I couldn't hear it myself :-(
SidPlay now output directly to Windows instead of going through my mixer. This increase the volume a little bit and also make the sound more accurate.
Added the Resampler mixing routine to SidPlay and added the option to choose between this one and the old Interpolate routine.
Fixed some bugs occurred while porting the libsidplayfp library to C#.
UMX modules no longer need to be from a known game before it is recognized.
When a big list is loaded and scanning is started to update the times and you meanwhile change the list, e.g. sorting, then some items will be skipped and not updated.
File scanning did not work for sample files.
If a module is stored in a folder inside an archive, it shows both the folder and file name in the module information window. Now only the file name is shown.
When saving a 16-bit sample from the Sample Information window, it didn't save it correctly.
Added these new module formats: AHX 1.x, AHX 2.x, His Master's Noise (Gnomie by Night), Fred Editor, Fred Editor (Final), MED, MED Packer, OctaMED, OctaMED Professional 3.00 - 4.xx, OctaMED Professional 5.00 - 6.xx and OctaMED Soundstudio.
The previous module button froze the player when used while playing samples.
The SidPlay has been upgraded to use libsidplayfp for the computer emulation. This improves the accuracy of the emulator, but support of old ancient file formats has been removed. At the same time, the reSID sound chip emulator has been upgraded to reSIDfp, which has a totally rewritten filter emulation and better support for mixed waveforms.
Improved the handling of envelopes for XM, IMF and IT modules, so there is taken care of the differences between the module formats.
Updated Asylum loader in MikMod with some extra sanity check and support restart byte and start speed.
Fixed a bug in the song-end detection in ModTracker, so Coffee Blues III works (used a lot of funny stuff like playing backwards).
Disk saver could save more music to the sample when the module ended in some occasions, specially short modules. Fixed now, but has this side-effect, that if loop is on, the module is paused when reached the end and nothing more is saved. I don't think that is too bad.
Fixed a lot of bugs in the Farandole Composer player, special with the tempo calculation.
If loop is on and either a one-pattern module loops or it loops on the same pattern, the time was not reset.
MOD Plugin Packed has been removed as a separate type, since in fact it is not. Most modules are FastTracker II modules with packed samples. However, it is still supported.
Added support for MOD Plugin Packed on ScreamTracker 3, ImpulseTracker and MOD files.
Fixed a signing bug in Impulse Tracker effect N, which made "A life in termoil.it" turn up the volume at the end when it shouldn't.
You can now use the keyboard key "1" to restart a sample.
Changed the Add modules button to show a menu, where you can select if you want to add files or a directory.
Added support for interpolation when playing sample files. Make sure to enable it when playing MP3 and Ogg Vorbis files.
Added these new decompressors: Music Module Compressor (MMCMP).
Added these new archive formats: Lzx and Lha.
Added these new module formats: MPEG 1.0, MPEG 2.0, MPEG 2.5, Ogg Vorbis and Digital Tracker MOD.
Visuals cleanup method was not called when closing its window.
When going from a normal module player to a sample module player when loading the next module in the list, e.g. ProTracker -> TFMX, and you have double buffering enabled, the Spinning Square visual did not get disabled.
If clicking next module, double buffer is enabled and the next module has been loaded while module information window is opened, NostalgicPlayer crashed.
If switching output device while playing, and the new device using a different frequency, the module was played with the wrong speed.
Added new spectrum analyzer scope, which shows how much of the different frequencies that are used currently.
Updated Krypton toolkit to Canary version 6.0.
Added new option, so modules which don't report a song length, can automatically load the next module in the playlist after a timeout.
Added some fixes to MikMod.
Added these new module formats: SidPlay, SoundFX 1.x, SoundFX 2.0 and MOD Plugin Packed.
Added 64-bit mixers. Those are used on 64-bit environments, while the 32-bit mixers are used on 32-bit environments.
A bug was introduced in version 1.1.0, which made some SoundTracker modules to be recognized wrongly. In one case, the module was played with the wrong speed.
Spinning Squares crashed when switching module to one with more channels than the previous one and double buffering is enabled.
File associations now display the module type in file explorer instead of the generic "Audio file".
If a file in the playlist did not exist anymore, NostalgicPlayer crashed when trying to load it.
Can now handle mod files that have a song length bigger than 128, e.g. beatwave.mod.
If a module use 10 channels, then the Spinning Square scope only shows the first 9 channels.
Added the comment tab to the module information window, so modules holding a comment can be read.
The instrument tab is now hidden in sample info window if the playing module does not have any instruments.
Added new oscilloscope, which can show the sample data from the playing module in different ways.
Added Dolby Prologic surround support. A new mixer option has been added to enable/disable it.
Added two new options to control how the windows should act.
Changed the character encoder for PC formats from IBM 850 to IBM 865.
Updated the "New version" dialog, so it now shows this history list instead of an url.
Improved the help window, so it now shows the documentation in an embedded browser.
Added these new module formats: FastTracker II, Composer 669, Unis 669, Digital Sound and Music Interface (DSMI), Asylum, Digital Sound Interface Kit (DSIK), Farandole Composer, General DigiMusic, Imago Orpheus, Impulse Tracker, Scream Tracker 2, Scream Tracker 3, Scream Tracker Music Interface Kit (STMIK), UltraTracker, Unimod (MikMod) and Unreal Music File.
Supported file extensions are now associated with NostalgicPlayer, so it is possible to double-click module files to open them.
Added new options tab in the settings window. This comes with a lot of new options to play with.
Added the swap speakers option in the mixer settings.
Some MP3 files was wrongly detected as SoundTracker modules. Improved the detection function.
For new installations, the "new version" dialog will not be shown anymore.
Improved error message when failing to initialize a module, so it includes the exception message.
The total time in main window can now include days if needed.
Fixed High DPI settings, so the window/controls is not too small on a high DPI monitor.
You can now play along with your favorite module in the sample information window. Just select a sample and play on the keyboard.
It is possible to save samples from a module in the sample information window.
Added setting to the CoreAudio output agent, so you can select which device to use for playing.
Totally rewrote the time calculation in ModTracker. It could not handle when a module was playing a pattern backwards, like "Ode to Protracker.mod". Note that the module was played correctly, it was only the calculated length of the module that was wrong.
Setting speed to 0 was not handled correctly for all module types in ModTracker, e.g. "Angie S.mod" at position 27.
Added the sample player interface + created the new sample player. This player uses the sample converters available, so there has also been made a sample loader interface for that.
Disabling of agents didn't work properly in different parts of NostalgicPlayer.
Added these new sample formats: RIFF-WAVE (PCM), RIFF-WAVE (IEEE Float), RIFF-WAVE (ADPCM), IFF-8SVX (PCM), IFF-8SVX (Fibonacci), IFF-16SV (PCM) and AudioIFF.
Added these new module formats: Future Composer 1.0 - 1.3 and Future Composer 1.4.