Regarding the "subsongtime adds mainsongtime", for reference i use XMP.Ian's approach on subsongs seems to be to count just the Orders/Patterns which are outside the main song orderbody. I reported them to make sure there are no unwanted issues left.

Hopefully you get around to implement .mtm support (and maybe other formats you were allready sitting on). Is there room for speed optimizations? If not, i still definetly go for quality than for speed, i.e. i keep foo_dumb over foo_mod for sure.

Regarding the "subsongtime adds mainsongtime", for reference i use XMP.Ian's approach on subsongs seems to be to count just the Orders/Patterns which are outside the main song orderbody. I reported them to make sure there are no unwanted issues left.

Aha. My subsong approach does the same when looking for starting points, but it doesn't bar a particular subsong from actually executing a pattern jump to a region played by another subsong. A few cases did involve patterns/orders which were designed to be played alone, and either worked OK with my first fix because they were surrounded by end markers, or worked OK now because of the restart hacking. The only case I saw that really needed this was the end pattern habit avec rudolf.mod, which appeared to be constructed to play alone, then stop. Forcing restart position to match requested start makes sure this doesn't play the whole song.

Thanks for reporting, though. Many of these issues were really stupid bugs and would be sure to annoy users. At least unwanted subsongs can be adjusted and/or deleted from the playlist. The scanning only occurs if you add the files directly, so you can save your favorite order references in a FPL and not worry about info reload or losing ReplayGain information in the event of database explodey or migrating playlist to another installation. (Meh, paths may change, but if only the drive changes, you can hexedit search/replace the x:\ in the paths, it shouldn't cause much trouble, but always remember to keep backups. )

QUOTE

Hopefully you get around to implement .mtm support (and maybe other formats you were allready sitting on). Is there room for speed optimizations? If not, i still definetly go for quality than for speed, i.e. i keep foo_dumb over foo_mod for sure.

There may be some minor room, if the way it handles the mixing list for effective channel limiting is any real slowdown. Basically, it collects all playing voices and their effective calculated channel/note volume into a big array of voice state ptr / volume. Then it qsorts this array so the loudest voices are first. Then it mixes, decreasing a copy of the limit count until it reaches zero. This is a bit buggy as it still performs resonant filtering even when it passes the configured limit.

I've also found that spx-Bubbles.it definitely hits this limit, and the current NNA logic ends up cutting current notes instead of dropping old voices when there's no more room.

I'll be taking a recess as I catch some much needed sleep for the next 12 hours or so, then I may also be taking a short break from the project "tomorrow." Basically, I'll probably pick it up some time after I wake up, or at least within a day or two, unless you find more bugs for me to squash.

Planned work includes MTM support, old PSM support, and maybe some more exotic formats that may be easy to support, such as DSMI AMF. Thanks for offering that tracker, I will contact you if I cannot acquire it from the author's site. I would also be interested in any songs actually released in the Orpheus IMG format.

As for Asylum AMF format, I've heard from a friend that the music files are not widely available in the AMF format, but I may try to support it.

Planned experiments include changing the max NNA voices macro to allow for 448 instead of 192, for a total of 512 voices, just to see how far spx-Bubbles.it stretches DUMB. There may be a problem with leaking voices on NNA duplicate checks, I'm not sure. At any rate, making random pieces of code deal with up to 448 NNA voices or 512 total voices is bound to make things slower. If not the mixing when things creep that high, then the various loops that have to scan over the entire array of voice state pointers, as all non-zero pointers are running voices and all others are free slots. Probably not optimal, but certainly "functional." Maybe it is aptly named DUMB.

If OCP can read it, it shouldn't be too hard to implement an archive reader for it. Naturally, since this BPA contains multiple S3M files, the BPA handler will be implemented as an archive handler, similar to ZIP/RAR/7z support.

I've also found that spx-Bubbles.it definitely hits this limit, and the current NNA logic ends up cutting current notes instead of dropping old voices when there's no more room.

Yeah, spx-Bubbles.it is a real bitch taking looong time to load/initialize. Thats why i wondered if foo_dumb code can be further optimized towards speed when it reaches a mature state. One idea which came to my mind is to subsongscan a file only when its being played (mainsong), maybe as an optiontoggle.

QUOTE

Planned work includes MTM support, old PSM support, and maybe some more exotic formats that may be easy to support, such as DSMI AMF. Thanks for offering that tracker, I will contact you if I cannot acquire it from the author's site. I would also be interested in any songs actually released in the Orpheus IMG format.

Typo on my side, its Orpheus .imf. You'll find only one example song in the distribution. I have a few more which were accessable through Karsten Koch's site once, now there are removed.

QUOTE

As for Asylum AMF format, I've heard from a friend that the music files are not widely available in the AMF format, but I may try to support it.

Asylum AMF-format beeing not widely available is true. I was able to convert them to .mod using the ol' Modplug Player, result is rather good. So i guessed since Modplug went opensource plus your skills plus the stuff from my side it's worth a try. I understand you are aware that DSMI AMF and Cru's Asylum AMF is NOT the same.

QUOTE

If OCP can read it, it shouldn't be too hard to implement an archive reader for it. Naturally, since this BPA contains multiple S3M files, the BPA handler will be implemented as an archive handler, similar to ZIP/RAR/7z support.

The extracted .s3m files are accessable through a site dedicated to archiving mod-files. Look for "Purple Motion" there. Speaking of archive handler, if you manage to get it running please add an "save to .s3m" option, too.

QUOTE

Hopefully, the author's site, which I visited recently, proves to have live downloads. If not, I will ask. Again, some actual released IMG files may prove interesting.

Yes, they are accessable. I'll send you the .imf files. Please also check Astaris (kk).xm. It's a converted .imf file that was made with an unreleased version of Orpheus (v1.5) that sports .xm-format saving, v1.0 only allows to save to .imf, .mod and .s3m. Original .imf 16-bit version is included in the mail.

could you indicate a place where I could download the last version of your nice component ? the last one I have is the one you've attached in the upload section of this board - can't get it thru your website since it's down

MOD/XM S8x set panning effect, assuming at least MOD should support this. Let me know if this is incorrect, and I'll restrict it to MTM.

Fixed IT file info for UMX archives. This has been broken since I moved the generic module loading code to a global function so I wouldn't be duplicating so much code in the subsong scanner.

In 0.9.2.12, I removed length probing from most of the module readers, since the component front-end does its own probing anyway, and only when the player core caches the file info. I accidentally missed the IT reader. IT loading is fast "like woah" now.

Yahoo, quick changes. Uploaded v0.9.3.1.

There may have been a bug with finetune effect being doubled, this may be fixed now. Maybe I'll use ProTracker to make a test module and see how it sounds vs. DUMB...

Implemented glissando. I hope this is correct.

Implemented PTM note slides. This completes PTM support, and fixes abno*.ptm and perfect*.ptm. (Names may vary slightly. Yes, two whole files that I know of. Most obvious, ~1:09 into abnormality, or at order 6, pattern 4, rows 24-25, 28-29, and 56-57.)

Found the issue by pure chance as i redownloaded the Impulsetracker distribution from Jeffreys recently updated site to make sure i have the latest release. Surprisingly It.exe of the distribution is of an older date than the one i downloaded from the official site some years ago, current package has a copyright from 1995-1998 in the titlestring, mine is 1995-1999. Hmmm...

----------------------------

Please enhance the options menu so that every single dynamic info can be toggled separately and having the "display dynamic info" switch on top as a global toggle for the userdefinable level of dynamic info. Though i like to see Order/Channel info, the row info eats a lot of cpu cycles. When toying around with bleh's foo_vis_bacon i got serious performance drops which are solved when switching off foo_dumbs dynamic info.

Removed part of my last NNA changes. The real problem was with temporary NNA change effects not being removed from their respective channels properly, so some notes were hanging. The incorrect fix was the assumption that channel volume should affect NNA voices. This caused several sounds to be too loud in the above modules, and probably others.

Fixed glissando control, it was turning the effect on no matter what the effect value was.

Rewrote MTM comment reader. The previous iteration had some glaring faults and led to heap corruption. Fixes Time Bomb!.mtm, Geometric Shadows.mtm, and possibly others where corruption did not manifest as crashes.

Ok, .mtm crashes sorted. All the .mtm's of my collection (only a few) load and play fine.

Btw., remember the ADLIB .s3m stuff? In_Adlib v1.6 is now available. The Winamp Input Wrapper was updated too.The Author of the "Winamp Input Wrapper" also offers a native Foo_Adplug component which was (guess what) also updated to v1.03.

Adplug now detects ADLIB .s3m's and grabs them for playback and doesn't interfer with normal .s3m's. The rename trick i used to do isn't neccessary anymore.

Adplug now detects ADLIB .s3m's and grabs them for playback and doesn't interfer with normal .s3m's. The rename trick i used to do isn't neccessary anymore.

Very convenient. This works hand in hand with foo_dumb rejecting the Adlib S3M files.

I may yet add support for this, although it would require some changes to how the renderer system works, basically channels sending register data to emulated adlib every tick where applicable, then sample render functions advancing and mixing FM samples into the output. Of course, there is the problem of mixing it into the system without interfering with the existing system, without adding extra overhead to non-FM songs, and dealing with relative FM volume.

I recommend to use In_Adlib.dll along with the Winamp_Input_Wrapper. The native Foobar plugin only offers setting up mixing rate and a .s3m-file detection toggle. It is missing In_Adlib's soundcard and opl-emulation setup, you can't choose between the two opl-emulators and it doesn't offer the configurable extension handling.

One drawback of that is that Foo_Adplug grabs and plays .d00/.d01 (Edlib) files regardless off the installed In_D00 plugin which is specialized in that format and sounds so much better. Second Foo_Adplug fails to play .laa-files (Lucas Arts Audio) while In_adlib/Winamp_Input_Wrapper works flawless. Third it always sets subsong index to 1 for every file when there is no subsong. Fourth it doesn't provide access to existing subsongs. Meh...

And now to something completely different...

A few more issues spotted, mainly .it-format:Chris37.it : Order 04, Channel 07/08, Panning to the left, should be to the rightChris47.it : Order 00, Channel 04, Bass sample played to long (though i think it does sound good in this particular example)Cjembrac.it : Order 00, Channel 17/18, Panning to much on the left, should be more to the rightCj-Purg1.it : Order 02, Channel 01, Snare sample sounds to hard. (caused by the sampling accuracy of the dumb library? Or because of missing volumeramping?)Cj-Purg2.it : Order 00, Channel 05, Piano sample played to long (best heard when Piano plays for the second time after ~8 sec.)4sw.it : Order 00, Channel 01(/02/03), Piano sample should be panning from right to left and back continously(with IT the initial panningslider startposition for Channel 01 seems to be different at every songrestart, restart the song a few times and watch the slider on the right)As_Dtd.it : Order 03, Channel 04, Drum sample to much on the middle (or stereo?), should be on the left (best heard when Drum Kick plays fot the third time at ~30 sec.)Jv-Mcml.it : Order 06, Channel 01-04, should continously Pan between left and rightF0x-Test.xm : Order 00, Channel 01, Row D0/DD/EA/F7 (FT2 rownumbering), effect played wrong

I just tested your new mod plug-in and it seems very good! Here some modules not playing with foo_dumb :

SONG3.MOD (maybe just a broken mod but it plays in winamp)

KINGDOM.MOD (this mod is in soundtracker 31 format and plays in winamp and xmplay)

16th intro.mod (if you play this file in deliplayer there is one hidden channel at the beginning (and the mod sounds much better) but it is not present in any other player)

SACRILEG.669 (don't play here but works in winamp)

Intro-Music.mod (it doesn't play well in foo_dumb (for example at 0min 41s))

and I have uploaded here all the mod2amf versions I have (this tool is the original to make conversion of .mod into .amf). Every version make a different .amf format (from version 0.8 to 1.4 If i remember correctly)

thoose files are in the upload section

And if you want I have more files in different formats that may interest you:669 (18 files)MTM (18 files)PTM (48 files)

and some files in currently unsupported format (but x-fixer added them easily in in_mod)

Implemented FT2 logarithmic vibrato. I hope this is correct. (F0x-Test.xm)

Implemented FT2 square and ramp waveforms. (F0x-Test.xm)

MOD/XM pattern breaks to rows greater than 63 break to row 0 instead. This is how FT2 behaves, but I haven't checked ProTracker. (F0x-Test.xm)

Sample offset is now excluded from effects which are continued during pattern delays. (F0x-Test.xm)

I'm not sure about As_Dtd.it. At the exact moment you indicate, channel 4 is panned to the center, but a different kick drum sound is being played on channels 5 and 6, which are almost hard panned left and right. On channel 6, this is combined with a sample offset effect. It sounds correct here. None of the above changes would affect this, as far as I can tell. Oh well.

[/quote]Why, yes, it is a broken file. Without the proper sample data, it doesn't even produce recognizable music. I would surmise that the patterns are broken as well, or my changes to DUMB's MOD loader would let it pass.

[quote]KINGDOM.MOD (this mod is in soundtracker 31 format and plays in winamp and xmplay)

[quote]16th intro.mod (if you play this file in deliplayer there is one hidden channel at the beginning (and the mod sounds much better) but it is not present in any other player)[/quote]Two years later, this file is still broken. It would appear that DeliPlayer behaves differently with the loop positions, but not much else.

In place of the original sample data, I can see the text from the intro it was ripped from. "Shadow of the 3rd Moon" "improved Version 1.1" From the sample names, I see it was ripped using ProWizard. Botched another one, I guess.

I managed to find a page with some of their intros/cracktros here, but it does not have the "improved Version 1.1" intro. What a surprise, this Prowizard for PC manages to trip up when ripping the music from the Shadow of the 3rd Moon intro on that site. The version built into WinUAE doesn't work at all.

A friend may be able to help if you can find the original intro. He is always looking for ways to rip the original modules out of various intros without using that piece of crap Prowizard. Of course, this mostly involves using other ripping tools, but they're usually not so flaky.

[quote]SACRILEG.669 (don't play here but works in winamp)

[/quote]Maybe I can fix the problem if you upload it.

[quote]Intro-Music.mod (it doesn't play well in foo_dumb (for example at 0min 41s))[/quote]I have fixed sample changes so they only change the sample and don't perform a full retrigger. This file still suffers a bit from the lack of volume ramping, but there's not much I can do about that right now.

[quote]and I have uploaded here all the mod2amf versions I have (this tool is the original to make conversion of .mod into .amf). Every version make a different .amf format (from version 0.8 to 1.4 If i remember correctly)

thoose files are in the upload section

[/quote]Interesting.

[quote]And if you want I have more files in different formats that may interest you:669 (18 files)MTM (18 files)PTM (48 files)

[/quote]I may be interested in the 669 or MTM files, just for the sake of boosting my collection. I also seem to be two PTMs shy of your collection, so I guess you could forward that my way as well. I'll mail you, and you can mailbomb me the files, unless you have a link to an archive where I can get them all.

Although, since PTM support is as close to documentation as possible, and MTM support should be perfect since the resulting patterns behaved mostly like MOD, the only thing I may really need is the 669 files. Let me know of anything that is broken compared to the respective trackers. Please, no third party players for reference.

You may be able to dig up a copy of MultiTracker for MTM, I'm not sure about 669. There is PolyPlayer for PTM, which you may find on some FTP archives. You should be able to get them working in DOSBox.

[quote]and some files in currently unsupported format (but x-fixer added them easily in in_mod)

Thanks for all those detailled infos and the quick fix.And sorry for SACRILEG.669 I forgot to put it in the archive.I already know dosbox I tried it some time ago but it's a little complicated to make it work correctly with some trackers, i'll try again later.

I have made a 7z archive (a little big : 15,5 Mo) with all the files you want and sacrileg.669.

My friend just checked 16th intro.mod, the first "sample" is silent in Protracker. Maybe Deliplayer is wrong on this one, but the real problem is the fact that it was ripped improperly. If you do manage to track down the original cracktro, feel free to point it out.

My friend just checked 16th intro.mod, the first "sample" is silent in Protracker. Maybe Deliplayer is wrong on this one, but the real problem is the fact that it was ripped improperly. If you do manage to track down the original cracktro, feel free to point it out.

Sorry this file comes from a complete package full of mod intro in different formats I downloaded two years ago, I can't even remember what was the website, so I can't help you finding the original. (It was in a "lightforce" folder but you already know that.)

Modplugs DSMI-Amf support is fubar. I have "Dual Module Player32 v4.0" (SB driver support only) by Otto Chrons for playback reference if that's of interest to you.

Oh well, i can imagine to get playback of those formats right is a real tough job.Some issues were fixed, some new invented and some seem to just got tweaked (i.e. the issue persists, but sounds different now):Cj-Purg1.it Snare fixed but: Order 00, Channel 03/04/05, Piano sounds wrong now, notes seem to play to fastCj-Purg2.it Piano fixed but: Order 03, Channel 14/15, sounds wrong nowF0x-Test.xm : effect issue not fixed yet, some other effects now sound wrong too (probably same as kookoo.xm)Kookoo.xm : due to recent changes some effects sound wrong now, sorry but i can't name the effect/channel exactly (comparison to v0.9.3.3 reveals the difference immediately)

I just listened to some Jazz Jackrabbit psm's with foo_dumb. Since i played the game many years ago i just realized how much of the original sound was missing in Chronos converted s3m's. Especially my favorite "Song17.psm/Medivo" made me jaw drop.

Fixed volume swing, which is relative to the volume level. (Cj-Purg1.it, Cj-Purg2.it)

Fixed logarithmic auto vibrato to only apply to XM files set to use Amiga frequency table. (Kookoo.xm)

I don't really get what's wrong with F0x-Test.xm. It sounds closer to FT2 than XMPlay does, I know that much. The auto vibrato does sound maybe slightly off, but it's probably a flaw of using relative delta frequencies internally for almost everything instead of Hz or some period format like Mikmod or Modplug.

No need to investigate further, with v0.9.3.6 all mentioned files sound as the should. Previous release made it difficult to test F0x-Test.xm as it sounded much different than its predecessor. I just tried FT2's (v2.09) wav-writer on F0x-test.xm. It only saves 18 sec. of the module, i.e. when recording it doesn't process the module commands correctly for full reproduction.

Regarding Volumeramping and Clicking you should find some interesting stuff in Open Cubic Players sources (excerpt of whatsnew.txt):

completely new mixer device (stores all samples in 32bit format), making massive use of the CPU's Floating Point Unit and bringing you the following advantages:

+ 16777216x linear or 256x cubic spline oversampling

+ a theoretical 3000dB of Signal/Noise ratio

+ sample-exact volume ramping

+ special anti-click mechanism which does NOT soften up the samples

EDIT:Almost forgot, i also have a compiled "Open Cubic Player" Winamp plugin (beta) which has support for .mod, .xm, .it, .mxm, .s3m, .669, .ams, .dmf, .mdl, .mtm, .okt, .ptm and .ult.OCP source should include sources to build the plugin. Just mentioning it as it may be of some value to you.

The native Foobar plugin only offers setting up mixing rate and a .s3m-file detection toggle. It is missing In_Adlib's soundcard and opl-emulation setup, you can't choose between the two opl-emulators and it doesn't offer the configurable extension handling.

One drawback of that is that Foo_Adplug grabs and plays .d00/.d01 (Edlib) files regardless off the installed In_D00 plugin which is specialized in that format and sounds so much better. Second Foo_Adplug fails to play .laa-files (Lucas Arts Audio) while In_adlib/Winamp_Input_Wrapper works flawless. Third it always sets subsong index to 1 for every file when there is no subsong. Fourth it doesn't provide access to existing subsongs. Meh...

Recent update of Foo_Adlib v1.04 overcomes former drawbacks. It allows to choose between the two emulation cores and offers extension handling like the Winamp plugin version. Faulty setting of subsong index was fixed, true subsongs are now added to the playlist just like Foo_Dumb does. Still won't play .laa (LucasArts Adlib Audio) but thats negligible. I have a feeling the author of Foo_Adlib got aware of my previous post somehow?

Anyway, usage of Foo_Adplug instead In_Adlib/Winamp_Input_Wrapper is now savely recommended.

Hello (fading echo: hello... hello... hello...), anybody here?It's rather quiet around foo_dumb these days so i thought i come up with another replay issue: Nearly.mod : Order 00, Channel 4, Kickdrum starting at Row 08 is not played.

Feature request:

enhanced sampleinfo to display length and samplerate(handy for comparing two files of the same song (Orders and Patterns) with different filesize)

Implemented mostly dodgy volume ramping. Logarithmic and auto modes should be safe for use with most things, although it's not perfect and doesn't eliminate all clicking. Maybe I need to gut the mixer and rewrite it. Some other time, perhaps. :B

Fixed XM channel volume/envelopes/panning resetting when instrument change was processed on the same row as note-off.

Added the amazing Chip-o-matic automatic per-sample aliasing system, for those that like interpolation on all but chip tunes.

Set sample offset effect has value memory even in MOD files, verified with Protracker. (Nearly.mod)

Sorry, this is a VC7.1 compile until I get ICL up and running again. The speed difference is great, but with volume ramping crapola turned off, it's about as fast as it was before I started using ICL. I'll have an ICL build up soon.

Nearly.mod uses leet tricks to get around the 31 sample limit, squeezing two whole samples into one, and using sample offset to play the kick drum sample. In most cases, it uses 900 instead of 90E, and plays correctly in Protracker, proving that offset has value memory even in MOD.

First listening test with volume ramping enabled sounds good. I found the linear setting to work best so far.

While you mentioned the tricks used in Nearly.mod to overcome the 31 sample limit i was especialy interested to have a look at foo_dumbs sample info for this file again. It only displays 2 out of 31 samples? I checked several .mod files and never got to see a complete list of included samples. Looks like samples without a name/text info in the sample table aren't displayed anyway for every module format. Sampleslots containing text only i.e. without an existing sample are listed, though. Btw., Foo_Mod/Bass.dll behaves the same here.