pouët.net

Android mod player

category: music [glöplog]
Red Zone does cause a crash - from Out Of Memory. Android processes have limited heap space, their are ways around it but I haven't exploited them all yet.
added on the 2010-08-19 19:48:46 by sasq sasq
Great, I've been waiting for a MOD player on Android. I'll check it out on my Nexus One tonight.
added on the 2010-08-20 01:12:25 by ravity ravity
It works nicely. Crashed after playing a couple of songs (in the song Sanxion which otherwise plays just fune) but then again it's not version 1.0 yet. Btw it also crashes (consistently) if you press play while you haven't loaded a song yet.
added on the 2010-08-20 01:29:58 by ravity ravity
[quoet]Red Zone does cause a crash - from Out Of Memory. Android processes have limited heap space, their are ways around it but I haven't exploited them all yet.[/quote]
It tries to load the entire file into RAM..? For what purpose?
added on the 2010-08-20 07:03:35 by mic mic
Quote:
Crashed after playing a couple of songs (in the song Sanxion which otherwise plays just fune) but then again it's not version 1.0 yet. Btw it also crashes (consistently) if you press play while you haven't loaded a song yet.


In Sanxion? Strange, should not cause any problems and doesn't for me...
Play-button - thanks for finding it, fixed.

Quote:
It tries to load the entire file into RAM..? For what purpose?


That's the way the plugin system works and most player libs need the entire thing - but I am adding a code path for GME (Game Music Emulator) when playing files that should take care of it. It will still fail if you put the music inside a zip though (until I hack GME to load from java input streams over JNI, but that seems a bit overkill for now :)
added on the 2010-08-20 09:50:53 by sasq sasq
Large files seems to work fine now - and as a bonus I compiled in VGZ-support, which actually makes things faster since the bottleneck on Android is often reading the sdcard.
added on the 2010-08-20 10:49:38 by sasq sasq
Quote:
That's the way the plugin system works and most player libs need the entire thing

They shouldn't need it. I've written a few VGM players for more limited systems where I just streamed the data from ROM. None of it should have to be in RAM - except maybe the sample bank, if you want to be able to seek independently in both the sample bank and the actual song when streaming the data from a file.

But it's nice to hear that you have a fix :) Will there be a beta6d or are you shooting straight for 1.0?

added on the 2010-08-20 10:59:01 by mic mic
Well for VGM that streams sound register writes you don't need it - but for all tracker formats you do, and I am more of a MOD & SID-person so... :)

I plan to release RC1 today, fix any critical bugs that I find, and then publish 1.0 on Market this weekend. After that I can start focusing on new plugins and such.
added on the 2010-08-20 11:15:38 by sasq sasq
RC1 is released

http://swimsuitboys.com/droidsound/
added on the 2010-08-20 13:36:32 by sasq sasq
Got a crash during the database update in RC1:

