Working on a Mac audio player app, looking for some feedback.
Nov 19, 2012 at 2:58 PM Thread Starter Post #1 of 22

bsneed

New Head-Fier
Joined
Nov 19, 2012
Posts
18
Likes
10
EDIT: I originally posted this in the wrong forum I think, so reposting it here.
 
 
Heya head-fi'ers,
 
I've been lurking here for a year or so now and just wanted to say thanks to everyone for all the information, opinions, help, advice, etc.  This is one of my favorite sites and fits my interests perfectly.  About a year ago, I started a personal project to build an audio player that better fit my needs and head-fi provided alot of info about what people wanted, as well as shaping what I wanted out of the app.  I had a pretty basic list of requirements, so thanks for all the unintentional suggestions/ideas.
 
Here's a little bit about the player i'm building:
 
- Doesn't crash when devices change out from under it (i don't like getting my laptop from home->work only to have the app crash, or have to re-select my output device). FWIW, this is what led me to start this in the first place.
- Takes input from USB devices.  I have USB record player that I send through the laptop and then out to the dac/amp/speakers.
- Lets me set audio effects filters (there's 2 that i just love from LSRAudio)
- Lets me set the various params, like exclusive mode, sample rate, format.
- Does sample rate conversion instead of just matching the input source (though i'm not sure if this is a good thing, seems to sound more pleasing to me, thoughts?)
- Allows for me to use my iTunes library for content (anything i buy outside of iTunes usually ends up moving into there so I can use it w/ my phone, etc.)
- Allows for me to use Spotify content.
- Light on CPU usage.
- Work w/ iTunes visualizers.
- Small footprint on-screen.
- Its gotta be pretty (to me).
 
I had a few questions re how people work with their music on the mac:
 
* How important is FLAC playback?  Are there other formats not natively supported that are viewed as a requirement?  Integrating it into my audio engine seems like its going to be a time intensive endeavor, so I wanted to see if it's really wanted before I jumped in.  I end up converting everything to ALAC so I can get it into iTunes.
 
* Is being able to select a directory and create playlists from that very desired?  I've been thinking really hard about this lately and I'm on the fence.  While I want to share all this data to my phone, I hate jumping back to iTunes to rearrange playlists, add things, etc.  I'm on the fence because I don't do it that often, but when I do I can't help but think "wow, this sucks that i have to do this".
 
* Is it possible i'm missing some big must-have feature for people?  Let me know.
 
Here's a copy of the app: http://d.pr/f/cYNl
 
If you're not on a mac or don't want to try it, here's a video: http://d.pr/v/yUL5
 
- Search doesn't work yet
- I'm still not happy with how navigating ones library works, suggestions welcome.
- It's not saving filter settings just yet, though some filters save their own settings.
- I haven't run it on a computer other than my own yet.
 
Thanks for you feedback, and if you don't leave any, thanks for at least humoring me and reading along. :D
 
 
---
Brandon
 
Nov 20, 2012 at 5:49 PM Post #2 of 22
After doing some reading, i think the question re FLAC support may be answered as a 'yes' thanks to the "How many songs are in your library" thread here.  Seems people are moving to that instead of worrying about iTunes compatibility.
 
Nov 20, 2012 at 6:00 PM Post #3 of 22
Quote:
After doing some reading, i think the question re FLAC support may be answered as a 'yes' thanks to the "How many songs are in your library" thread here.  Seems people are moving to that instead of worrying about iTunes compatibility.

Yes, and the ability to play module files is a plus too.
Check out vgm, spc, mod, s3m, xm file formats to play older style tracker formats, rather like how you can get plugins for winamp to do the same, etc.
 
Spotify support would be amazing! An all in one as it were
 
Nov 20, 2012 at 9:09 PM Post #4 of 22
That's a very good project, one can't have too many players on the market :)
 
About format compatibility, think of what foobar2000 supports, even by default, which is a rather extensive format list, and all through open source libraries that you can use.
 
It would be immensely useful if you could add native VST support.
 
And if you could manage to make your player compatible with plugins from multiple popular players, like foobar2000, JRMC and Winamp (just to name a few), that would increase the usefulness and appeal of your player tenfold.
 
Nov 21, 2012 at 1:00 AM Post #5 of 22
wow, that's pretty impressive.  not on a mac, so I only watched the video and looked through the folder contents, but looks like good progress.
i was curious about the audio engine - how much were you able to find existing libs/code for and how much did you end up doing from scratch?  was it easy to find help on that along the way?
 
i've seen some open source players like clementine that have spotify support added, not sure how far you are along on this, but you might be able to get some ideas from their integration work.
 
Nov 21, 2012 at 1:06 AM Post #6 of 22
Thanks a ton for the feedback guys.  I think you're right re the multiple formats.  I just got started digging into flac a little earlier.  Playing back things core audio supports is pretty easy and very different from playing a non-native format.  I'll keep you guys posted on how it goes.  Any feedback on the player as-is is appreciated as well if you're so inclined.
 
I'll also check out what's involved in doing VST support.  I don't know about supporting other apps plugins, but i'll check out those apps/plugins and form a better opinion of why/why-not.
 
And speaking of plugins, I was really bummed to learn that apple deprecated their ComponentManager interface not too long ago and appears to have actually removed it in 10.8/64bit, which means the core-audio based file format support is effectively gone for core audio plugins.  There may be a replacement api, but I haven't found it yet... that would've been my first choice.  Ahwell. :frowning2:
 
Nov 21, 2012 at 1:26 AM Post #7 of 22
Quote:
wow, that's pretty impressive.  not on a mac, so I only watched the video and looked through the folder contents, but looks like good progress.
i was curious about the audio engine - how much were you able to find existing libs/code for and how much did you end up doing from scratch?  was it easy to find help on that along the way?
 
i've seen some open source players like clementine that have spotify support added, not sure how far you are along on this, but you might be able to get some ideas from their integration work.

 
Thanks!
 
I think its pretty good progress so far as well.  It does what I need it to at this point, even if it still needs alot of work.  I ended up using a library by a guy named Kok Chen who used to work at Apple.  Its pretty nice compared to many of the other wrappers i've seen.  I've modified it pretty heavily at this point, though I didn't know much re core audio when I started, but his code was easy enough to follow and well written/documented.  I know enough to write my own from scratch now I think. :D  
 
Besides that audio library, the only other piece of external code I used was BCCollectionView by Peter Omvlee.  I could've done that myself, but his worked well enough and was one less thing to do.  The rest of it was all me, and doing a bunch of stuff I hadn't tried before, which was a ton of fun.  The info on iTunes communicates w/ its visualizers was pretty scarce, as was how to break a batch of samples down into their individual frequencies.. that was alot of fun and probably where I spent most of my time.  I've been writing cocoa apps for quite awhile now, so there wasn't too much else that was beyond me when I started.
 
I haven't seen clementine, but I am curious.  There's another one called SFBAudioEngine, which I think Fidelia and Sonora both use, but its not quite what I was looking for and would need more work to accomplish the goals I wanted to hit.  Its kind of funny, I was so unhappy with Fidelia, that's what started this whole thing.  The whole "well, I think I could do that better" thing.
 
Nov 21, 2012 at 1:31 AM Post #8 of 22
Out of curiosity, are you making your player cross-platform or is it only for OS X?
 
Also, having theme support or at least a feature similar to foobar2000's Create Scratchbox would be a good idea, since it's nigh impossible to have a UI that will satisfy every single person, which can be understood through the different UI layouts people have (again, taking foobar2000 as an example due to its modular component system), found on this thread.
 
As is, the player looked interesting and different from other PC players. However, for some reason I got the impression it was a mobile player made to fit to larger screens. Also, the video was upside down :)
 
