-Another good feature of Xmplay is so called Trimming which abbandons empty patterns/silence in modules for playback.[a href="index.php?act=findpost&pid=241636"][{POST_SNAPBACK}][/a]

I can try to make it trim off patterns which contain only effects which delay playback, but it might have an adverse effect on some modules. (At its very simplest, I could search out such empty patterns and reduce them to nothing. It will be more complicated if I add in searching for where the patterns are in the order list, checking that they're at the end of a playable range, etc. I'll work on it a bit later.)

Quote

-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.[a href="index.php?act=findpost&pid=241636"][{POST_SNAPBACK}][/a]

I only have one obvious S3M with Adlib instruments, and it fails to load outright. By accounts of the S3M format, the Adlib instruments should have a SCRI signature instead of SCRS, and the S3M loader barfs if it encounters any samples with incorrect signatures. Please post example files which stall the player.

I can try to make it trim off patterns which contain only effects which delay playback, but it might have an adverse effect on some modules.

Trimming should only be processed at start and end of a modfile, not inbetween the orders. So it ends up checking start/end orders -> patterns -> empty with/without delay command.[{POST_SNAPBACK}][/a]

Which, as I meant, can be complicated by multi-song modules. Then again, I guess there wouldn't be too many of those using excessive silence patterns, or they would at least be using the same pattern for all silent orders, which would simplify trimming.

Foo_dumb refuses to load any of these, but it does not freeze. On the other hand, I cannot make foo_adplug accept the S3M file extension. Something strange is going on here. Please list which components you have installed.

Which, as I meant, can be complicated by multi-song modules. Then again, I guess there wouldn't be too many of those using excessive silence patterns, or they would at least be using the same pattern for all silent orders, which would simplify trimming.

Should be suffice to concentrate on the mainsong as that is the one likely to be played most. And very few know or bother to listen to subsongs anyway.

Quote

Foo_dumb refuses to load any of these, but it does not freeze.

When i try to load one of those adlib .s3m's the foo_console pops up with an error message. When i close the console and try to load another song it freezes with the "Reading file info" box on screen. Have to call taskmanager and kill the process then.

Quote

On the other hand, I cannot make foo_adplug accept the S3M file extension. Something strange is going on here.

Thats why i recommended to append an extension recognized by the adlib plugin, i.e., rename adlib.s3m -> adlib.s3m.amd. Additionaly i uncheck adlibplugins recognition for .s3m. Instead of foo_adlib i'm using original in_adlib plugin in combination with winamp-input-plugin-wrapper which sounds way better. if you try make sure you use in_adlib 1.4, as v1.5 sounds worth with the adlib .s3m's.

Which, as I meant, can be complicated by multi-song modules. Then again, I guess there wouldn't be too many of those using excessive silence patterns, or they would at least be using the same pattern for all silent orders, which would simplify trimming.

Should be suffice to concentrate on the mainsong as that is the one likely to be played most. And very few know or bother to listen to subsongs anyway.[a href="index.php?act=findpost&pid=241976"][{POST_SNAPBACK}][/a]

Well, concentrating on the "main song" would mean my search would have to find the end of the song from the intended start position, which would mean actually parsing the entire first. I've settled for parsing from the start and the end of the orders list for "silent" patterns and eliminating them. This feature is optional and disabled by default.

Quote

Quote

Foo_dumb refuses to load any of these, but it does not freeze.

When i try to load one of those adlib .s3m's the foo_console pops up with an error message. When i close the console and try to load another song it freezes with the "Reading file info" box on screen. Have to call taskmanager and kill the process then.[a href="index.php?act=findpost&pid=241976"][{POST_SNAPBACK}][/a]

That isn't happening here.

Quote

Quote

On the other hand, I cannot make foo_adplug accept the S3M file extension. Something strange is going on here.

Thats why i recommended to append an extension recognized by the adlib plugin, i.e., rename adlib.s3m -> adlib.s3m.amd. Additionaly i uncheck adlibplugins recognition for .s3m. Instead of foo_adlib i'm using original in_adlib plugin in combination with winamp-input-plugin-wrapper which sounds way better. if you try make sure you use in_adlib 1.4, as v1.5 sounds worth with the adlib .s3m's.[a href="index.php?act=findpost&pid=241976"][{POST_SNAPBACK}][/a]

