You introduced a new modplugin named foo_dumb. I gave it a test run against foo_mod right away (just downloaded latest version 9.9.2004).In comparison its soundoutput is not as clear as foo_mod utilizing bass.dll. It sounds softer, as if there's some textile between the speakers andyour ears. Also i found the .it-format support not as "balls on accurate" like provided with the bass.dll. I uploaded a file named Chris35b.it todemonstrate this. At start of the second order (after ~8 sec. playtime) you'll hear a ~hiss~ sound which is intended to be there but foo_dumbputs it too much into the foreground so that it sounds anoyingly wrong. Please also check foo_dumb with uploaded 303.it. It loses so much qualityagainst replaying with foo_mod.

Second file in the upload named F0x-Test.xm fails to be loaded with foo_dumb. It features some weird special undocumented Fasttracker tricks.It does sound very uncommon but it is a very good test file i guess. Once Xmplay had problems with this file too, until i send it to Ian (Xmplay author)so he was able and kind enough to fix it.

Visiting DUMB's homepage and checking its CVS on sourceforge it seems that the project came to halt since a very long time. Is that correct?If so i hope you can maintain and fix the code for your plugin if necessary.Btw., everytime you update one of your plugins i wonder what has changed. Recently you updated foo_mod (my favorite plugin) and foo_dumbquite often though their version number did'nt change. Maybe you can put a little file_id.diz or readme.txt along with the plugin mentioning thechanges if its not too much to ask for?