Nov 21, 2012 at 1:38 AM Post #9 of 22
Quote:
Out of curiosity, are you making your player cross-platform or is it only for OS X?
 
Also, having theme support or at least a feature similar to foobar2000's Create Scratchbox would be a good idea, since it's nigh impossible to have a UI that will satisfy every single person, which can be understood through the different UI layouts people have (again, taking foobar2000 as an example due to its modular component system), found on this thread.
 
As is, the player looked interesting and different from other PC players. However, for some reason I got the impression it was a mobile player made to fit to larger screens. Also, the video was upside down :)

 
Its for OS X only.  I swore off Microsoft when I left OQO way back when (I wrote their video drivers/system stuff) and have tried to not mess with it since.  Not a dig at Microsoft, just for me things were greener elsewhere.  I don't plan on having multiple themes, maybe color schemes, but nothing beyond that.  I figure not every is going to like the fuscia/pink.
 
Re the video being upside down, sorry about that.  I looked ok when I play it on in Safari.. probably something not respecting the orientation I had my phone in when I recorded it.  As for size, its definitely meant to be small and out of the way.  Its sitting in the bottom/left corner of my screen now.  Roughly 202 pixels wide, by 404 pixels tall.
 
Nov 21, 2012 at 1:56 AM Post #10 of 22
Ah, it's a shame. I run Windows systems and have no intention to move to OS X. However, I do think you're on the right track and I hope you manage to overcome any obstacles you might face, considering everyone's suggestions given on the thread so far.
 