Code: V/GMEPlugin( 1925): Loading from file '/sdcard/MODS/vgm/Tintin_07.vgm' => OK V/GMEPlugin( 1925): (RC (null)) -> SONG 'Mountain Base' GAME 'Tintin in Tibet' LEN '-1' V/GMEPlugin( 1925): 'Mountain Base' vs '' W/dalvikvm( 1925): JNI WARNING: illegal continuation byte 0x20 W/dalvikvm( 1925): string: 'Alberto Jos� Gonz�lez' W/dalvikvm( 1925): in Lcom/ssb/droidsound/plugins/GMEPlugin;.N_getStringInfo (JI)Ljava/lang/String; (NewStringUTF) I/dalvikvm( 1925): "Thread-9" prio=5 tid=17 NATIVE I/dalvikvm( 1925): | group="main" sCount=0 dsCount=0 s=N obj=0x454c2228 self=0x125608 I/dalvikvm( 1925): | sysTid=1932 nice=0 sched=0/0 cgrp=unknown handle=1177800 I/dalvikvm( 1925): at com.ssb.droidsound.plugins.GMEPlugin.N_getStringInfo(Native Method) I/dalvikvm( 1925): at com.ssb.droidsound.plugins.GMEPlugin.getStringInfo(GMEPlugin.java:109) I/dalvikvm( 1925): at com.ssb.droidsound.FileIdentifier.tryLoad(FileIdentifier.java:183) I/dalvikvm( 1925): at com.ssb.droidsound.FileIdentifier.identify(FileIdentifier.java:238) I/dalvikvm( 1925): at com.ssb.droidsound.FileIdentifier.identify(FileIdentifier.java:200) I/dalvikvm( 1925): at com.ssb.droidsound.SongDatabase.scanFiles(SongDatabase.java:735) I/dalvikvm( 1925): at com.ssb.droidsound.SongDatabase.scanFiles(SongDatabase.java:880) I/dalvikvm( 1925): at com.ssb.droidsound.SongDatabase.doScan(SongDatabase.java:1057) I/dalvikvm( 1925): at com.ssb.droidsound.SongDatabase.access$2(SongDatabase.java:951) I/dalvikvm( 1925): at com.ssb.droidsound.SongDatabase$1.handleMessage(SongDatabase.java:286) I/dalvikvm( 1925): at android.os.Handler.dispatchMessage(Handler.java:99) I/dalvikvm( 1925): at android.os.Looper.loop(Looper.java:123) I/dalvikvm( 1925): at com.ssb.droidsound.SongDatabase.run(SongDatabase.java:324) I/dalvikvm( 1925): at java.lang.Thread.run(Thread.java:1096) I/dalvikvm( 1925): E/dalvikvm( 1925): VM aborting
added on the 2010-08-20 15:38:06 by mic mic
Another format suggestion: MDX
Source code for MXDRV and X68Sound is available at http://gorry.haun.org/mx/, though I haven't looked at them so I don't know how hard/easy they are to port.
added on the 2010-08-20 15:52:33 by mic mic
Fixed that bug and a couple of others. Now trying to index the whole Project 2612 collection which is taking forever (partly because the MediaScanner is also scanning the same directory)... but so far so good.
added on the 2010-08-20 23:57:19 by sasq sasq
emailed already but i'll post here also.
Another format I would like is SND for Atari ST.
Open Source code (GPL) can be found here for player:
http://leonard.oxg.free.fr/stsound_download.html
Cheers
Jason
If you can parse XML, you can get into the backend of Modarchive.org, specific interest to me is the Random module picker :-) Let me know if you want more info and an API key
added on the 2010-08-21 04:14:45 by m0d m0d
It's now up on Android Market - so tomorrow I'll start looking at new plugins and stuff, probably beginning with UADE.

Oh, and compiling for release sped some things up quite a bit.
added on the 2010-08-21 17:23:08 by sasq sasq
Quote:
emailed already but i'll post here also.
Another format I would like is SND for Atari ST.
Open Source code (GPL) can be found here for player:
http://leonard.oxg.free.fr/stsound_download.html
Cheers
Jason


Absolutely do not add support for this. The SNDH format is a hell of a lot better and more up-to-date. STSound is old and unsupported by the community.
Awesome. Works like a clockwork on my Samsung Galaxy S. Great work there Sasq!
added on the 2010-08-22 00:03:29 by ozoi ozoi
and so - who will make tracker for android now? :]
added on the 2010-08-22 00:39:40 by nula nula
maybe something like milky or schism can be ported to android? :P
Nice... destroyed my battery with the SID player though. Ah, 8 bit... Droid 2, stock 2.2, market version.
I'm not sure why it needs calling permission, though. (to pause itself when a call comes in?) And downloading permissions seem excessive if they're only used once, to download the example MODs
added on the 2010-08-22 03:38:18 by crusader crusader
Oh, I see, the help file has download links that require internet connections
added on the 2010-08-22 03:42:56 by crusader crusader
someone is already trying to port Milkytracker to Android, though so far their success has been very limited, guilliame (iirc, dunno if i spelt it right) in #milkytracker on irc.esper.net
added on the 2010-08-22 06:16:57 by m0d m0d
Quote:
Nice... destroyed my battery with the SID player though. Ah, 8 bit... Droid 2, stock 2.2, market version.
I'm not sure why it needs calling permission, though. (to pause itself when a call comes in?) And downloading permissions seem excessive if they're only used once, to download the example MODs


INTERNET permissions is also used to directly open web links - try clicking a song link from the browser. And SIDs from the CSDB database are played over http if HVSC is not installed. And upcoming versions will have databases that always use the net (like modland).

It's not a calling permission, just READ_PHONE_STATE, which is used to pause on incoming calls like you said.

Someone else also complained on battery life on Droid (or was that also you? :) anyway, I don't have that experience - I can play SIDs for a long time before the battery drains (the phone never gets warm). I'll try to add some kind of battery test in an upcoming version...
added on the 2010-08-22 08:28:22 by sasq sasq
Ok, so it looks like my battery issue had more to do with me leaving the wifi radio on. Battery life is fine and I have no evidence it drains any faster than the standard music player (yet, of course).
added on the 2010-08-22 17:49:38 by crusader crusader
Oh nice. Installing the rc1 deleted my MODS directory on the SD card. I even tested this by removing the app and installing again and it deleted the folder again. You might want to fix this.

login