ProjectM (Milkdrop) for Android

Search This thread

WACOMalt

Senior Member
Jul 31, 2009
285
742
Google Pixel 6
So I was searching though Motorola's source code the other day for the Droid X, and I stumbled upon a visualization folder. Looked inside, and to my surprise I see folders labeled as "projectm" Which is the open source port of the beautiful Milkdrop plugin for Winamp on Windows (to my knowledge).

So I dug around a bit, but not being a developer I couldn't figure much out.

Today though I was creating a shortcut to an activity in LP. And I saw "Visualization" category In there there is an activity to start the visualization!

I also finally found where the visualization was originally implemented. I reinstalled Motorola's stock music app, and saw the visualizations there.

So anyways, now that I see the source code is already there, and I am trying to learn android development, I am going to try to get it running as a live wallpaper, and also try to improve on it a bit, as it renders pretty low res, and doesn't seem very optimized.

I am not sure if this is a full port, or just enough to run the few presets Moto included.

But at current I figured I would share with you all how to get the Moto version of this app running :) Hopefully I can get my standalone version/live wallpaper working soon!

Also, not sure if I can post Moto's apk for those that dont have it. someone let me know.


attachment.php

Screenshot of it running standalone. It reacts to any Media audio.
 

Attachments

  • CAP201101301347.jpg
    CAP201101301347.jpg
    24.6 KB · Views: 19,598
Last edited:

enp82003

Senior Member
Oct 27, 2010
169
6
Dude If you actually get this running as a stand alone for other phones I will help fund your development of this! check my other post been trying to get this done for awhile! so happy you made this post!
 

uio88

Senior Member
Apr 19, 2009
140
46
Please can you send to me the apk via pm?
i also tried to port it on my acer liquid :)
 

enp82003

Senior Member
Oct 27, 2010
169
6
Wondering how Development was going? I talked to a Dev named kholk who said he would help me and work on this as well.
The Dev seemed really nice and willing to help said he wanted to do it for free.
 

kholk

Retired Recognized Developer
May 20, 2007
2,293
3,829
Torino
It's interesting! And it looks funny :)

Anyway, if we don't have a Motorola phone we can't use them legally speaking...

...but if you upload them and post them here saying that if you haven't got a moto phone you shouldn't download it... well... not your problems :)

P.S.: I'm looking into it, but this week I'm not at home. If someone anticipates me, well.. good. Otherwise you have to wait for some days :/
 

enp82003

Senior Member
Oct 27, 2010
169
6
It's interesting! And it looks funny :)

Anyway, if we don't have a Motorola phone we can't use them legally speaking...

...but if you upload them and post them here saying that if you haven't got a moto phone you shouldn't download it... well... not your problems :)

P.S.: I'm looking into it, but this week I'm not at home. If someone anticipates me, well.. good. Otherwise you have to wait for some days :/

Awesome Man! Take as long as want its awesome someone is actually trying to do this was at the gym the other night thinking about how cool it would be to have some visualizations to look at while doing cardio.
 

WACOMalt

Senior Member
Jul 31, 2009
285
742
Google Pixel 6
Sorry for the lack of updates recently. It seems the project died before it started for me. I simply dont have the time now. (I just got a bunch more web work to do. Yay!)

The source is of course open via motorola, just download the Droid X motorola source code and its in there.

Good luck to whoever tries to do it! And please keep me posted :)
 

enp82003

Senior Member
Oct 27, 2010
169
6
would be sure to donate if anyone could get this working... Sorry to see you end development WACOMalt =( hopefuly some other devs will jump on this project like kholk! =) donations will be made who ever can get this thing going. Also would be a first for this app i been searching google for awhile and a lot of people want something like this.
 
Aug 28, 2009
38
1
37
Perth, Western Australia
OH MY FREAKING GOD!!!!! This has excited the **** out of me!!!

MilkDrop (IMO) is STILL the greatest visualisation ever made - it reacts so well to music and continues to surprise me. I've even started VJing with it (although it is very hard with such a limited VJ console).

I would be very interested in seeing this running on Android (specifically my Desire HD) simply for the gimick. If anyone legitimately thinks that they are capable of porting this please contact me. If you can convince me of your capabilities I will donate some money upfront and continue as development progresses.
 

Wicia