One suggestion/question please: (don't beat me for asking this) ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻI don't know if bass.dll/dumb library provides necessary data but is it possible to have pattern view like in Xmplay?

Edited 18-10-2004: Downloadlink as a service for new threadvisitors.Download latest version of Foo_Dumb

Chris35b.it doesn't sound much different from BASS, at least when both are using no interpolation. Similar for 303.it. You might want to make sure you are using the correct module decoder for each decoding run and test, as follows:

Close Foobar2000.

Remove the module decoder you are not using.

Install the one you wish to test.

Open Foobar2000.

Reset the configuration for the module decoder you wish to decode with. Note they both have different configuration pages, DUMB module decoder and Module decoder.

For simplicity in repeat testing, use the diskwriter to convert the output of both separate decoders to floating point WAV files, either manually naming the output for each test, or renaming the output file between conversions. Then, import both WAV files and apply ReplayGain track gain to them.

As for F0x-Test.xm, it breaks because of something simple I implemented to make backward.s3m work. Basically, F0x-Test.xm loops infinitely by pattern break-to-row effect, which causes DUMB's length calculation to loop indefinitely. The only way to fix this would be to correctly implement a system in DUMB so that it logs every pattern/row it plays and triggers the loop callback whenever it hits a row it has already played. I'll work on this later. (This is probably what XMPlay/BASS already do.)

Live pattern display, or even simple effects display lights similar to what mod4win features would have to be implemented as a Visualization component for realtime display, or at least to log the output lag. Parsing the pattern data into a visible display would be a lot more complicated. I'll think about it, maybe.

Chris35b.it doesn't sound much different from BASS, at least when both are using no interpolation. Similar for 303.it. You might want to make sure you are using the correct module decoder for each 5decoding run and test, as follows...

I don't have both plugins installed at the same time or mix them up. For testing i make a copy of the foobar2000 folder to a different place, remove foo_modand copy foo_dumb into components folder, than start up that copy and uncheck interpolation in foo_dumb settings of course.This way i have two copies of foobar running at the same time, one is playing back while the other is on halt untill i switch with taskmanager.During playback i open foobars preferences [Ctrl-P] to doublecheck which modplugin is currently in use.

QUOTE

Basically, F0x-Test.xm loops infinitely by pattern break-to-row effect, which causes DUMB's length calculation to loop indefinitely. The only way to fix this would be to correctly implement a system in DUMB so that it logs every pattern/row it plays and triggers the loop callback whenever it hits a row it has already played. I'll work on this later. (This is probably what XMPlay/BASS already do.)

You're right. That was the main problem with Xmplay, too. Back then i had to enable autoloop to have xmplay replay the file and not to skip over it.

QUOTE

Live pattern display, or even simple effects display lights similar to what mod4win features would have to be implemented as a Visualization component for realtime display, or at least to log the output lag. Parsing the pattern data into a visible display would be a lot more complicated. I'll think about it, maybe.

I'm interested in pattern view like in the good old DOS trackers. It's implemented in Xmplay since quiet some time now, that's whyi wondered if the requiered data is accessable through bass.dll, too.

Fixed infinite running / load-time lock from pattern breaks in a way that works with backward.s3m, which also sort-of fixes F0x-test.xm. F0x-test.xm sort of doesn't run properly after looping. I will probably investigate this further, a little later.

Implemented IT S7x effect for per-note NNA and envelope commands. Chris38b.it and Chris17b.it were noticeably broken without this.

Implemented IT NNA duplicate checking. See above.

Silly me, the thought hadn't occurred to me that I should run two instances. It's nothing new, just something I haven't done for a while. Oh well.

Checked new version, .it-format replay is noticable improved. I was able to drop some testfiles that i had prepared for upload.However, there remain to files you might want to have a look at, again beeing .it-format. You can find them in the upload section.

I guess you don't hear the differences as much like me because:- i'm very familiar with the testfiles, i have them since many years- different sound gear, hence different output result- different opinion on what sounds ok, what not- maybe different quality of hearing? (thats not ment as an offend)- different taste of music

I uploaded another file were the differences should be easier to spot, i hope.

Chris50b.it <-(direct download link)Notice the voice at the beginning shouting: "somebody scream". It sounds damped with foo_dumb. Foo_mod outputs it very clear.Forward to ~55 sec playtime. A Guitar, distorted with resonant filters, plays in the foreground. Replay is more detailed, richer with foo_mod.

Chris50b.it <-(direct download link)Notice the voice at the beginning shouting: "somebody scream". It sounds damped with foo_dumb. Foo_mod outputs it very clear.Forward to ~55 sec playtime. A Guitar, distorted with resonant filters, plays in the foreground. Replay is more detailed, richer with foo_mod.

The first time that sample is played, it is combined with an embedded MIDI macro which sets the cutoff level to 64. (range 0-127) It sounds the same in both BASS and ModPlug Tracker, but DUMB's output sounds more like Impulse Tracker itself when it is equipped with a filter capable output driver. Maybe BASS doesn't support embedded MIDI macros properly. (The sample is played three times throughout the whole module, and the cutoff level is only ~50% the first time. I can send you a short sample generated by IT2.14's mono-only diskwriter.)

EDIT: Actually, with the correct S7x instrument control implemented, DUMB sounds identical to Impulse tracker with a filtering output driver, right down to the volume level. Of course, IT only outputs integer samples in the 16-bit range, so you don't have the advantage of ReplayGain scanning and correction with optional peak limiting. Without the S7x, the only real difference is six notes where it overrides the new note action to cut. (Two in pattern 41, two in 4, and two in 7. Pattern 41, which happens to be the first in the order list, also uses normal note cut, S70 background voice cut, M40 channel volume reset, and MIDI macros to reset the filter cutoff and resonance at the start. Not just for initialization, it also assumes the player/tracker will need resetting on repetition, I think.)

QUOTE

Please comment on my update info request, will you?

I'll think of a way to automate update information, but I won't be including it in the ZIP files. (Well, I might. I'm not so sure everyone wants extra text files in the downloads, especially people who use them to assemble installers.) Something else for me to think about.

...DUMB's output sounds more like Impulse Tracker itself when it is equipped with a filter capable output driver. ...I can send you a short sample generated by IT2.14's mono-only diskwriter.)

Yes, you're right. I did a diskwriter test on my own, thank you. I also checked a diskwriting of 303.it. IT and Foo_Dumb replays itwithout any clipping in opposite to Xmplay. I'm convinced now that foo_dumbs .it support is closer to the original than foo_mod. Very good.

Btw., how/what system are you running IT/Diskwriter? I cannot find a way to setup EMS for IT (IT does'nt accept XMS).I tried everything (Properties; editing config.nt to load EMS), no success. Solved it using DOSBox-Driver v.6.1, but it's very slowthough soundprocessing is'nt in use when diskwriting.My Gear: WinXP Pro, Nforce2, 512MB, AMD Barton 2600, Terratec Aureon Space

Uploaded a new set of files, which i found to cause errors with foo_dumb.foo_dumb Testfiles 3 <- (direct download)

.it:Moonlit.it = clipping, flutesound at the starts3m:Bdp-Koro.s3m = mono s3m, wrong panning, left instead middle, seems to be the case for every mono .s3m i testedBudda.s3m = loadfailure, it's converted from .far-format, no foobar error availableStrshine.s3m = loadfailure, ditoPhazer.s3m = clicking, first orders, IT does the same, FT2 & XMPLAY play without clicksSatell.s3m = clipping, start area.xm:Jt_Smily.xm = clipping, noticable from startMr_Lazy.xm = wrong initial panning, too much to the right, i have one more such .xmWhisper.xm = drum ~snare effect~ missing, FT2 and XMPLY plays them

I recognized that the Codec field is left empty when replaying .mod/.xm/.s3m. Additionally, foo_dumb does'nt reportchannel numbers for .mod-files properly.

Will foo_dumb support .mtm format?Looking forward for next release. I plan to switch to foo_dumb when the last issues can be sorted out (hopefully).

[/quote]DOSBox 0.61+ CVS build, dated 2004-Sep-07, from here. Yes, it is annoyingly slow. The SB16 and GUS drivers are acceptable, but lacking the resonant filters.

[quote]Moonlit.it = clipping, flutesound at the start

[/quote]I'm not sure if you mean the fact that the flute sound is a bit scrapy or not. It seems to sound the same in IT as well. As for clipping, ReplayGain scan your files before playing. This one definitely clips. I implemented sample vibrato waveform, as well as channel vibrato and tremolo waveform commands. Panbrello is still unimplemented, but probably not used by this module.

[quote]Bdp-Koro.s3m = mono s3m, wrong panning, left instead middle, seems to be the case for every mono .s3m i tested

[/quote]Fixed checking the mono bit in the master volume in S3M files, and also handling mono IT files. S3M master volume is not used at all due to how it is intended to affect the output mix level compared to the master volume in Impulse Tracker modules, supposedly. ModPlug just treats this value the same as IT master volume, yet the two appear to have a different effect on the output volume. I will have to investigate this further, later.

[/quote]The empty patterns in the file do not contain enough valid data. I've "corrected" this with a bit of a hack that will fill the rest with empty rows in this case. (I can't verify the length field for sure, as ST3 itself seems to have included the length in this field, while both this file and Aryx.s3m do not include the length field in the total length.)

[quote]Strshine.s3m = loadfailure, dito

[/quote]This file failed to load because it was missing a EOF character (0x1A) after the song title. The tracker version field also indicates that it was written by ScreamTracker v3.00, so that may not have been a part of the format yet. Hackfixed for now, though I may make it stricter so it only allows this with older tracker versions.

[quote]Phazer.s3m = clicking, first orders, IT does the same, FT2 & XMPLAY play without clicks

[/quote]This is a matter of FT2 and XMPlay using volume ramping, while DUMB employs only simple declicking. This will be a more complicated feature to implement.

[quote]Satell.s3m = clipping, start area

[/quote]This can probably be corrected by actually handling the master volume, but I'm not so sure treating it the same as IT master volume would be accurate to ST3's software mixer.

[quote]Jt_Smily.xm = clipping, noticable from start

[/quote]According to the console, clipping does not occur until the bass/rhythm kick in. Once again, ReplayGain scan your files. A gain offset of -6dB for unscanned files doesn't hurt, either.

[quote]Mr_Lazy.xm = wrong initial panning, too much to the right, i have one more such .xm

[/quote]Didn't know to fix XM panning slide effect translation after correcting the panning direction for IT/S3M/etc in the renderer.

[/quote]Aha! I forgot to adjust DUMB's MOD loader to report the channel information, so it was just getting uninitialized data, possibly 0 in release builds, so it wouldn't report at all. Fixed.

The vibrato/tremolo wave tables for sawtooth and square waves were already in the code, only defined out and unused. I'm not sure if vibrato or tremolo commands affect background voices, or if changing the wave type for a channel is supposed to affect background voices. Oh well.

I'll have to get to panbrello and possibly volume ramping later, as they will both be rather complicated. So far, not a bad job, though.

[quote]Will foo_dumb support .mtm format?

[/quote]I could add this, but for now, you can convert MTMs to smaller files with Impulse Tracker. This would also be another significant effort, although I think implementing all of the effects should be a higher priority.

[quote]Thanks in advance, deus-ex.

[/quote]No problem. Although, these missing features are really starting to get annoying. Here, and I thought I had a decent, semi-object-oriented module renderer, and then it keeps throwing me these curve balls. I'll mold this thing yet. (And/or help perfect BASS/XMPlay with differences that turn out to be Ian's problem. )

Not accessasble because of a 'two posting' rule which i find to be dumb. (Spamming nonsense to get download privilege?)

QUOTE

As for clipping, ReplayGain scan your files before playing.

I don't need that for foo_mod, but i'll give it a shot and report back.

QUOTE

The tracker version field also indicates that it was written by ScreamTracker v3.00, so that may not have been a part of the format yet.

Strshine.s3m was written by Purple Motion, a famous member of the PC demogroup Future Crew which invented Scream Tracker2/3 and the .stm/.s3m-formats.

QUOTE

...volume ramping... , ...DUMB employs only simple declicking.

That should definetly be implemented, preferable as a toggle in the options dialog.

QUOTE

Didn't know to fix XM panning slide effect translation after correcting the panning direction for IT/S3M/etc in the renderer.

So it's fixed now?

QUOTE

I could add this, but for now, you can convert MTMs to smaller files with Impulse Tracker.

I do not recommend doing so. Once i used to convert every .mod/..mtm/.s3m-file to .it-format to save space and believed to haveimprovements in how they sound beeing in .it-format. But i learnd that they sounded different compared to the originals so i switched back to them.

QUOTE

Whisper.xm... I seem to hear a snare drum effect, at which time offset is this effect most noticeable?

Please check these samples of the file Whisper.xm. The whole file was converted both with foo_mod and foo_dumb to WAV (PCM, fixed-point).A ~15 sec. sample of each was saved using Audacity and then converted to OGG (Megamix II, quality 7.5) to save bandwidth.Whisper.xm is a so called 'chip module'. You'll recognize that the chip-drums are replayed differently by the two plugins.Foo_Mod's output is closer to (same as) the original Fasttracker2.

I came across another .xm file, Sweetsin.xm, which fails to load with foo_dumb.

Are you going to upload an update of foo_dumb with the allready implemented fixes?

I might as well join the party and point out that DUMB doesn't support IT envelope carry. IIRC, DUMB destroys the channel object with the note information every time a note ends, so it might be annoying to implement in situations where the new note action is a note cut.

Also, DUMB doesn't wrap really long XM portamentos around, but then I haven't found anything other than BASS and FT2 that does and I don't know any of the specifics of how it's supposed to be done.

[quote=deus-ex,Sep 12 2004, 06:25 AM][quote=kode54,Sep 12 2004, 04:29 AM]DOSBox 0.61+ CVS build, dated 2004-Sep-07...[/quote]Not accessasble because of a 'two posting' rule which i find to be dumb. (Spamming nonsense to get download privilege?)[/quote]Actually, it is quite dumb, but maybe he's desperate to see people participate in his forum, perhaps give feedback there on his changes and/or bug reports. Reciprocation or something, I don't know. I managed to make five whole posts the first time I needed a binary, now I help a random friend or two by using my access to share the binaries.

[quote][quote]As for clipping, ReplayGain scan your files before playing.[/quote]I don't need that for foo_mod, but i'll give it a shot and report back.[/quote]Actually, foo_mod can clip as well, but its relative volume level is much lower. Unlike XMPlay/BASS integer output modes, BASS' floating point mode does not perform clipping, so you may actually notice some peaks at or just over 1.0, or sometimes even louder. It all depends.

[quote][quote]The tracker version field also indicates that it was written by ScreamTracker v3.00, so that may not have been a part of the format yet.[/quote]Strshine.s3m was written by Purple Motion, a famous member of the PC demogroup Future Crew which invented Scream Tracker2/3 and the .stm/.s3m-formats.[/quote]Yes, I know that. As I was suggesting, the format might have been in its infancy, at which point they had not decided that there should be a text EOF character after the song name. DUMB actually required that, but I changed it so it would also accept a null byte there. I also said I might change it so it only allows non-EOF on old version numbers, say < 3.05 or so. I'd have to look around for the oldest published S3M specification to see if it has always required 0x1A after the name, so I can just enforce the check for at least that tracker version.

[quote][quote]...volume ramping... , ...DUMB employs only simple declicking.[/quote]That should definetly be implemented, preferable as a toggle in the options dialog.[/quote]Sure, but it will be more complicated than the current declicker. I'll have to see if it'd be much different from a more advanced implementation of the current declicker. I can also make it optional.

[quote][quote]Didn't know to fix XM panning slide effect translation after correcting the panning direction for IT/S3M/etc in the renderer.[/quote]So it's fixed now?[/quote]It is, as of 0.9.2.3, which I forgot to upload yesterday. :B

[quote][quote]I could add this, but for now, you can convert MTMs to smaller files with Impulse Tracker.[/quote]I do not recommend doing so. Once i used to convert every .mod/..mtm/.s3m-file to .it-format to save space and believed to haveimprovements in how they sound beeing in .it-format. But i learnd that they sounded different compared to the originals so i switched back to them.

[/quote]Yes, there are some differences. Even if I do make a MTM loader, it will basically be translating the effects over to IT effects, and flagging where certain things such as arpeggio and note retrigger should act different. It may be a little more complicated, such as it already is in the XM implementation, which also has its own note and envelope handling in the renderer.

The problem with direct translation is that not every effect behaves the same in each of these formats. A fine example is the (multi)retrigger effect, which is invoked the same in both IT and XM (Qxy/Rxy) but behaves differently. ModPlug Tracker still treats Whisper.xm the same when it is converted to IT, but it sounds different in XMPlay.

[quote][quote]Whisper.xm... I seem to hear a snare drum effect, at which time offset is this effect most noticeable?[/quote]Please check these samples of the file Whisper.xm. The whole file was converted both with foo_mod and foo_dumb to WAV (PCM, fixed-point).A ~15 sec. sample of each was saved using Audacity and then converted to OGG (Megamix II, quality 7.5) to save bandwidth.Whisper.xm is a so called 'chip module'. You'll recognize that the chip-drums are replayed differently by the two plugins.Foo_Mod's output is closer to (same as) the original Fasttracker2.

[/quote]This was a problem with the retrigger effect not accounting for samples/instruments that manage to finish playing within the retrigger interval. It was only resetting the sample position if a sample was currently playing, but not retriggering a note if one was not already playing.

[quote]I came across another .xm file, Sweetsin.xm, which fails to load with foo_dumb.

[/quote]Whee, a bug in my pattern break fix, where pattern repeat would clear the played rows array. It should only have cleared parts of that array when repeating, but it also cleared it when exiting the pattern repeat, so a case like this where the song has a pattern repeat in the first order would loop endlessly.

[quote]Are you going to upload an update of foo_dumb with the allready implemented fixes?

[/quote]Already done.

[quote=bleh,Sep 12 2004, 10:03 AM]I might as well join the party and point out that DUMB doesn't support IT envelope carry. IIRC, DUMB destroys the channel object with the note information every time a note ends, so it might be annoying to implement in situations where the new note action is a note cut.

[/quote]Already taken care of, except for a minor bug where I was checking the previous note's instrument on a new note, even when the current module was not using IT instrument mode.

[quote]Also, DUMB doesn't wrap really long XM portamentos around, but then I haven't found anything other than BASS and FT2 that does and I don't know any of the specifics of how it's supposed to be done.

[/quote]I will investigate this if you provide me with an example file. (Or, I can make one myself.)

Uploaded v0.9.2.4.

Quick bugfix for the additions I made for envelope carry that would cause other module formats to crash.

Fixed retriggering on really short notes and samples, restricted to XM format since Impulse Tracker doesn't seem to behave this way. (Also consistent with BASS/XMPlay behavior.)

...now I help a random friend or two by using my access to share the binaries.

Would you mind to share your access with me?

In the Dosbox forums you pointed me to someone requested permission to offer an alternate download access for the current DosboxCVS compile(for an LittleBigAdventure2 game fansite) which he was granted. But now the link points to the official release again only. In conclusion it seems tobe allowed to offer them for downloading on alternate sites.

QUOTE

Actually, foo_mod can clip as well, but its relative volume level is much lower. Unlike XMPlay/BASS integer output modes, BASS' floating point mode does not perform clipping, so you may actually notice some peaks at or just over 1.0, or sometimes even louder. It all depends.

I played around with replaygain. Basically its an automated volumecontroll, right? It does'nt get any better with than without. It turns out thatthe files that i named to 'clipp' might be fixed with volumeramping. Thats hopefully left to be seen with future releases of foo_dumb.

QUOTE

I'd have to look around for the oldest published S3M specification to see if it has always required 0x1A after the name, so I can just enforce the check for at least that tracker version.

I only came across two releases of ST3, v3.01beta and v3.21. Though there must have exist a v3.2 release according to the v3.21 documentation.

Okay, envelope carry is cool now in the quick example I threw together, but I found a module that happens to use envelope carry lying around on my hard drive that crashes with the present version of foo_dumb. Unfortunately, like an idiot, I overwrote my old foo_dumb plugin and hence can't test whether the new changes caused the crash. See the upload thread to get the file.

As for the weird XM portamento wraparound, I first noticed it in this module (module comments not safe for work; portamento starts around 3:16 and wraps around 3:28). I could throw together a less cluttered test case in Modplug if you want, but it's not something too hard to do; just make a REALLY long portamento and you should hear it.

Okay, envelope carry is cool now in the quick example I threw together, but I found a module that happens to use envelope carry lying around on my hard drive that crashes with the present version of foo_dumb. Unfortunately, like an idiot, I overwrote my old foo_dumb plugin and hence can't test whether the new changes caused the crash. See the upload thread to get the file.

This crash was because I was using an idiotic method to hang on to envelope status in a certain function. Now it copies the envelope info it needs to temporary variables allocated in the function stack frame, so it doesn't have to worry about cases where the voice state it copies from is freed.

QUOTE

As for the weird XM portamento wraparound, I first noticed it in this module (module comments not safe for work; portamento starts around 3:16 and wraps around 3:28). I could throw together a less cluttered test case in Modplug if you want, but it's not something too hard to do; just make a REALLY long portamento and you should hear it.

I will investigate this.

Uploaded v0.9.2.5.

Fixed a crash resulting from unsafe envelope carry handling.

Implemented incomplete PTM support. Here there be bugs, which I will try to fix.

1. Cool, the crash is fixed on my system as well.2. The Impulse Tracker diskwriter seems to work okay for me with DosBox 0.61, which does have a binary posted at dosbox.sf.net, so the CVS build may or may not be necessary.3. deus-ex, did you try scanning sevensea.it with Replaygain before playing it? The brass sounds okay to me, but it clips badly without Replaygain.

Whoa, I'm sorry, I've been listening with interpolation turned on, but you haven't. That changes everything - the tuba sample in sevensea.it is awful once you turn interpolation off, like the sample is completely mis-looped. Having looping depend on interpolation mode doesn't make sense, though... I wonder if it's the DUMB click removal.

Corrected PTM note cut effect to behave the same as XM, where volume is set to 0 instead of actually cutting the note.

Corrected aliased resampler's handling of 16-bit samples. It was overflowing and wrapping around on loud samples and/or high volume levels.

Uploaded v0.9.2.7.

Added a context menu item that allows you to change the starting order for a single module in the playlist, or dupe a new playlist entry for the selected module starting on the chosen order. Now you can get the most out of multi-song modules.

Unfortunately, this will not work so well with APE tagging, so this means I will have to come up with some sort of multi-subsong tag format.

I could also implement the context menu control in foo_mod, and it will start on the selected order, but length and seeking will be broken, as I cannot make BASS regenerate the seek table from the selected order.

...now I help a random friend or two by using my access to share the binaries.

Would you mind to share your access with me?

In the Dosbox forums you pointed me to someone requested permission to offer an alternate download access for the current DosboxCVS compile(for an LittleBigAdventure2 game fansite) which he was granted. But now the link points to the official release again only. In conclusion it seems tobe allowed to offer them for downloading on alternate sites.

Errm... well, still have no response on that one.

QUOTE

Uploaded v0.9.2.7.Added a context menu item that allows you to change the starting order for a single module in the playlist, or dupe a new playlist entry for the selected module starting on the chosen order. Now you can get the most out of multi-song modules.

Wowww, thats one feature. I was going to ask you for possible implementation of this. It's a pity bass.dll makes it that difficult since Xmplay has subsong feature very well integrated including proper subsong infodisplay.

Suggestions for foo_dumb:ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ-Another good feature of Xmplay is so called Trimming which abbandons empty patterns/silence in modules for playback.-Detect/Catch adlib .s3m's to prevent loading as they stall the plugin and foobar with it. If you need example .s3m's, i have all existing ones.