There may be something wrong with one of the Winamp components you have installed, or the Winamp input wrapper itself. Try repeating the process with certain Winamp plug-ins removed, and if that doesn't have any effect, try removing the Winamp input wrapper itself.

Also, I should point out that the only change in the Adplug core since 1.4 is a newer version of the OPL2 emulator from the MAME project, which should only mean more accurate emulation.

Foo_Tunes 0.1.0 <- Buggy, known to freeze on close, so you end up with zombie Foobar2000.exe processes.

In_Adlib 1.4 <- are you sure this isn't freezing when attempting to find in_mod for S3M files with samples?

In_Mod 2.2.10 beta 29 (2.11 does'nt work with Winamp Input plugin) <- This qualifies you for immediate execution. Have you bothered to check if the same S3M files cause Winamp to freeze? Again, it may be a special case since in_adlib tries to load certain S3M files with in_mod.

In_Tfmx 1.25 (zZzZzZz's original, sounds way better than foo_tfmx) <- In_Tfmx interpolates, foo_tfmx does not. Don't you usually turn that off anyway?

Uploaded v0.9.2.8.

Stronger loop checking, should catch some more insane files, without impacting performance too much, I hope...

Oh, and the previous loop checking model had the potential to leak 256-512 bytes after opening or decoding any files. Whoops.

Added a global volume fade-out callback and cut-off, for files which fade out and contain a lot of silence, or files such as Jos-Dr4k.xm which use a global volume slide within a pattern loop that otherwise runs forever.

Added optional silent/empty pattern trimming. This will also catch files with nothing but empty patterns and reject them as invalid. (Whereas the standard mode probably just plays silence for the duration of the order list.)

Cleaned up one minor static variable mess that I missed, in the IT compressed sample readers.

Fixed the last static referene to the old global quality level variable. This might have had a noticeable effect on declicking when linear or no interpolation.

Compiled with ICL 8, with nothing more than PGO and /Qip. Too bad IPO still doesn't seem to be supported for static libraries. Anyway, speed has almost doubled.

Uploaded v0.9.2.8.1.

Crap. I accidentally broke pattern loops in formats other than XM. Fixed now.

I've settled for parsing from the start and the end of the orders list for "silent" patterns and eliminating them. This feature is optional and disabled by default.

Thats fine, too.

Quote

There may be something wrong with one of the Winamp components you have installed, or the Winamp input wrapper itself. Try repeating the process with certain Winamp plug-ins removed, and if that doesn't have any effect, try removing the Winamp input wrapper itself.

Investigated the freeze issue by removing all plugins and adding one by one back: None of the plugins are making any trouble. Freeze occurs only when a rejectet file prior was loaded through foo_tunes explorer interface. Using playlistmenu's open command the freeze does'nt occure.

Quote

Also, I should point out that the only change in the Adplug core since 1.4 is a newer version of the OPL2 emulator from the MAME project, which should only mean more accurate emulation.

It should, but it got worth for adlib .s3m and several .hsc files. A new release of adlib plugin is in preparation.

Quote

Foo_Tunes 0.1.0 <- Buggy, known to freeze on close, so you end up with zombie Foobar2000.exe processes.

It never happened here. Now that i found out loading files through its explorer interface causes errors i avoid that.I'm not using a newer tunes versions as the chang og the look is not to my liking. Planning to switch to foo_columns anyway.

Quote

In_Adlib 1.4 <- are you sure this isn't freezing when attempting to find in_mod for S3M files with samples?

Yes i'm sure, since you can disable it as i mentioned several times. Detection of adlib .s3m seems to be difficult, sometimes adlib plugin tries to play .s3m that it should'nt, sometimes it passes adlib .s3m it ought to play over to the main player. Appending .amd to adlib .s3m solves that issue.

It does, using DirectMusic / Microsoft Synthesizer. Drawback is that if you played a .mid file a crashlog is created when closing foobar stating an application shutdown error which belongs to in_midi.dll and/or its helper file read.dll. If no .mid file was played during a session no crashlog occurs.

Quote

In_Mod 2.2.10 beta 29 (2.11 does'nt work with Winamp Input plugin) <- This qualifies you for immediate execution. Have you bothered to check if the same S3M files cause Winamp to freeze? Again, it may be a special case since in_adlib tries to load certain S3M files with in_mod.

You have a nice kind way to call me an idiot. Thank you.As for in_adlib you can disable support for single formats with in_mod. I disabled its support for .xm, .s3m, .mod and .mtm.

Quote

In_Tfmx 1.25 (zZzZzZz's original, sounds way better than foo_tfmx) <- In_Tfmx interpolates, foo_tfmx does not. Don't you usually turn that off anyway?

In_tfmx has builtin optionsmenu where interpolation can be disabled, which i did. Foo_tfmx has no configuration options. Its playback does seem to use some sort of filter though or mxing frequenzy is lower than 44100 Hz as it sounds more dull.

Regards, deus-ex.

P.S.: Unfortunately you does'nt seem to bother answering some of my other questions.

In_Tfmx 1.25 (zZzZzZz's original, sounds way better than foo_tfmx) <- In_Tfmx interpolates, foo_tfmx does not. Don't you usually turn that off anyway?

In_tfmx has builtin optionsmenu where interpolation can be disabled, which i did. Foo_tfmx has no configuration options. Its playback does seem to use some sort of filter though or mxing frequenzy is lower than 44100 Hz as it sounds more dull.[a href="index.php?act=findpost&pid=242119"][{POST_SNAPBACK}][/a]

It outputs at 32KHz, like the Amiga. Realism hard coded.

Quote

P.S.: Unfortunately you does'nt seem to bother answering some of my other questions.[a href="index.php?act=findpost&pid=242119"][{POST_SNAPBACK}][/a]

Which questions are you referring to? I already said I'd think about the change logs, which means I'll probably get to it when I am randomly inspired to do it.

I'll get to fixing S3M effects tomorrow, maybe. The panning effect needs to be fixed so values which are out of range set the channel into surround mode... I think that's right... There are others that I will need to check over one by one, to see if the renderer already handles the correct scale internally.

As for blowing up at you over in_mod, it is only because it is a poor excuse for a module player, and unfortunately, there is nobody to see it out of that state at this time. Sure, it supports a lot of formats, but that support is rather limited.

Modplug shares a similar level of support for odd formats, in that things are randomly broken, or converted incorrectly. Its PTM support is absolutely horrid.

Meh, I had better get out of here before this turns into a spoony rant. I have a better drug than alcohol, it is obsession which can drive me to stay awake for long periods of time and skip meals. Good day/evening/whatever.

Sorry, i don't want to be a prick in your back. Well, here're the questions i was refering to again:1) I kindly asked if you would provide an download for the special foo_mod version with included DUMB .xm-parser, that grew foo_mod by ~50k.2) You were talking about sharing the DOSBox CVS compile once in a while. I'm still interested in this. Holox downloadlink did'nt work for me, i.e. the compiled .exe-file wont run as soundcardemulation. Meanwhile i became a member of the DOSBox-CVS board and did a few (not so senseless) posts, but as of yet i'm not granted for download.

Quote

...in_mod... is a poor excuse for a module player...

I do know this, i only have it installed as it provides (some kind of) support for .ptm and .okt files which are beeing part of my mod collection. I asked for .mtm support in foo_dumb once (foo_mod/bass.dll allready has) but i did'nt want to be outrageous asking for more formats. I can't tell how different .mtm or .ptm format is from .mod/.s3m/.xm hence how difficult their implementation would be. There exist only a few .ptm files, supporting that format is'nt demanding though it would be nice. I just have one .okt file, so it's negligible.

New version of foo_dumb v0.9.2.8.2 is really fast. Very good job, thank you. Its speed grows by the increasing length of its version number. Question: Xmplay displays the number of subsongs in the fileinformation dialog. You can cycle through the subsongs during playback by pressing [Shift + Left/Right]. Will one or both of these features be possible wtih foo_dumb?

1) I kindly asked if you would provide an download for the special foo_mod version with included DUMB .xm-parser, that grew foo_mod by ~50k.[a href="index.php?act=findpost&pid=242180"][{POST_SNAPBACK}][/a]

Whoops. I'll see about releasing this, but it seems kind of redundant. I was planning to write a more minimal parser, or at least reduce their parser so it doesn't do things like load patterns and samples...

Quote

2) You were talking about sharing the DOSBox CVS compile once in a while. I'm still interested in this. Holox downloadlink did'nt work for me, i.e. the compiled .exe-file wont run as soundcardemulation. Meanwhile i became a member of the DOSBox-CVS board and did a few (not so senseless) posts, but as of yet i'm not granted for download.[a href="index.php?act=findpost&pid=242180"][{POST_SNAPBACK}][/a]

You will either need to PM me with your e-mail address, or use the forum e-mail function to send me a message. Only administrators can see users' e-mail addresses directly.

Quote

it provides (some kind of) support for .ptm and .okt files[a href="index.php?act=findpost&pid=242180"][{POST_SNAPBACK}][/a]

I see it does support both, but its PTM support appears to have some bugs. Mostly, features which are not fully documented.

Loop end points need to be reduced by one as compared with how they are interpreted in other formats. Foo_dumb gets this correct. The effect is noticeable with abno[rmal].ptm, most noticeable about ~1m55s into the file.

Note slide effects appear to be backwards, contrary to the published documentation. I'm amazed this effect is implemented at all, however incorrect. I'll look into this later, maybe. For example, once again, see abno[rmal].ptm, but the note slides should be down instead of up, which is why my lame attempt to implement the effect as at least plain note portamento sounded weird. DUMB does not implement glissando effect either, so that will be something I'll probably fix at the same time as this.

Sample offset effect is always in bytes, so offsets should be halved for 16-bit samples. I'm not sure how in_mod handles this. While I did contribute to it, and still have source code from that time, it is so old, it predates PolyTracker support.

I'm surprised, though. I expected the PTM support to be pretty bad, considering how horrible ModPlug's PTM support is. Oh well, poor assumption.

HAHA, the OKT format is just another MOD-like format with 8 channel support. DUMB already supports this and I didn't even know it. For now, rename your OKT file to .mod, I'll add the file extension before the next release.

I'll also write a MTM loader, maybe today. It's only a matter of committing to the task. Hopefully, MTM will be simpler than PTM, which required some trial and error to discover a few features which were undocumented or were actually contrary to the documentation. It shouldn't be too much trouble, as at least two published open source examples get it right where they fail many more obscure formats, and there's BASS. With my first format loader behind me, this should be a piece of cake.

Quote

New version of foo_dumb v0.9.2.8.2 is really fast. Very good job, thank you. Its speed grows by the increasing length of its version number. [a href="index.php?act=findpost&pid=242180"][{POST_SNAPBACK}][/a]

I only did that because I discovered so many bugs so quickly after the release. It probably helps if I take it more slowly and code after I sleep, rather than skipping sleep to code.

Quote

Question: Xmplay displays the number of subsongs in the fileinformation dialog. You can cycle through the subsongs during playback by pressing [Shift + Left/Right]. Will one or both of these features be possible wtih foo_dumb?[a href="index.php?act=findpost&pid=242180"][{POST_SNAPBACK}][/a]

Gauging the number of subsongs would be more complicated, as I would have to expand the length scanner to record which patterns are actually played by a particular start order, which shouldn't be too hard with my current loop checking model, then expand upon that to find further start orders which produce playable ranges.

As for the hotkey, I don't think that will be as easy. I could make it optional to automatically scan for subsongs and add them all to the playlist when you open the module.

I was planning to write a more minimal parser, or at least reduce their parser so it doesn't do things like load patterns and samples...

The idea behind was to use what is allready there and to not distract you from foo_dumbs development. Meanwhile i replaced foo_mod with foo_dumb in my main installation, foo_mod runs in the secod install for reference when needed. Just would be nice to see .xm data with foo_mod, too.

Quote

I'm surprised, though. I expected the PTM support to be pretty bad, considering how horrible ModPlug's PTM support is.

Among in_mods authors you will find Peter Pawlowski (duh) and X-Fixer, who was responsible for latest implementations. If i remember right X-Fixer rather did more of a hack job, that beeing more or less the reason its development came to an halt as Peter did'nt feel comfortable with X-Fixer's ways to ~fix~ code. That were the days Peter worked for Nullsoft.

Quote

HAHA, the OKT format is just another MOD-like format with 8 channel support. DUMB already supports this and I didn't even know it. For now, rename your OKT file to .mod, I'll add the file extension before the next release.

That's a big surprise, yet welcome.

Quote

I'll also write a MTM loader, maybe today... With my first format loader behind me, this should be a piece of cake.

Hmm, if you like cake question arises if you have appetite for implementation of several other formats too. This is just loud thinking:In_Mod additionally supports .669, .ult, .stm, .amf and .far. I don't know how familiar you are with these formats. Examples can be provided at will.

Maybe these sources of Open Cubic Player 2.60pre6 will be of valuable help for you. Also you may want to browse the Historic folder, you'll find good sources of loaders and players for many different formats there.You will also find code examples for patternviewer, scopes, volumebars, notedots and graphic spectrum analyzer.

Quote

It probably helps if I take it more slowly and code after I sleep, rather than skipping sleep to code.

Yeah, but if an idea comes instantly to mind one just can't go to sleep. Thats the most important thing of it: having fun and satisfaction with the things that you do, right?

Quote

Gauging the number of subsongs..., hotkey... for subsongs

I hoped there would exist code samples in the bass.dll distribution? Well, maybe not.

Regarding foo_mod's fileload issues i made a post in the bass-forum at Ian's site with reference to the appropriate threads here. We'll see...

HAHA, the OKT format is just another MOD-like format with 8 channel support. DUMB already supports this and I didn't even know it. For now, rename your OKT file to .mod, I'll add the file extension before the next release.

I think there are actually a couple different variations on the OKT format. One, as you say here, is MOD-like; however, there's also this format with weird effects that Modplug supports rather badly.

I don't suppose it will be possible to get the relatively unused Amiga music format dw (David Whittaker) to work with foobar? The guy wrote some of the best Amiga game tunes like Shadow of the beast and Xenon II. However he just had to go and use his own format didn't he

I think supporting DW would mean emulating an m68k CPU.This would add a lot of bloat to the plugin, so better stick to DeliPlayer or something similar for playing DW files and other custom Amiga formats.

HAHA, the OKT format is just another MOD-like format with 8 channel support. DUMB already supports this and I didn't even know it. For now, rename your OKT file to .mod, I'll add the file extension before the next release.

I think there are actually a couple different variations on the OKT format. One, as you say here, is MOD-like; however, there's also this format with weird effects that Modplug supports rather badly.[a href="index.php?act=findpost&pid=242350"][{POST_SNAPBACK}][/a]

Okay, that is a completely different format. The format that the MOD loader supports is a MOD file with either CD81 or OKTA signature. It doesn't appear that Mikmod or Modplug support that format either.

I don't suppose it will be possible to get the relatively unused Amiga music format dw (David Whittaker) to work with foobar? The guy wrote some of the best Amiga game tunes like Shadow of the beast and Xenon II. However he just had to go and use his own format didn't he [a href="index.php?act=findpost&pid=242367"][{POST_SNAPBACK}][/a]

Quote

I think supporting DW would mean emulating an m68k CPU.This would add a lot of bloat to the plugin, so better stick to DeliPlayer or something similar for playing DW files and other custom Amiga formats.[a href="index.php?act=findpost&pid=242415"][{POST_SNAPBACK}][/a]

Whether or not DW files contain any 68k code, the only known players for the format are Eagleplayer modules. Deliplayer and UADE both come with their own driver modules written by different authors.

Trauma.okt wont load with v0.9.2.9. It's the only .okt file of my collection.Algory.ptm: Effect "Porta to Note/Porta down" seems to sound wrong. Start from ~2.05 min or Order 1D, Channel 14 and 15, Porta to Note/Porta down sounds probably wrong in comparison to Open Cubic Player.Sidenote: In_Mod handles the effect same way as foo_dumb.

Trauma.okt can be played with Winamp In_Mod and Open Cubic Player, for the later i recently posted links to the open source code. I hope that is of some use for Kode54, the sourcelanguage is Watcom C. Btw., Watcom C compiler beeing opensource, too.