Senior Member
Sep 14, 2010
75
34
I did a little reasearch on my Samsung Spica;)
The Droid X source code is here -> https://opensource.motorola.com/sf/frs/do/listReleases/projects.droidx/frs.droidx_source_froyo
The source of visualisations is on the 4th page of files -> https://opensource.motorola.com/sf/...roidx_source_froyo.shado_x6_2_3_15?_pagenum=4 in motorola_external_visualization.tar.gz
I dont know how to compile it, so I tried another method. I've found Droix X rom on XDA -> http://xdaforums.com/showthread.php?t=786541 and I copied all files, that I thaught, have something to do with visualisations. Now I can create a shortcut via Activities in my launcher to com.android.music.VisualisationMPDisplay , com.android.music.VisualisationMPSetings, com.mototola.visualisation.VisualisationDisplay but none of them works. When I try to load Visualisations app, it loads, and then returns to launcher.
I dont know what to do next, here are my files which I copied to my /system/ partition
http://www.mediafire.com/?d23orectf78jr5u
Maybe they dont work, because Spica has ARMv6 cpu, and Droid X ARMv7 (?)

here is logcat showing the moment of launching the com.android.music.VisualisationMPDisplay shortcut: http://pastebin.com/acAv0fck What's wrong?

Hope someone can fix it ;)
 
Last edited:

enp82003

Senior Member
Oct 27, 2010
169
6
I tried doing what your doing it semi bricked my G2 deff want to see more done with this!
 

KLoNe1

Senior Member
Jun 28, 2010
606
88
Brisbane
Wow! This NEEDS to get some attention! I'll try linking some people/devs here! :) Everyone do the same for their handsets!
 

enp82003

Senior Member
Oct 27, 2010
169
6
I really hope you have more luck then I have had its been so hard to get anyone to look at this and get it working would be amazing if a dev could do it... back when I had money offered donations to devs that could get milkdrop working... no go =/
 

artlan

Senior Member
Aug 7, 2007
227
96
I really hope you have more luck then I have had its been so hard to get anyone to look at this and get it working would be amazing if a dev could do it... back when I had money offered donations to devs that could get milkdrop working... no go =/

Well, from what I can gather (from this thread and the few others related to it - just putting it here so others can see it quickly) It looks like it's not so much the Milkdrop files that are the issue, but rather the Music.apk thats needed to run it.
It looks like Milkdrop in and of itself can be just dumped in, but the Music.apk from the Droid X relies on a framework we don't have - and just dropping that into our phones is obviously a bad idea (bricking).

So someone would have to find a way to patch/mod the Droid X Music.apk file to run on our phones for this work.
 

KLoNe1

Senior Member
Jun 28, 2010
606
88
Brisbane
I've just been PM'd by an apparent DEV who is interested in porting this project. Their username is: AerialX. But supposedly can't post on any forums because of a techincal forum issue.

