yashsingh1/xdaforums huggingface dataset:
[Android Software Development] homeslice976:
Man this is awesome!! can't wait for the next version. Thanks for this!!

Edit: It did quit working after a few minutes and when I went to turn it back on it force closed, so I set it again and it's working OK at this point. Still look forward to the next version
[Android Software Development] artlan:
Okay, so for laughs I added in (well, replaced really) all the preset files on my phone with the ones from the Winamp Milkdrop folder

(winamp\plugins\Milkdrop2\presets\) and they worked! MUCH prettier too.

*happyhappyhappy* What a awesome bday this was with this working yesterday ;)

Thanks!
[Android Software Development] homeslice976:
Oh yea - much nicer.
[Android Software Development] enp82003:
Despite having my cars transmission die on me :/! This made my day Thank you! SO SO SO SO MUCH! is there away yet to change the visualizations tapping or keystroke? is AerialX accepting donations?

Thank you so much guys for making a dream come true :D
[Android Software Development] papaw00dy:
workimg on atrix

got it working on the atrix, buggy but beautiful. had to set it as wallpaper on another profile and switch between profiles to get it to stick. really appreciate the hard work, some presets don't work right. Is there any way to make it display current preset so i can get rid of the ones that don't work.

any chance it could run in webtop mode? probably would be more like standard projectm as webtop is built on ubuntu.
[Android Software Development] KLoNe1:
SOOOO Glad I ressurected this thread from the crypts!

Great work AerialX - we're all super thankful for your work! Please come in and join YOUR thread! :)
[Android Software Development] enp82003:
Yes glad u did... was trying so hard for like a year to do this!... I noticed some of the visualization make the music player crash and stops the music from playing... happens when visualizations turn funky looking or just black... anyone else have these issues? Would be cool if you could see the names of the visualizations to pull out the bad ones... but for now I'm gonna pull the ones from droid x. Ill post as soon as I do.

here is the droid x's Milk files I don't think there is any copywrite issue due to them being milk files that do come with winamp.
[Android Software Development] AerialX:
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:

$ 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? >.>

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?

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?).

Right now, nothing like that. I'll come up with some interface stuff and settings later.

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.
[Android Software Development] artlan:
We posted the droid X milk files a back on page 3 :)

Also, if you use the files directly from WinAmp itself they look amazing ^^ (Also on page 3)

Sweet, thanks for those commands!

Also, performance wise:

I use an Evo 3G phone. Using the default milk files from the old source, most of them ran rather "slow" looking, but some were pretty smooth and others were just black.

Running the .milk files from winamp - lots more were pretty smooth looking though some did have some noticeable lag, and only a few were plain black.

Over all, I'd say it's about as good as we can expect unless your going to magically include hardware specific optimizations and video chip utilization :)

On mine when it crashes it just reverts to my last static wallpaper. May also be due to my launcher (LauncherPro) because if I reboot the launcher or the phone it will sometimes go to a black wallpaper, or even actually load up ProjectM

Interface and settings would be so sweet - but as I said before, am loving it so far.

Any update on how your more recent build is coming?

Also, will definitely have to donate - just need to wait for my next paycheck to do so :)
[Android Software Development] enp82003:
Seems to be running great on my G2 with the newest CM nightly. Don't know how to check FPS though but seems on par with my milkdrop on my desktop. I played through 5 different songs so far with the droid X's Milkdrop Presets... with no crashes. but if I add the 500+ milkdrops from winamp or that was posted here, it will cycle to a visualization that looks funky then crash and music will stop too.

I do not know how to use logcat but if i did i would go through the 500+ visualizations and take out the ones that crash. Would be a long task I'm sure someone might be up to it? lol
[Android Software Development] Metastable:
@AirealX Looks like you beat my to it! I haven't tested out your build yet but was just wondering if your using the old snoop() method or the newer Visualization class introduced in 2.3? Either way, congrats.

Looking at the source it seems to just be using NDK and not any Java calls.
[Android Software Development] AerialX:
Maybe I'll get some time to work on it this weekend, can't quite say though. Might not be until the end of next week. I've actually been pretty busy since the night I quickly made that build :/

