Saturday, July 23, 2011

I decided to release this patch sooner rather than later. I was testing on some other devices tonight and was easily able to reproduce some of the crashes reported to me.

Changelog:
0.22.1: (07/23/11)
fixes:
-Fixed some force closes when some activities get destroyed
-Background tasks get canceled if not complete when an activity gets destroyed
-Fixed saving of playlists when the playlist directory hasnt been created yet

Friday, July 22, 2011

I've begun work on writing an equalizer for gmmp. Digital signal processing is very fairly complex so it may take a bit longer than normal for me to put out 0.23. Regardless expect a patch this weekend (0.22.1) to fix up some outstanding issues.

Wednesday, July 20, 2011

I added the ability to use bluetooth to control gmmp. The player should respond to play/pause/stop/next/prev/ffwd/rwd. Playlist support has been improved as well. You also can now save and load playlists from the playlist view. The file browser will show m3u files as well and let you load them from there just like any other media file.

Changelog:
0.22: (07/20/11)
-Renamed native libraries with a gm_ prefix to prevent conflicts with
system libraries already on the device
-Added bluetooth controls (Play/Pause/Next/Prev/FFwd/Rwd)
-M3U playlist files are now supported in the file browser
-Save/Load playlist options added in playlist view
-"Playlist Storage Path" option added (Preferences->Playlist->Playlist Storage Path)
-Added an exit option to shutdown the background MusicService and close out of gmmp
-Added track time and number in playlist to list items in playlist view
-Added option to word wrap track name in playlist
-Added "format album/artist tags" option to the filescanner, this will make the album
and artist tags propercase ie: "a dAy To rEmember" will format to "A Day To Remember"

Friday, July 15, 2011

edit: I had originally posted a broken build earlier last night so if gapless playback or flac playback doesn't work download it again from the link below.

Before I started working on this project, I had not touched java in a few years. I had completely forgotten how easy it is to leak memory in java. Memory issues are not something you typically associate with a language that uses garbage collection. There is a good article on the android dev site about preventing memory leaks: http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

Anyway I went through every single class in my app and made sure things properly are cleaning up. If you were having issues with 0.21 definitely give this a try.

Wednesday, July 13, 2011

Changelog:
0.21: (7/12/11)
-Updated error reporting library to ACRA 4.2.3
-Added additional error reporting options: Always Accept, Include System Logs, and Include Device Id
-Added new icons for the quick nav bar and file browser
-Browser view will fall back to the external storage path as a default if no other paths are found
-Playback will paused when receiving a phone call
-Preference added to resume playback after ending a phone call (Preferences->General->Resume On Call End)
-READ_PHONE_STATE permission added (for pausing playback when a phone call is received)
-Added support for embedded album art for mp3, flac, wma, mp4/m4a, and anything else using id3v2 tags
-Added statistics to the genre view (artist count, album count, track count)
-Added filetype compatibility check on startup.
-Added compatibility view which will show playback and gapless support of each filetype
(Preferences->Audio->Show Compatibility)
-Audioengine: Added support for songs with a single channel (mono) and sample rates other than 44.1hz (8khz-48khz)
-Audioengine: Playback Thread priority is now configurable (Preferences->Audio->Playback Priority)
-Removed armeabi-v7 versions of the native libraries. The apk should be half the size now.

fixes:
-Audioengine: fixed crash from race condition when playback ends and starts
again immediately (play random on playlist completion)
-Audioengine: fixed another crash from a race condition when starting playback on a file
-Audioengine: Fixed major memory leak when seeking mp3 or aac
-Fixed crash in browser view if there are no folders/files
-Fixed track notification not updating if you select a new track to play
-Fixed some memory leaks in all of the activity classes
-Fixed crash in browser when trying to sort folders by filetype

Monday, July 11, 2011

I added in a filetype compatibility check which will let you easily see which formats are supported and which of them will have the gapless playback. Since each device is different, there is no guarantee that the audioengine I wrote will correctly load (default mediaplayer is used in this case) and there is also no guarantee that the mp3 and aac decoders gmmp looks for will be on the device. I wanted to make this as clear to the user as possible so under Preferences->Audio->Show Compatibility you will be able easily view what your device supports.

Left is missing mp3/aac decoders, middle failed to load the audioengine library, and the right is if everything is found and loads properly

Sunday, July 10, 2011

I am getting fairly close to finishing up the next release. I have 2 minor tasks I still have to do but otherwise its looking good. Some key features in this release will be: support for embedded album art for mp3 (or any file with id3v2 tags), aac (mp4/m4a), flac and wma; an upgrade to the error reporting system (relays MUCH more information about crashes to me); new icons for the UI; and auto pausing/resuming playback when receiving a phone call.

Barring any major setbacks I expect to get this finished and up for download by mid week.