I can't believe this project may may be getting underway! :)
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    Sorry for the delay, beating back the demons of procrastination.

    Attached is the zip file with the presets I have according to the spreadsheet.

    I zipped the folders into the file. The /presets folder contained in the zip corresponds to the '/mnt/sdcard/projectm/presets' folder. The other two folders will not be parsed by Androp, they are my scratch directories from weeding out all the partial and non-working presets.

    /presets
    /partial-working
    /non-working

    There are still a few black or white screen presets in the main presets folder. I just haven't found them due to the very time consuming process of copying the presets into the presets folder in small batches and then running them manually to pinpoint the bad ones. I suspect its no more then 5 or so presets.

    There is also some leftover stuff in the /presets folder from what looks like a compile. It's doesn't seem to impact anything but can probably be removed.
    4
    Alright, update time folks. This totally just ate up my whole Saturday :(

    Mainly, this is a performance update. First, I switched from just stealing Motorola's projectM 1.1 port to using my own projectM 2 port. Their port used a slow render, copy-to-texture, render approach... Mine runs much quicker as it renders directly to a framebuffer object texture. Then I went and optimized some performance-critical logic in projectM, which actually gained more than I expected. Finally, I replaced the slow standard libm/trig stuff with custom implementations, optimized for ARMv7's VFP FPU.

    All together, this brought the performance of my test visualization from 12fps on the old build to a perfect 60fps with this new one. Most visualizations I tried work really well now, though there are of course still some that the device just will never be able to handle... (And still some that just show white screens, I believe this is because these ones rely on pixel shaders?)

    Instructions are the same, place the milk files linked to previously in this thread in /sdcard/projectM/presets. Install the APK and then go use the "Androp" live wallpaper. It requires Android 2.3 or later.

    Download Link Here

    For those who want a bit more performance, you can download a ARMv7 NEON build here. This isn't an actual NEON-optimized build (my NEON functions don't quite work properly), just -mfpu=neon... But it does seem to help a little on my Nexus S so if you have a newer device you should try it.

    Also, these new builds print out the FPS to the device log every 5 seconds... So you can use logcat to gauge the performance if you wish (though it's fairly easy to tell at a glance whether it's running at 60fps, 30fps, 15fps, or worse). You can use the stdout logging commands I listed earlier in the thread to see the log of presets being loaded.

    So, uh, enjoy! Remember that there are no new stability improvements, so you should still expect all the usual random crashes and the like (though I actually haven't been able to crash it myself recently). And if you like, you can donate here (I hate to ask, but I am spending time on this when I should be working on other things >.>).

    For me it appears in the live wallpaper preview, but force closes applying it
    HTC Sensation stock
    Heh, try the new build? Honestly, it's not very stable right now. But feel free to send me a crash report (such as the contents of logcat when it crashes) and I'll try to look into it.

    If you need any help with some Java coding, let me know, I'd be more than happy to help out.
    Thanks for the offer, don't believe I need anything right now though. I'll have to put a settings interface together for it at some point (and I've never done any Android dev before), but I doubt that's going to be too difficult...

    EDIT: Fixed the download links.
    3
    So I was searching though Motorola's source code the other day for the Droid X, and I stumbled upon a visualization folder. Looked inside, and to my surprise I see folders labeled as "projectm" Which is the open source port of the beautiful Milkdrop plugin for Winamp on Windows (to my knowledge).

    So I dug around a bit, but not being a developer I couldn't figure much out.

    Today though I was creating a shortcut to an activity in LP. And I saw "Visualization" category In there there is an activity to start the visualization!

    I also finally found where the visualization was originally implemented. I reinstalled Motorola's stock music app, and saw the visualizations there.

    So anyways, now that I see the source code is already there, and I am trying to learn android development, I am going to try to get it running as a live wallpaper, and also try to improve on it a bit, as it renders pretty low res, and doesn't seem very optimized.

    I am not sure if this is a full port, or just enough to run the few presets Moto included.

    But at current I figured I would share with you all how to get the Moto version of this app running :) Hopefully I can get my standalone version/live wallpaper working soon!

    Also, not sure if I can post Moto's apk for those that dont have it. someone let me know.


    attachment.php

    Screenshot of it running standalone. It reacts to any Media audio.
    3
    zomg, forums successfully spammed. I can post now! :D

    To start, yes, it's bugged and unstable. Like I said, this was the first build I made that did anything besides crash instantly. I have a feeling that the app is simply hugely leaking memory, and causing itself to die and other apps around it (like music), but for all I know it could be due to specific presets.

    If you want to know what presets it's using, you'll have to use adb logcat, and turn on stdout logging. Then you'll see the filenames come up as it loads each visualization for a transition:
    Code:
    $ adb shell stop
    $ adb shell setprop log.redirect-stdio true
    $ adb shell start
    $ adb logcat

    I haven't seen one single comment from anyone on its performance yet. Does my Nexus S just suck or is no one else bothered by the fact that it only seems to run at ~20 fps? Or maybe you guys just aren't used to seeing projectM run at an awesome 60fps on a PC like I am and don't know what you're missing? >.>

    had to set it as wallpaper on another profile and switch between profiles to get it to stick.
    That's... odd. Definitely shouldn't act any different than any other live wallpaper. Though one thing it seems to like doing is revert to a different live wallpaper when it crashes (which happens often). Is this what was happening?

    any chance it could run in webtop mode? probably would be more like standard projectm as webtop is built on ubuntu.
    I don't have anything but my Nexus S, so I have no idea what that is... Googling around it looks like an X display with some GNOME splashed in... Which definitely would be able to have it as a background. So, sure, possible. But it would be a sort of different app and I'm not sure how to develop for this webtop mode (is it possible to run in an emulator somehow?).


    is there away yet to change the visualizations tapping or keystroke?
    Right now, nothing like that. I'll come up with some interface stuff and settings later.

    is AerialX accepting donations?
    I guess this will cost me at least $25 if I want to throw it in the market, so sure. I'd appreciate any donations: here.
    2
    Haha, awesome. Guess I was too late :p

    Thanks for all of the support in this thread, I apologize to you guys for not getting the time to finish mine. In the end it's much better this way anyway :)

    nubecoder: ohai, I remember you as that guy who wrote the file combiner for superdump.

    psperl, I hope you do end up releasing the source at some point. In fact I'll have a number of rhythm games that I'd love to use it in, though I'm not sure how you would license it for LGPL-incompatible platforms.

    In case anyone's interested in my port, I've thrown it up over on github here. It's just a basic shaderless build of projectM 2.0.1 for OpenGL ES1, with a few random optimizations in hot spots and some framebuffer hacks for speed.