XenoAmp² - A clean looking audio player that has it all!

Search This thread

ssuukk

Senior Member
Blade Runner Diaries OR The (less exciting) Story of XenoAmp 2

WARSAW,
FEBRUARY 2019​



So - I was surprised that some of the guys who commented my initial post about XenoAmp on XDA back in 2012 still lurk here (thanks cauch_y, Freak07, 39FarmallM)

When I wrote that post I had zero knowledge of Android coding and just very faint memories of Java (although back in 1995 when it was released I started learning it straight away). So really I had neither Java nor Android skills back then... What I did have was a vision of UI that I wanted to implement, and since XenoAmp is in Play for some years now, you may wonder how close the final effect was to that vision. The answer is: HARDLY AT ALL.

You see - I quickly learned (the hard way) that coding on Android isn't CODING WHAT YOU WANT, but rather HOW ANDROID ALLOWS YOU TO. But still I tried and I don't even remember how many times I fought Android and Android won, before I finally gave up trying to do things my way. But if it was the only Android annoyance I'd be a happy coder anyway, believe me. Unfortunately there are worse showstoppers: some of the things that you can find in Android documentation work only THEORETICALLY. Yes, guys! BUGS! Lots of them and surprisingly Google rarely cares about fixing them, probably being too occupied with releasing groundbreaking new features (sarcasm) and adding 1 to Android version every month. So imagine your app behaves badly and, after hours of scratching your head and thinking why your code doesn't work, you stumble across Android bug report filed in 2010 with countless comments like this:


Hey guys! Will it be fixed in 2011?

I wonder the same thing...

...

Hello, the bug still exists in Android n in 2012!

Me too!!!

Me too!!!

Me too!!!

...

Who's first in 2013?

...

It's 2014 and it is still not fixed?!

...

Shame on you Google in 2015!

Shame!

Shame!

...

C'mon it's 2016, why does this bug exist?

And so on...

But that's not all! After you rewrite broken Android classes with 1000s lines of your code, your app stops working or crashes because of WONDERFUL (sarcasm) NEW FEATURE INTRODUCED IN NEWEST ANDROID. Your app literally keeps breaking by itself!

But coming back to my vision of UI, after so many years it's obvious it wasn't worth it! People just prefer to do things the way they are used to, which I of course knew from the very beginning, but hoped most of them are at least as adventurous as I am and try new things nevertheless. Well - very few do (and most of them liked XenoAmp UI), but the rest had a hard time using Xeno, because it just didn't work as they expected.

So, after seven years of Android coding and becoming a Kotlin expert (Java's not fun anymore) I'm giving you this very conservative, dull and following-all-Android-UI-conventions XenoAmp2.

So let's take a tour!

XDA:DevDB Information
XenoAmp², App for all devices (see above for details)

Contributors
ssuukk

Version Information
Status: Alpha
Current Beta Version: https://www.androidf

Created 2019-02-14
Last Updated 2019-03-18
 

ssuukk

Senior Member
Application Tour

1. Home tab

View attachment 4705988

Shows recently played tracks (including streaming radio stations!) and playlists.

2. Favorites

View attachment 4705989 View attachment 4705990

As you remember from previous XenoAmp, any container can be added as a favorite. Be it your network neighborhood, 8Track feed, album on Spotify, playlist on Subsonic, directory on SMB server, Trip-Hop tracks, tracks by Thin Lizzy and so on. You can switch tile view to row view if you prefer it that way.

3. The Music

View attachment 4706009

Good old music sheet is still there. If you don't know it from previous XenoAmp - it's a configurable matrix view that allows you to display your collection by selecting what is visible in rows and columns. This particular screenshot shows album artist in rows and albums in columns. But you can configure it to show i.e. year and genre.

4. The new context menu

View attachment 4706010

Long touch track or tile anywhere in XenoAmp and this thingy pops up. Colorful chips allow you to jump to separate pages showing only tracks from particular genres (green), album (purple), artist (blue), similar artist (yellow) - see example in 6. There are more chip types, depending on entry (i.e. users in 8Tracks or Spotify).

5. Playlist view

View attachment 4705993

Allows track reordering and expanding your knowledge! If you clicked a tile in sheet view you can pull this list left and right to see other tiles in the row

6. Category view

View attachment 4705994

This usually shows up if you click any of the colorful chips. Of course clicking any of the bands will bring you to yet another category view.

7. The browser

View attachment 4705995

The good old browser, nothing changed there. For new users: everything XenoAmp can play is part of one, large filesystem. So here you can find and list your Android device, UPnP, SMB servers, Subsonic, 8Tracks and other music services.


8. While Playing Screen

View attachment 4705996View attachment 4705997View attachment 4705998View attachment 4706000

A whole bunch of them! Long touch the cover to switch between four layouts:

a) small with thumbnail-like image (nice choice of colors for MOS 6581, XenoAmp, btw!) and boring standard controls