And yes, at the very least do add color schemes, ideally not through static color presets but with something wider, like a color wheel.
 
Nov 21, 2012 at 2:46 AM Post #12 of 22
Proper gapless playback support is a biggie for me.  It's one of the first ways that I test an audio player.  Play an album, like Dark Side Of The Moon, that is gapless and listen to the transitions between tracks.  If I hear anything wrong, even just very slightly, during the transitions the app is trashed.  There are a number of media players apps that claim to be able to play gapless, very few that actually achieve that to my satisfaction.  Getting gapless playback perfect would be a good programming exercise and would require that you think about how gapless playback would be done during the initial design so it doesn't have to be shoehorned in later in a way that may not work so well.
 
Nov 21, 2012 at 2:52 AM Post #13 of 22
Thanks for that, and the test case.  Admittedly, I hadn't thought of that at all.  Know of a player on the mac offhand that does this properly?  I tunes says it support gapless iirc.
 
Nov 21, 2012 at 3:34 AM Post #14 of 22
I'm a PC guy, so I don't know much of Mac software.  My experience is that iTunes on the Mac does gapless playback properly to my satisfaction.  But I only get to play with Mac music setups at meets and demos.
 
iTunes on Windows can do gapless properly.  Other Windows software that does gapless very well is Foobar2000 and JRiver Media Center.  One that I occasionally get glitches with during gapless transitions is MusicBee (still a nice player, just sometimes has subtle glitches during gapless transitions in my setup).
 
Wikipedia has a short article about gapless playback and some of the challenges in achieving proper gapless playback.
 
Nov 21, 2012 at 4:58 AM Post #15 of 22
Quote:
I'm a PC guy, so I don't know much of Mac software.  My experience is that iTunes on the Mac does gapless playback properly to my satisfaction.  But I only get to play with Mac music setups at meets and demos.
 
iTunes on Windows can do gapless properly.  Other Windows software that does gapless very well is Foobar2000 and JRiver Media Center.  One that I occasionally get glitches with during gapless transitions is MusicBee (still a nice player, just sometimes has subtle glitches during gapless transitions in my setup).
 
Wikipedia has a short article about gapless playback and some of the challenges in achieving proper gapless playback.

 
Thanks for this.  Your suggestion on gapless got me thinking, and I went back and looked at SFBAudioEngine.  I picked up Dark Side of the Moon to test with (great album so far, not sure why i hadn't listened to it before), but between Track2->Track3 it was extremely obvious what you meant after hearing it.  I listened carefully to how iTunes performed here, and then compared it to SFBAudioEngine, and the good news is that it works/sounds exactly the same as far as that transition goes.
 
Another plus is that SFB also supports flac, mod, and, ogg, true, wav pack, and HTTP sources already.  I think after doing some hook tests that, time wise, it makes much more sense to make the necessary changes to SFB that I need than it does to do all that other stuff myself.  At the end of the day, I'd rather have a player that sounds/works spectacular than anything else, so thanks for the kick and making me rethink my strategy and previous assumptions.  Oh, and the album suggestion.  Really liking it.
 
I'll post another beta here once I get it fully integrated and things put back together.
 

Users who are viewing this thread

Back
Top