...Given what I experienced about Android hardware and software, as well as what I heard about the PSF format, I'm not sure a 2SF, DSF, SSF or USF player would be all that feasible.
Yet. >;)
But until then, there's Droidsound (Available on Google Play). BUT: Be aware of the following caveats:
1. - PSF support's processor intensive, and GSF support hasn't been tested by me yet, but both are the latest two formats added to Droidsound, as of 1.4.
2. - VGM support works in 1.3, but doesn't work in 1.4. (If you're reading this, Jonas Minnberg, please fix this with a proper VGM engine update to the latest version, so we can even support Sega CD, 32X, Neo-Geo, etc.)
3. - RSN support may've been added to its SPC engine in 1.4, but it lists the archives' contents IN REVERSE ORDER!
4. - For those Android users with separate INTERNAL and EXTERNAL storage spaces, there's NO WAY to navigate out of the Droidsound directory in the INTERNAL storage space by default. (If you're this far, Jonas, please add support for browsing the entire file system, short of Root directory.)
Other than that, I think we can manage nicely. ;)
(P.S. - VGMStream support would be nice... *hint, hint*)
Don't forget Lioncash's (one time?) fork of Droidsound with vgmstream support. Not sure if it includes the PSF support though: http://www.hcs64.com/mboard/forum.php?showthread=25115&showpage=0
Rockbox works in Android, but you'll likely have to go to their site to get a working copy. It doesn't support any xSF format, but it does support all the formats of Game Music Emu (also see Google Code for a more updated version. I'm pretty sure Rockbox's GME support is based on the Google Code page. Though, to the best of my knowledge, Rockbox hasn't been updated to include the new soundchips that VGM is supposed to support). Rockbox also supports ADX playback. I don't have an Android device, but Rockbox certainly sounds like a reasonable contender. That said, it seems like Droidsound is actually a good bet right now, but that it needs a lot of detail work for the features to be supported properly (based on what JFD62780 just said).
Anyway, I just felt that Rockbox deserved a mention. You should at least give it a look, to see if perhaps it covers things better for your usage. Mouser X over and out.
As of Sept. 9th, Droidsound has been updated to version 1.4.2. This FIXES VGM support, but ONLY to the point of past Droidsound releases (i.e. BEFORE ValleyBell got involved with the specs. ;)).
...It's a start. Now to work on the other problems... >;)
It's because the dir listing method they're using explictly does not provide any sorting, so if your code relies on that it may or may not work, and it's the kind of thing that could change between filesystems and api levels.
Droidsound is a really cool application :) what's the "create ringtones" feature do, cut-short versions of mp3s/VGM formats? Or convert to some ringtone format?
The new version 1.5 out on the play store seems to handle rsn correctly (no thanks to my quick hack). The UI has changed a bit but it's still working fine on my 2.3.6.
I use Rockbox myself. You can get a version for Android from Rasher's site (though, he recently asked for a new server. Apparently the one he's been using has stopped working. I don't know how long the builds/site I linked to will remain online). I've only encountered the ocasional problem.
I've used driodsound 1.3 (can anyone get me 1.5? Google Play refuses to authenticate my device, so I can't download anything from there. I've contacted Google, and they won't work with me because my device is not on their officially supported list, even though I've found numerous people, on numerous sites, that have the same device and can get on the Play store just fine... it kind of pisses me off...), and there were numerous problems I didn't like. For one thing, at least on my device, it only scans the "MODS" directory (and not the sdcard. Perhaps this was fixed in a newer version). The other thing I didn't like is that it seems to ignore NSFe data, and either plays the song indefinitely, or skips after a minute or two to the next file in the list (not the next song in the NSFe). Also, when opening a file externally (because it only scans the "MODS" directory), it fails to play/open any files that have a " " (space) in the file name. Perhaps I missed it, but I haven't found a way to create a specificly ordered playlist either (without placing the desired files into a specific directory, renaming them to match the order I want).
Droidsound supports quite a few formats, some of which aren't supported by Rockbox. However, most of those formats are ones I've never used before. Something else I noticed is that, at least with the version of Droidsound that I have, it doesn't emulate the NES expansion chips (I tried to listen to the Lagrange Point NSFe, and it played basically nothing), but Rockbox plays them just fine.
Again, perhaps many of these issues have been fixed in a newer version (again, can anyone get me a newer versjon?). Even so, Rockbox has more functionality, as far as my experience goes, than Droidsound. I read the changelog, an it sounds like subtune support is improved (and two new formats - PSF support is great!), so maybe my user experience will be improved with a newer version.
Anyway, as it stands right now, I would recommend Rockbox. At the least, give it a try. That said, I'm certainly willing to give droidsound another try, if I can get a newer version.
So, as far as I know, Droidsound and Rockbox seem to be the prime candidates for VGM formats, right now. Anyone else want to expand on their user experience of either of these two? Mouser X over and out.
I'm using droidsound over rockbox lately, except for a few things rockbox still does better (adx, cuesheets). I'll try to get a droidsound build up for you, what's your device and android ver? (I'm not well versed enough in android stuff to know how much it matters). NSFe seems to work as expected (though without expansion chips), be sure to turn on "cycle subtunes" in the options.
The "MODS" dir thing is pretty irritating, I don't know yet what the deal is with that but it seems like it should be easy to overcome, so I'm probably missing some deeper difficulty.
Oh, my #1 complaint still: no fades. I can understand that the devs might just not care, but it bugs me.
Sir-Sabin: You're awesome. Thanks a lot. I'll definitely give it try (at the very least the PSF supported will be out to use). Much appreciated for putting that up for me. Mouser X over and out.
I've been using Droidsound to play PSFs (inside RMU/RAR files), and I've encountered a number of bugs. Since I can't seem to login into my email from my tablet, I'll list them (and of course how to reproduce them) here (in order of their annoyance to me - in other words, this is the order I would like them fixed in :P ).
#1) Any PSF that's longer than 4:06 crashes the player. I haven't found *any* PSFs longer than 4:06 that don't fail at that point.
[EDIT] Actually, I found one. Beyond the Beyond - Staff Roll 8:37 (at least, that's what Droidsound says). It *does* stop at 4:06, but if you wait (for about 20 seconds?) the song will eventually continue past that point. It crashes at around 8:20 though, and waiting didn't seem to make a difference.
Inside a RAR, extracted, it doesn't matter. This is almost certainly a player bug, and not an emulation bug (an emulation bug would be more difficult to fix, I'd think), as some of the songs loop before 4:06, but when looped twice, are longer than 4:06. Once this happens, the UI is still responsive, but it won't play any songs at all, until you *completely* close Droidsound (aka, select "quit" from the menu, and then close/stop it from Android's app handler).
#2) If Droidsound crashes/stops working while playing songs from a RAR/RMU, it doesn't clean up its mess in the temp folder. I didn't realize this at first, but I started noticing that my available free space was dwindling, even though I hadn't added any new files. After hunting through the directories, I found Droidsound's temp directory, which was taking up nearly 200 MB.
#3) If you have mixed audio in a RAR/RMU file, it crashes Droidsound. For example, many PSF sets are missing songs (in comparison to the OST). These are usually streamed, so I've "filled the gaps" with MP3s (since Droidsound doesn't support OGG). Currently, I only have 2 PSF sets that are "patched together" that way (I intend to do it to the "Star Ocean", "Xenogears", and "Chrono Cross" sets as well). I converted the XA files of "Racing Lagoon" and "Suikoden Tenmei no Chikai" to MP3. Racing Lagoon crashes immediately, because the first song is MP3. When extracted, the PSFs and MP3s play fine (but, I haven't figured out how to arrange/play files by their file names/track numbers, because Droidsound uses a DB. Thus, when I play the files outside of the RAR, they don't play in track # order. Which is why I RARed it up - so they would play in the correct order. And as a bonus, it saves space). However, Suikoden Tenmei no Chikai leads me to my next bug....
#4) Some PSF sets don't crash, but they only play silence. Of the sets I have on my tablet, these ones give the appearance of playing, but only produce silence:
"Mega Man Battle & Chase [RockMan Battle & Chase](1997)(Capcom)[PSF]" "Suikoden Tenmei no Chikai (1996)(-)(Koei)[PSF+Streams]" "Riven The Sequel to Myst (1997)(Cyan)(Sunsoft)(Enix)[PSF]"
I assume that's an emulation bug, and therefore could be difficult to fix. I'm pretty sure Audio Overload uses SexyPSF for PSF support, so I'll be downloading AO today, so I can test on a PC whether these files play using SexyPSF (though, even if they play in AO, that doesn't necessarily mean they should be playing in Droidsound.... It could still be something else).
#5) "Legend of Dragoon" completely crashes Droidsound entirely. Whether it's in a RAR or extracted, any PSF of that set that I've tried to play has crashed Droidsound so thoroughly that it doesn't even throw an error. It just dumps me back to Android's home screen. Again, I'll listen to this using AO, and see what kind of effect I get from this.
All that aside, Droidsound seems to be at least usable for PSF playback, which is definitely something Rockbox doesn't have yet. The only other thing I'd mention is that PSFs, more often than not, are quieter than most of the audio. I usually have my tablet turned up as high as it will go when listening to PSFs, and %50-%75 for everything else (depending on how noisy the street/bus is).
[EDIT] While searching for information on SexyPSF, I found this. They're currently working on PSF2 support, and that would be pretty nice to have.... And since I'm mentioning additional sources (in an attempt to aid Droidsound), it should also be mentioned that GME is version 6.something. Droidsound is using v.5.5, but I know Rockbox uses a more recent version than that. There's a Google code page here.
Also, as I mentioned in a different thread, the default browser in Android can't download from Sendspace, but Firefox on Android can.... Just useful information. Thanks again Sir-Sabin for putting Droidsound 1.5 up for me. And thanks Knurek for putting together your amazing console/emulated/streamed rip collections. Mouser X over and out.
i added PSF2 support for my version of Droidsound + many other features. I also added VGMSTREAM support but there are couple of formats that are acting weird -> development help is welcome :)
It still has bugs but im actively fixing them. I will commit my recent changes there today or tomorrow. The 'prebuilt' folder contains the .apk files so you don't need to compile it.
*Crossing my fingers that MP3 Internet streaming will work on Android 4.x (Tested on 4.2.2 and 4.3, Swimsuit Boys' official Google Play app merely hangs on any attempt until stop is pressed.)*
Grabbing now, been itching for improvements over the Jan release. From the listed features, this looks to be a lot of fun to test with all the new formats! Also I second the ability to locate files elsewhere besides in a MODS folder on the internal card.
There were two outstanding issues with the version thats on GPlay:
1) Trying to load zips of .VGM or .VGZ en masse would cause sporadic FCs. The only solution was to revert back to version 1.3 where zip scanning worked properly.
2) Zips of .PSFs that also included streamed music would crash upon scanning.
One other thing while its on my mind. It seems like 7z is the most popular storage container on the joshw archives. I know 7z is a good bit different to unpack, especially if trying to do so in memory or temp space, but I wonder if it could be added to Droidsound.
Thank you very much for picking up the dev on this. :)
Edit: Yup, still has the zip scanning issue. ZIPs for PSF and SSF crashed the app when those ZIPs contain both vgmstream/MP3 and *SF format files together.
I've spent a few hours with it and various tinkering. Here's the issues I've encountered besides the ZIP issues:
* HighlyEXP plays on only a fraction of .PSFs. SexyPSF plays on all I've tried. HighlyEXP will show a running time counter but no sound is generated, even though the speaker/headphone connection can hear normal background fuzz of a powered on connection.
* SSF/VGM/VGZ/NSF/GBS Loop Mode Broken. Total time remaining is 00:00, and loops forever. There is no option to set default song length or disable infinite looping. GSF, PSF, SPC, and 2SF I've also tested and are not affected by this.
I'm not sure if the reason looping is broken is because I still had some files in /MODS and /droidsound from 1.5 prior to installing your latest build. I'll be doing more vgmstream-specific testing tomorrow, and also try a clean install to see if that fixes the loop problem. IIRC 3:00 was the default that 1.5 was supposed to enforce everywhere the chip format did not specify loop count.
I wasn't aware of these problems. I start checking them ASAP. In the future, would it be possible for you and anyone else to file these bug reports in the github project page?
another thing, the sdcard playing issue, could you tell me the mount point of the external sdcard in your phones. The api in SDK always make it point to /mnt/sdcard while this is not always the external sdcard. For example in my phone the external sdcard is located in /mnt/extSdCard/
Level99, thanks for testing and reporting these issues.
mine is /mnt/extSdCard/ so is my Tablet, i have 4.x.x on both, i'm having a lagging issue with gsf and 2sf files on my phone, it can't find psf2 and scd (FFXIII-2) files and wasn't looping stream files.
Yes, I will report these issues on the github page from now on. I'm using two phones as daily drivers (AT&T Galaxy S3 4.3, LG Optimus G 4.3), with a few others laying around the house that I could also test on for different point mounts.
Mine is also /mnt/extSdCard/ on both daily drivers.
I'll fill out the bug reports during my lunch break. You are awesome for tackling this stuff!
I also have to say how sweet it is being able to have FFXI, Eve: Burst Error and NiGHTS Into Dreams available on my phone without taking up a huge amount of space :D The SSF and PSF2 thus far are worth the update alone!
SDcard playing problem should be history now. I added a new feature which gives user an option to add a new filebrowser object and mount it to any filepath, including /mnt/extSdCard :)
I've been working with those bugs, i can send the latest APK there without code commits if you wish to use it. Bear in mind that there is nobody else working with it, just me. Also I do add comments there if you check carefully :)
It's definitely a tough job being the only one working on it. I wonder if lioncash or sasq64 would be interested in jumping in again now that a bunch of significant progress has been made. Lioncash's latest also had a fully tweaked interface which looks a lot slicker than the stock one imho.
by Sonicandtails at 12:55 PM EST on December 26, 2013
Would it be possible to make fadeouts work properly? When I'm playing NSFE's or SPC's, they just abruptly end and often cut off before the end of the song. This is the only thing that I hate the most about Droidsound.
Latest version of droidmjt's Droidsound fork is daily driver ready. Generic fadeout works, default timelength works, zip scanning works on internal and external, external filebrowser works, UI tweaks make it look more manageable, and the only real sound format issue is that .dsf files require at least a 1ghz dual core processor.
It's nearly on par with Modizer for the iOS now, except for a few extra features.
Oh, and basically all issues that are in the Play Store version are resolved :) haspor has done an incredible job continuing where sasq64 left off.
One of the upcoming features which I am completely stoked about is native 7z/rar/gzip support. This means no longer having to convert every file from the joshw music sections before adding it to an Android device. No ETA but it has been mentioned as a feature being worked on since yesterday.
Among the problems: - no options menu - frequent crashes/stalls, especially when rotating - next button doesn't always work on nsfs/nsfes - file browser does not recognize any of my non-mp3 music folders (have to open songs thru tablet's file browser) - no way to loop songs infinitely (again, no options menu)
Not blaming the program, I believe the people saying it works great. But why won't it on my machine?
Using the apks from the prebuilt folder at github on Android 4.1.1
I assume there's no easy way to give droidsound a much less crappy module replayer because libmodplug is a POS in comparison to the player code used in xmp, openmpt, and for that matter schism. (but the latter was backported into openmpt anyways)
And no I'm not talking about just playing back IT properly. OpenMPT can load alot of oddball formats better than libmodplug can.
I have noticed that in some devices the options menu cannot be accessed because the settings icon is missing, for example in Samsung Google Nexus 10. If i don't remember wrong, in order to have it, it needs some additional permission to be added. I don't own any device to test this with, only Genymotion and SG3.
About the openMPT, its only for Windows.
* Rotating problems I cannot reproduce. * Which nsfs/nsfes causes Next button problems? * Which formats do not get recognized through filebrowser? * Infinite songs loop will be there soon
libmodplug is OLD... VERY ANCIENT and does not correspond whatosever to OpenMPT's loaders. libmodplug is basically a library port of the old ModPlug Player program for Windows.
OpenMPT is for windows yes, but it's source is open and the loader code surely isn't limited to just windows and can be ported. Probably a bit complicated to port atleast to me since I know nothing of C++ and only barely a tinge of C but as far as I know Android programs aren't even WRITTEN in C.
xmp is a Linux native module replayer that can play esoteric formats but for reasons I can't yet understand OpenMPT plays these esoteric formats WAY WAY better than xmp ever did. Which is why I would love it if droidsound had the loader code from OpenMPT in use so I don't have to constantly fail to make S3M files out of some oddball formats and have them sometimes sound completely different.
I was checking libopenmpt earlier and I think it is possible to integrate it to Droidsound. Android applications can use native C/CPP code. I'll try this later.
latest prebuilt binary has libOpenMPT, check it out. If there is some problem with some formats it tries to play, forward these issues to openMPT bugs page directly.
...My only complaint would be how would I DOWNLOAD the thing?
Should I choose debug-aligned or debug?
I have a Samsung Galaxy S4, BTW, and I tried downloading the file directly using Dolphin Browser, and the system tells me, "There is a problem parsing the package".
EDIT: How do I download WITHOUT having to 'join' GitHub? They want my 'credit' card number EVEN if I choose 'Free'! :(
EDIT DEUX: Figured out the download problem; Shoutcast streaming STILL doesn't work on my phone; it mainly hangs on trying to buffer the network stream. (Android 4.3)
Also, you rock for figuring out the meaning of my previous post! libOpenMPT's sound system RULES!!! :D
sexyPSF was removed after testing in December and January for two reasons. 1) Testing at the time showed no difference in compatibility between the two plugins and 2) that if sexyPSF was selected, no PSF2 files would play due to how the plugins were arranged. It was a redundant plugin.
Which PSF files are you trying to play?
Also, again to reiterate, report issues on the GitHub page. It's definitely helped haspor to keep everything localized there.
--------------------
JFD62780:
I just tried loading the SceneSat m3u shoutcast file and it worked after a little finagling. Try loading the file, hitting stop, then pressing play again.
Edit: Also, I've been slowly working on the Wiki to provide more information to folks. Here are the instructions on how to install Droidsound:
Sorry for not replying earlier, haspor. I lost track of this for awhile.
I am using a 7 inch tablet from Emerson, model # EM744.
I don't see a settings icon anywhere in Droidsound. Only buttons I'm seeing are forward, backward, stop, pause, Seq/Rnd, Hold/Cont, and + (to add to favorites). I guess I have the permissions problem you mentioned earlier? Any way I can give Droidsound the necessary permissions?
And yes, like Sir Sabin mentioned, I don't have physical buttons at the bottom of my tablet. Only physical buttons I have are Sleep and Volume Up/Down.
I'm playing minipsfs from final fantasy VII, legend of legaia, Strider2,and psfs from final fantasy VIII and legend of mana none of which play any sound. They all display. The plugin as UADE and the format as sound factory. **problem solved** edited 7:19 AM EST February 1, 2014
I can't seem to install the apk, it bitches that it fails to parse the package. I also noticed the package has no icon either... is github failing to give me the file properly?
EDIT: I'm running Android Gingerbread by the way. I had no problems installing swimsuitboy's droidsound off of the google play market.
I believe Gingerbread support was removed among the changes to make things work better with the improvements from 4.0 and above. I know it was mentioned somewhere either here in the thread or on the git page, I'll see if I can find it.
Which phone are you using? Anything Android 4 and above has a number of under-the-cover tweaks which improve performance, usability, and features pretty heftily. There are a number of single-core phones which run ICS or JB. It would likely be a tall order to probably back-port the changes to the new version into one that's GB-compatible.
The only thing you definitely wouldn't be able to run on droidsound period with a single core is Dreamcast music, which basically requires a dual core for thread reasons. Otherwise I'd personally be interested in seeing what your single core can do with this version of droidsound anyway.
I'm running a Samsung Stratosphere S SCH-I405 because when I was with my mate he wanted me to get a phone and it was the only one in the verizon store that had a physical keypad to it...
The swimsuitboys droidsound runs fine except the VICE emulation pretty much tied up the phone and I couldn't really listen to much on it without it skipping.
I only really need something that can play NSF, SPC, adlib formats, and of course all the different types of modules from amiga to PC. Droidsound on the play store fulfilled like, half of that.
If you're trying to download from the phone, have you tried viewing the site in desktop mode, you just tap view raw afterwards and download should start automatically.
So apparently GitHub has a max file download size if you're not logged in as a member? That's news to me. Definitely working fine while I'm logged in, and Droidsound works fine with it. Argh, I'm going to go comb the TOS of GitHub now.
Save the hatemail, I'll dig myself out of this ditch.
Edit: I'm going to send over a smaller Examples.zip that removes the test streaming files and other large filetypes (as sad as that is, some of those songs are awesome). If the combined file is less than 10mb, I believe Git should allow anonymous download. I'll have the new file up'd ASAP.
Edit Edit: bumped the issue thread on Git with the new examples zip. This SHOULD do it. Try bundling it with the next build. Sorry about that.
Maybe you should have a seperate download. For example, leave the "example.zip" with the APK, but also include on the download page (or a link to somewhere that allows larger files) an "advanced-example.zip" or something.
While I'm here, I'd like to voice the problems I've been having with Droidsound. I know I'm supposed to report this on the GIT site, but is there a "how to" section, since I have no idea how to report a problem there? Do I need to create an account (I really hope not. I hate signing up for things)?
In short, most of my problems have already been mentioned by other people already. The biggest problem is a lack of a menu/options/settings button. I also haven't been able to play MP3s from within ZIP files.
I prefer to use Rockbox myself, but Rockbox has no "play from archives" or PSF support. So I decided to try Droidsound again, seeing as it has received a number of improvements from the last time I used it. Hopefully the issues I'm experiencing can be resolved. Maybe then I'll be able to get more use out of it. Mouser X over and out.
Level99: thanks for the fix, won't send any mail now. What Mouser X said about the separated download, i like the idea. A dedicated server for this would rock, just like the original authors have.
Mouser X: unfortunately you need to sign up there :( current droidsound should be able to play mp3 from archives. About the menu/settings things, this is just because Google decided to remove the Menu button, now things are more complicated. Also this MediaPlayer problem is giving me headaches.
I'm fine with handing over ownership of the page/ftp (I don't mind using my personal ftp, or deleting this if someone else wants to get a real domain for it or whatever) to haspor or anyone he designates. No hosting of the APKs there until or unless there's a "final" of sorts, which would be fine. Hosting of the examples files are there though. The tiny one that was in most previous versions, and my Git-breaking one. Others will likely be on the way that include some and then as many of the vgmstream filetypes as I can cram in there.
Speaking of vgmstream, it seems that when it hits the loop point in a stream, the music just dies. It keeps playing, but no audio is coming out.
As well, a temporary solution for file location: If you don't want to have to always put stuff on the SD card, I just use ES File Explorer, browse to my file I want to play, then set Droidsound to default for that file type. That way, in the file browser, when I tap the file, Droidsound starts playing it, regardless of where it is on the device (Internal storage or SD card). I have the same device Sir-Sabin has (Ace II x GT S7560M) and it works great for a legacy device.
Might want to report your phone model and the issue over on the github if you're having that as a common occurrence.
There's also a parent issue open there about how Droidsound deals with external app file invocation. A lot is being worked on right now, methinks :)
And because you all seem to have these legacy devices I just went ahead and got an el cheapo one for myself so I can halfway replicate the bottom-end circumstances for these issue.
Well, for the sake of things, I guess I'll open a GitHub about and file a report. I might as well have an account there as there's a few projects I would like to keep tabs on anyway.
USF playback is real fun on my Nexus 4, where some files still don't play full speed, like Mystical Ninja: Starring Goemon.
I think there was also the issue I reported to haspor, that the player allocates a playback buffer based on sample rate alone, without rounding it up to a multiple of the channel count. The problem could arise that it asks the plugin to render an uneven number of shorts worth of samples, and the plugin reports that it produced exactly that many, even if it was a stereo file.
Been a while since I updated Droidsound, too. Now that I have, I have a question: what happened to Override Song Length? In the version I had before, it wouldn't extend tracks that were timed shorter than the default song length; it would only cut off tracks that were timed longer. That's specifically why I updated Droidsound - I was hoping to fix that bug. Now the feature is gone? Is it going to come back?
BTW, not sure when (or if!) I last said this, but major thanks for the work you've done with this, haspor. The new Droidsound is far and away the best VGM player I've found for my tablet. Kudos.
Ritzier: I removed it and added generic looping, now it will properly use the loop points if any. If there is are no loop points, it just starts again. In my opinion it works quite well.
Ritzierhades, there is no generic way to know if a song has loop-point/fade.
Fade-length is a bit nasty to create/implement. This can be done later tho. Would it help if i put back the default songlength selector with override? Since i implemented the generic looping, this time it could actually work as expected.
For the record, LazyUSF overrides everything, it's priority #1 #2 and #3. People wanted USF player, now they are gonna get it ( probably :) ) , and it comes with a price :(
Anyway, fade length isn't really what's bothering me right now (five seconds works). What's bothering me is that all my timed files are timed to end right at the loop point of the song. With these files, the current fade option makes the song fade out right before the end of the loop. I'd like the fade option to also add five seconds to the end of the song's timer, so it can fade out during that. That would make my timed files fade out right after the loop point, which is the way most OSTs have it.
And yeah, I understand that USF is the priority. If this isn't a quick and easy add, by all means save it for later. :)
Regarding the recent addition of Adplug to the development source, I would recommend borrowing the emuopl interface from my foo_input_adplug component, based on dbopl, because that emulator is much more accurate at some things, even compared to the so-called "most accurate OPL3 emulation" included with the SDL port of AdLib Tracker 2. For instance, compare the rhythm sounds from Operation: Body Count's nubc.imf, or Bloogton Mfg., Incorporated(28).imf from the Commander Keen series rip.
(Also, that one from Keen requires 1:1 sampling. My version of dbopl and the two emulators in my modified Adplug set the timing ratio to 1.0 if it's already near enough, such as if you ask for OPL2 with 3579545 and 49716Hz, or OPL3 with 3579545*4 and 49716Hz. Then you can use my fairly speedy and decent quality sinc resampler to downsample that to 44100Hz for output. Or to save processing power, you can pre-construct a series of phase tables. Ooh, I can do that too. I'll give it a try shortly.
All right, the adplug plugin is almost done, i just need to add the database thingy and the resampler, i wasn't aware of things that might happen if the database is not included.
The database includes speed overrides for some IMF files, among other things.
If you use the dbopl thing, it should be stereo from the get go, as long as you initialize it with the stereo parameter set to true. Otherwise, it will always be mono.
The resampler is the best way to have sample accurate emulation of some effects, as simulating it at 49716Hz with a 1:1 clock ratio and downsampling produces exactly the right amount of aliasing, whereas running the emulator at a different rate can result in unwanted aliasing that breaks some effects or songs.
The lanczos_resampler does not use the correct windowing for downsampling, and Lanczos is not the best choice of window for audio, either. I suppose I could update that old resampler instead, but you could just strip the newer resampler down to just sinc resampling.
You just need to remove the quality field, remove the inv_* fields since you're not including band limited synthesis, and pare the fill function down to just invoking the sinc function.
I also tried generating sinc phases for just 49716Hz -> 44100Hz downsampling, but that ratio results in 479 unique phases, which is about 32KB worth of signed 16 bit coefficients. You'd still need to construct the sinc resampler to utilize that table.
Yes, I do suggest using 44100Hz, if possible. No telling if some device doesn't max out at that rate instead of 48KHz.
EDIT: Here, add this to resampler.c, be sure to call resampler_init() first, then call that function with a resampling ratio (source / target) and a pointer to an integer. You will receive, upon success, a return pointer to a malloc'd block containing the coefficient set, and in the integer, the count of phases for reference.
https://gist.github.com/kode54/10956504
That code will produce a table ready for use with a function similar to what's in Blargg's Fir_Resampler.(cpp|h), as included with Game_Music_Emu. Or you could use Blargg's resampler as-is, but I'm not sure how it handles the task of downsampling, or if it has any muffling qualities.
edited 2:18 AM EDT April 17, 2014
Further Edit: Blargg's resampler would need to be doctored so that its max_res is at least 512, for ratios with odd frequencies like 49716Hz.
I just recently found this thread and that github build of Droidsound. It's great being able to play my 2sf, usf and ssf files on my Galaxy S4 (so far only a couple haven't worked, like N64 Gauntlet Legends), but when I try playing gsf files with it, they still end at their predetermined times and I can't seem to get them to loop infinitely the way it does with other formats. Did I possibly miss something in the settings?
Try generic looping from settings, if that won't help, then file an issue on project's github page and post couple of links to the songs that fails, issue will be processed at some point.
While this thread still has views, I'd just like to say that whoever made the droidmjt version of Droidsound deserves a medal.
He's done everything with Droidsound that I've only dreamed about, and I use his version of Droidsound just about every day.
My only gripe is that the PSF decoding doesn't appear to work. Though, considering the fact that he updates it more than once every 2 years, I should see that fixed eventually.
i dunno if this a bug or my phone being stupid, when i try to play files from a big ass zip or 7z file (60 mb and up) it takes a long time for it to play it or not play at all
It took my phone a couple minutes to play a song from an archive, but everything else inside loaded right away after that. I think the whole archive was loaded into memory first, which is why it takes so long to play the first song.
If you are using those .7z files from joshw.info site, they are all using the worst compression option in this case (solid block size = 1). That option hogs alot of memory, not recommended, you need to have the same amount of free memory as the uncompressed size of the data in the 7z file. Normal zip files should be OK. I have 42MB sized zip file and it works like a charm.