b) middle with whole cover visible and boring standard controls

c) big with cover filling whole screen and boring standard controls

d) big with standard XenoAmp wheel menu that some of you enjoyed

9. Lyrics

View attachment 4706001

I guess it needs no explanation

10. Equalizer

Nothing fancy here, besides the usual room correction for loudspeakers and audiogram-like test for headphones.

The technology

So this time I'm not fighting Android, during these years I learned to live with it peacefully. XenoAmp2 uses Google ExoPlayer 2 and all the goodies (and limitations) that come with it (one of them is probably there will be no Spotify support this time!). All used components and libraries are bleeding edge.

I'm planning on adding different skins that will not only change colors, but in some cases look of the whole views shown above. XenoAmp2 was written in a very skin-friendly way from the very beginning.

Unfortunately many of cool features (like i.e. nice transition animations) are supported only since Lollipop and on older Androids your XenoAmp2 experience may be different.

Misc info

It's far from being finished!

It's sure full of new bugs, as it is practically written from scratch!

Xeno Radio Station directory server is down for everyone. I'm looking for a new home for it.

Currently it asks on start for read access to your files as this is required to read ALL the tags from files, even those not supported by Android normally. For very paranoid - I might change it in the future to stick just to tags available in Android, but it's not a high priority right now.

A few first releases here will probably crash a lot due to ProGuard messing with classes it shouldn't mess with. We'll fix that as we go.
 
Last edited:

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,441
23,040
@ssuukk very interesting little writeup :)

I don’t develop any apps so I can’t really comment on how it feels to design the app around androids limitations.

But when I started kernel developing I experienced the same. You have to find your way around how android is working and try to just get the best out of it! :)
thanks for all the continued effort, for never abandoning this project , for all the teasing regarding XenoAmp² and for the wonderful app you provided us all to use! It’s been a long and rewarding journey! You can be really proud!


Now if you’d just post a little alpha build to test after all that teasing :angel:
 
Last edited:

gimpy1

Senior Member
Sep 1, 2013
1,128
315
Flagstaff
Where is the alpha download? The one in the playstore is from January.

I tried using this several years ago, but could only get it to work sometimes. It was mostly because I used Google play music (but don't anymore - my music is dl'd into my phone now). Good luck with it. :good:
 

ssuukk

Senior Member
OK, guys. Take it for a ride (or instant crash maybe?)

https://www.androidfilehost.com/?w=files&flid=20714

SOME INFO:

  • it's not optimized, I wonder how slow it will be on older phones...
  • DON'T go to sheet while XenoAmp is syncing for the first time, since the view is live (and unoptimized...) it will be non responsive when it is trying to update several times a second...
  • When browsing SMB filesystem you won't get prompted for password, so go into prefs (on home tab) and enter your passwords first if your network doesn't use anonymous (guest) accounts
  • PROBABLY will not install with XenoAmp (the original one ;)) installed
 
Last edited:

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,441
23,040
OK, guys. Take it for a ride (or instant crash maybe?)

https://www.androidfilehost.com/?w=files&flid=20714

SOME INFO:

it's not optimized, I wonder how slow it will be on older phones...

DON'T go to sheet while XenoAmp is syncing for the first time, since the view is live (and unoptimized...) it will be non responsive when it is trying to update several times a second...

When browsing SMB filesystem you won't get prompted for password, so go into prefs (on home tab) and enter your passwords first if your network doesn't use anonymous (guest) accounts

PROBABLY will not install with XenoAmp (the original one ;)) installed
@ssuukk crashes when opening on pixel 3 xl. Log attached.


https://del.dog/qipopixipu


edit:

Logcat can be found here:

https://drive.google.com/file/d/1notS0emLs6MAMD6SI7c5nZKPvjmSc69S/view?usp=drivesdk
 
Last edited:

ssuukk

Senior Member

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,441
23,040
Heee, heee, that's what I was talking about. Fresh AndroidX bug:

https://stackoverflow.com/questions/54708366/addfontweightstyle-nosuchmethodexception-on-textview

Sorry. They will probably fix it ni 2049... ;)

Oh no :(

Though there are a few fixes proposed on that site? :angel:

Edit:
it works on my htc U12+ which is still on android 8.0.
I’m digging the scrolling animation when browsing my music folder :)

Album art isn’t displayed correctly though!
But overall it’s very nice for a preview! I like the concept!
 
Last edited:

ssuukk

Senior Member
Oh no :(

Though there are a few fixes proposed on that site? :angel:

Edit:
it works on my htc U12+ which is still on android 8.0.
I’m digging the scrolling animation when browsing my music folder :)

Album art isn’t displayed correctly though!
But overall it’s very nice for a preview! I like the concept!

Could you elaborate about album art? Normally album art is downloaded in the background so it should pop eventually. Lots of albums = lots of searching, downloading etc.
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,441
23,040
Could you elaborate about album art? Normally album art is downloaded in the background so it should pop eventually. Lots of albums = lots of searching, downloading etc.
It resolved itself it seems. I think I had a included album art in the folder of the album. Seems like it downloaded the album art now that I opened the app again to check.

previously when playing the album the “now playing” screen showed a black tile where the album art should have been. Although the “list” where I could view all songs of the album had the correct mini “tile” on the left of the song’s title.

Do you understand what I try to describe? :D
 

ssuukk

Senior Member
It resolved itself it seems. I think I had a included album art in the folder of the album. Seems like it downloaded the album art now that I opened the app again to check.

previously when playing the album the “now playing” screen showed a black tile where the album art should have been. Although the “list” where I could view all songs of the album had the correct mini “tile” on the left of the song’s title.

Do you understand what I try to describe? :D

Yeah. That's because someone some time ago wanted album covers to be sepatate from track covers...
 
  • Like
Reactions: Freak07

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,441
23,040
  • Like
Reactions: 39FarmallM