That sounds almost impressive, the performance is really bothering me. My iPhone port does much better in SpringBoard's background on my iPod Touch 4G than this does on my Nexus S. Getting the performance up is a huge priority for me. But, this was just an initial build and it's not even using my projectM port. I'll definitely be able to tweak more performance out of it.

I am using the Visualizer class, wasn't aware that it was new to API level 9. The whole thing is really just a thin wrapper around projectM - hell, most of the time I spent on this was porting rather than writing the wrapper, and then I went and swapped in Motorola's port instead when I was too lazy to fix my FBOs :P

Care to point me in the direction of the old snoop() method? I'd like to compare the performance differences between using Android's Visualizer class vs. projectM's own FFT (also, less dependence on 2.3 is a good thing).
[Android Software Development] enp82003:
This is really exciting i can't wait to see the outcome :D
[Android Software Development] Metastable:
It's an undocumented method that Google used for their audio visualizer live wallpapers. This Stack Overflow post sums it up pretty well. For my audio visualizer wallpapers I simply checked for Android version and used the appropriate methods for grabbing the audio stream. From what I hear there's a small lag with snoop() but I never actually did any test.
[Android Software Development] KLoNe1:
Am I hearding a AerialX/Metastable/Milkdrop Tagteam forming here? ;)

errr, I didn't want to say a thing critical until I had evidence that this thing was going ahead :D

But, well, yes - after being used to Milkdrop running full-screen at 1920x1200 @ 60fps, yeah the Live Wallpaper does sorta suck. Give me 10 mins and I'll chuck up a video comparing the two.

http://www.youtube.com/watch?v=mzy6w4CZRps

Wow, YouTube really messed up the quality - it was supposed to be 720p :/
[Android Software Development] KLoNe1:
Here man: 92N996906W5485508

Go have a couple of drinks on the house :)
[Android Software Development] AerialX:
Nice, I'll look into trying it instead.

Wait, do you think the visualizations before 43s in that video suck? It seems to be way better than anything I'm getting on my device. From that video it seems almost perfect except when it hits certain visualizations (like the one at 43s) and chokes.

Just saw the email, thanks!
[Android Software Development] Wicia:
Wow, thats one of my dreams came true ;)

ProjectM was one of two things, that i wanted on my phone, and XDA users helped as always ;)

My second wish was to port some new, cool transition animations that I saw on youtube -

http://www.youtube.com/watch?v=kNyVXIEG3gg

Here is a topic (with all informations) that I started about this (open source) mod - http://xdaforums.com/showthread.php?t=1004372

If there are some devs interested - please help ;) Unfortunately I can't do this ;)
[Android Software Development] Metastable:
It's just my opinion but you should use the newer 2.3 Visualization class whenever possible. It allows for greater customization including choosing PCM or FFT data. I'm not sure if projectM only looks for 1 type but would make for greater customization. Like I said, it's just my opinion =]
[Android Software Development] AerialX:
Well, projectM is only really set up to take PCM data, but it can be hacked to take FFT. I wouldn't say the greater customization is a big deal, though I agree that it's the better choice simply because it's a documented API. I'd just try it out to see the performance impacts of the different approaches (snoop() PCM, Visualizer PCM, Visualizer FFT), as well as keep snoop() in mind for those on pre-2.3. (Are there many still on the older versions?)
[Android Software Development] ishould:
For me it appears in the live wallpaper preview, but force closes applying it

HTC Sensation stock
[Android Software Development] Metastable:
No, definitely. I didn't mean drop snoop() all together, because as you said, 2.1 and 2.2 are still the dominating versions of Android in the wild. I was just worried you would drop the Visualization class in favor of the more widely used snoop() (in terms of OS version).

If you need any help with some Java coding, let me know, I'd be more than happy to help out.
[Android Software Development] AerialX:
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 >.>).

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.

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.
[Android Software Development] dickie2007:
Hey AerialX,

Just tried the updated versions and both give me the same result; mainly a black screen (background) and occasionally alternating to white and back...

Your original port worked ok on my SGS2, the only issue i noticed was that it went behind the status bar, but thats no biggie and probably just the nature of the one-size-fits-all formatting...

other than that, its great to see someone working on this!

Cheers,

Dickie

Oh, on a side note, do you think Chainfires Chainfire3D could be used to improve it with AntiAliasing or forced 24bit depth buffer??
[Android Software Development] AerialX:
That is strange, could you maybe run adb logcat as it starts up and give me the output? You could also try this build, which doesn't use framebuffer object rendering: http://dump.aaronlindsay.com/8bdefb7e.apk

Or, alternatively, try this one that does use framebuffer rendering, but still copies some textures around: http://dump.aaronlindsay.com/dd42dad0.apk

These ones should work, I'd hope... You have a SGS2 so at least you won't see as poor performance as I do. Though, the framebuffer rendering in the original I posted really is much faster...

Unfortunately, I don't have any devices besides my Nexus S so it's hard for me to say what it's compatible with >.>... I was hoping the faster framebuffer rendering would be fine with anything...

It goes behind the status bar on mine too, actually. It's something I need to get around to fixing.

I'm not familiar with that, but I don't believe the depth buffer is even used enough for it to really matter. AA, dunno, guess you'd have to try it? There are some settings in projectM itself that can be used to get better image quality (higher computational resolutions, basically) that will be in a settings panel when I get around to adding that.

EDIT: Looked at what that is, looks like it's just something that modifies OpenGL calls... Which is useless considering that anything it can do, I could just code the app to do in the first place.
[Android Software Development] Metastable:
Yeah no worries. Good luck and the latest update, non NEON, works great.
[Android Software Development] artlan:
Tried out both builds on my Evo 3G - certainly smoothly looking! averaging around 28fps on the few times I bothered looking at the LogCat

The Neon build DID load up on mine and started fine - but for some reason nothing I did seemed to get it to pick up that music was playing. Made for a pretty, if not static, view.

The Non-Neon build seemed to run as smoothly as the Neon one, and did pick up audio from both 'Music' and and 'PowerAMP' - had a few less "black screen" presets

Lovin this :D
[Android Software Development] dickie2007:
Ok, both those versions run fine and fast, although as with the original port i get some artifacts, like interference looking short horizontal lines over all the visualisations that ive seen... is this common amongst other phones or is this specific to the sgs2??

Also, if we could have higher quality graphics that would be awesome, does look a bit retro graphically as its nowhere near as crisp as the rest of the phone... if you get what i mean...

Do you still need that logcat?

Also, i'm getting some good fps, but i tried the loagcat cammand you mentioned before but i can't see the preset name, just the fps, should it be stdio or stdout?

Cheers

Dickie
[Android Software Development] artlan:
Well, for the artifacting I don't know if it's common on other phones but it's certainly not on mine. The graphics look nice and crisp, very close to the PC version a lot of the time.
[Android Software Development] dickie2007:
On further inspection, it appears they're lines of the display that are being drawn slightly off to the right...

These lines are there constantly, irregardless of the preset being displayed, their visibility just varies and are more visible if there are verticle lines drawn...

I've attached some pics and circled some examples of the lines... like i said, they are there on all presets, so they are not part of the visualisation...

Cheers

Dickie
[Android Software Development] orizzle:
This is looking great. I just installed it on my rooted Nook Color running CM7. Planning on using it in my car for playing MP3's. Looking forward to further development.
[Android Software Development] ishould:
Works great now! Keep up the good work
[Android Software Development] s_firestone:
I just tried the non-arm7 version on the Acer A500 and it runs. The Arm7 neon version would not run.

I need to pull the fps but its fast. Fast enough that its running through the presets about once per every 3 seconds. Milkdrop always used to run best at about 30fps (60fps makes it look like early Dos mode visualizations).

I wonder if the resolution needs to be adjusted for the native size to the tablet.

You are SO on my Christmas list!!!
[Android Software Development] s_firestone:
A couple of observations after getting to use it for a while.

The visualization routine appears to keep cycling even when no music is playing (The original milkdrop code would halt when audio input stopped, or rather when the music player was actually stopped or paused).