Top Liked Posts

  • There are no posts matching your filters.
  • 8
    Blade Runner Diaries OR The (less exciting) Story of XenoAmp 2

    WARSAW,
    FEBRUARY 2019​



    So - I was surprised that some of the guys who commented my initial post about XenoAmp on XDA back in 2012 still lurk here (thanks cauch_y, Freak07, 39FarmallM)

    When I wrote that post I had zero knowledge of Android coding and just very faint memories of Java (although back in 1995 when it was released I started learning it straight away). So really I had neither Java nor Android skills back then... What I did have was a vision of UI that I wanted to implement, and since XenoAmp is in Play for some years now, you may wonder how close the final effect was to that vision. The answer is: HARDLY AT ALL.

    You see - I quickly learned (the hard way) that coding on Android isn't CODING WHAT YOU WANT, but rather HOW ANDROID ALLOWS YOU TO. But still I tried and I don't even remember how many times I fought Android and Android won, before I finally gave up trying to do things my way. But if it was the only Android annoyance I'd be a happy coder anyway, believe me. Unfortunately there are worse showstoppers: some of the things that you can find in Android documentation work only THEORETICALLY. Yes, guys! BUGS! Lots of them and surprisingly Google rarely cares about fixing them, probably being too occupied with releasing groundbreaking new features (sarcasm) and adding 1 to Android version every month. So imagine your app behaves badly and, after hours of scratching your head and thinking why your code doesn't work, you stumble across Android bug report filed in 2010 with countless comments like this:


    Hey guys! Will it be fixed in 2011?

    I wonder the same thing...

    ...

    Hello, the bug still exists in Android n in 2012!

    Me too!!!

    Me too!!!

    Me too!!!

    ...

    Who's first in 2013?

    ...

    It's 2014 and it is still not fixed?!

    ...

    Shame on you Google in 2015!

    Shame!

    Shame!

    ...

    C'mon it's 2016, why does this bug exist?

    And so on...

    But that's not all! After you rewrite broken Android classes with 1000s lines of your code, your app stops working or crashes because of WONDERFUL (sarcasm) NEW FEATURE INTRODUCED IN NEWEST ANDROID. Your app literally keeps breaking by itself!

    But coming back to my vision of UI, after so many years it's obvious it wasn't worth it! People just prefer to do things the way they are used to, which I of course knew from the very beginning, but hoped most of them are at least as adventurous as I am and try new things nevertheless. Well - very few do (and most of them liked XenoAmp UI), but the rest had a hard time using Xeno, because it just didn't work as they expected.

    So, after seven years of Android coding and becoming a Kotlin expert (Java's not fun anymore) I'm giving you this very conservative, dull and following-all-Android-UI-conventions XenoAmp2.

    So let's take a tour!

    XDA:DevDB Information
    XenoAmp², App for all devices (see above for details)

    Contributors
    ssuukk

    Version Information
    Status: Alpha
    Current Beta Version: https://www.androidf

    Created 2019-02-14
    Last Updated 2019-03-18
    7
    Application Tour

    1. Home tab

    View attachment 4705988

    Shows recently played tracks (including streaming radio stations!) and playlists.

    2. Favorites

    View attachment 4705989 View attachment 4705990

    As you remember from previous XenoAmp, any container can be added as a favorite. Be it your network neighborhood, 8Track feed, album on Spotify, playlist on Subsonic, directory on SMB server, Trip-Hop tracks, tracks by Thin Lizzy and so on. You can switch tile view to row view if you prefer it that way.

    3. The Music

    View attachment 4706009

    Good old music sheet is still there. If you don't know it from previous XenoAmp - it's a configurable matrix view that allows you to display your collection by selecting what is visible in rows and columns. This particular screenshot shows album artist in rows and albums in columns. But you can configure it to show i.e. year and genre.

    4. The new context menu

    View attachment 4706010

    Long touch track or tile anywhere in XenoAmp and this thingy pops up. Colorful chips allow you to jump to separate pages showing only tracks from particular genres (green), album (purple), artist (blue), similar artist (yellow) - see example in 6. There are more chip types, depending on entry (i.e. users in 8Tracks or Spotify).

    5. Playlist view

    View attachment 4705993

    Allows track reordering and expanding your knowledge! If you clicked a tile in sheet view you can pull this list left and right to see other tiles in the row

    6. Category view

    View attachment 4705994

    This usually shows up if you click any of the colorful chips. Of course clicking any of the bands will bring you to yet another category view.

    7. The browser

    View attachment 4705995

    The good old browser, nothing changed there. For new users: everything XenoAmp can play is part of one, large filesystem. So here you can find and list your Android device, UPnP, SMB servers, Subsonic, 8Tracks and other music services.


    8. While Playing Screen

    View attachment 4705996View attachment 4705997View attachment 4705998View attachment 4706000

    A whole bunch of them! Long touch the cover to switch between four layouts:

    a) small with thumbnail-like image (nice choice of colors for MOS 6581, XenoAmp, btw!) and boring standard controls

    b) middle with whole cover visible and boring standard controls

    c) big with cover filling whole screen and boring standard controls

    d) big with standard XenoAmp wheel menu that some of you enjoyed

    9. Lyrics

    View attachment 4706001

    I guess it needs no explanation

    10. Equalizer

    Nothing fancy here, besides the usual room correction for loudspeakers and audiogram-like test for headphones.

    The technology

    So this time I'm not fighting Android, during these years I learned to live with it peacefully. XenoAmp2 uses Google ExoPlayer 2 and all the goodies (and limitations) that come with it (one of them is probably there will be no Spotify support this time!). All used components and libraries are bleeding edge.

    I'm planning on adding different skins that will not only change colors, but in some cases look of the whole views shown above. XenoAmp2 was written in a very skin-friendly way from the very beginning.

    Unfortunately many of cool features (like i.e. nice transition animations) are supported only since Lollipop and on older Androids your XenoAmp2 experience may be different.

    Misc info

    It's far from being finished!

    It's sure full of new bugs, as it is practically written from scratch!

    Xeno Radio Station directory server is down for everyone. I'm looking for a new home for it.

    Currently it asks on start for read access to your files as this is required to read ALL the tags from files, even those not supported by Android normally. For very paranoid - I might change it in the future to stick just to tags available in Android, but it's not a high priority right now.

    A few first releases here will probably crash a lot due to ProGuard messing with classes it shouldn't mess with. We'll fix that as we go.
    4
    All - sorry for delay, but as with everything Android - there are dragons ahead.

    Currently I can't run the app in release mode

    And that is after I spent a day wondering why it doesn't install at all in release mode

    So there's still some wait I guess...
    3
    Yeah. That's because someone some time ago wanted album covers to be sepatate from track covers...

    Aaaah, I see a lot of new chrashes. I'm fixing them right now.