When starting a song, the visualization appears to operate normally, uniformly drawing with the input range appearing to be proper for the formula being executed. However (with music playing), upon rotating, opening an app full screen, etc. the visualization changes (resets maybe). It looks like the audio output scale is no longer matched to the program variable, making the running visualization look blown out and chaotic. Pausing or stopping and restarting the music appeared to reset it and allow it to settle down, until the next screen rotation or full screen app.

Aside from the aforementioned items it does keep running. It experienced one graphic corruption (changed wallpapers and then opened it again), in maybe three hours of use, and no FCs. This is all while I am switching out between apps, games, etc.
[Android Software Development] AerialX:
I haven't had any time to work on this, but to answer a few questions...

Strange, I'm not really noticing this.

Yup, there will be quality settings.

I could use it, but I have a feeling it won't actually complain about anything and this will be a mystery destined to just become another performance option.

You do indeed need to do the stdio thing I mentioned to see preset names.

Yeah, when I get settings in I'll make sure the framerate limiter is there. It should be switching about every 10 seconds though, what exactly is the FPS you're getting?

It kind of does, I'll handle this soon with the quality settings I've mentioned.

Indeed. It restarts itself a lot, basically. And breaks things. These kinds of issues will exist until I get beyond the proof-of-concept stage.

I also had a PM asking about x86 support. (Seriously, can we move this thread somewhere that doesn't require you to have 10 posts to comment?).

The NDK's x86 support is somewhat broken at the moment, so current builds don't include it. The final build will, however, support x86 (and maybe earlier builds too if an update comes out soon).
[Android Software Development] AerialX:
So, to anyone who might still be watching this... Could I get a poll from everyone stating their device, and whether the non-neon (or neon if it works) build from this post (download) works? If not, state your device and whether the slower framebuffer option from this post (download) is required instead. Or if both fail, let me know if the second option in that post (download) is required instead.

tldr; list your device(s) and which of my recent builds actually works for you.
[Android Software Development] dickie2007:
I had issues with both original downloads, but the second lot you posted worked ok.

SGS2 stock 2.3.4 KG6

FWIW, the processor in the S2 supports Neon fully, so an optimised version would be awesome...

Dickie
[Android Software Development] homeslice976:
HTC Inspire 4G - neon build works very well
[Android Software Development] artlan:
HTC Evo 4G, running Fresh Rom 4 (sense based)

Both versions run but Neon one doesn't seem to catch the audio stream. Non-Neon works great though.
[Android Software Development] viulian:
I have an Sony X10 with latest GB 2.3.3 version (trimmed down version though, with tweaks).

I have tried the following:

230817b0 -> works

3728eabe -> works

8bdefb7e -> white screen only (but phone seemed a laggy). The preview showed the white screen, setting it remained white.

dd42dad0 -> preview works. But when I set it live, it tries to initialize and then the previous normal wallpaper appears.

Cool :)
[Android Software Development] bamso:
This.Is.AWESOME.

Loved milkdrops for winamp when i was younger.

You my sir, are great!
[Android Software Development] camoway:
hey can ya zip up those ones that worked and shoot them to me plzZ or just post em here? :D
[Android Software Development] camoway:
--------------------------------------------------------------------------------

OH ya My results: Vibrant 2.3.5 cm7 "230817b0.apk" neon works GREAT!!!

i tried the rest but for got the order in witch i tried them. some were slow 1 froze my phone.

but agian 230817b0.apk works like a charm.

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

A N D THANKS SO MUCH TO AerialX

GOOD JOB BRO!!!!!
[Android Software Development] enp82003:
I hope this gets updated soon! Its so awesome having some Milkdrop even if it is a little buggy...
[Android Software Development] camoway:
um not showing up in my prog list or in my data app folder or my system app folder or in titanium back up or any ware.... how in the ____ do i uninstall this thing. so i can install the latest version? looking through the lib folder dident give me any .so of this either... im kind tweaked right now.
[Android Software Development] AerialX:
If it's installed it should show up under the manage applications page as "androp live wallpaper". Or you could uninstall it with: adb uninstall com.japaneatahand.androp