Skip to main content

Topic: Euphonos - Mac OS X audio player project (Read 107705 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Dibrom
  • [*][*][*][*][*]
  • Administrator
Euphonos - Mac OS X audio player project
Since the topic of OS X audio players and collaboration has been brought up here and here, and since I've been contacted by the author of Cog, I've decided I might as well spill some details about what I've been working on.

I've been working on a player called Euphonos, which is basically going to be setup like foobar2000, except for Mac OS X.  I'll just list some of the current bits that I've been toying with so far:

- Written primarily in Objective-C/Cocoa.  Some portions will be coded in pure C and make use of the CoreFoundation API, but this will only happen in the few areas where Foundation does not expose the same functionality.  Stuff from CoreAudio, and a few isolated parts of the CoreData and Spotlight functionality may be this way.

- Uses CoreData for media library.  The player will most likely use the sqlite method of coredata storage, which should allow effecient access to a library with hundreds of thousands of entries without a massive memory overhead.

- Uses Spotlight for all metadata handling (requires writing importers for Ape2 tags, Vorbis comments, and other currently unsupported tags).  This will allow for easy searching of the media library (both within and outside of the player), as well as automatic synchronization of the media resource entries in the library with changes made to the file outside of the player.  Mass tagging, smart playlists, etc., should become trivial to implement.

- Uses xml/xsl/javascript for playlist formatting.  Basically, metadata from an audio resource is exposed as an xml node.  To format information from the audio resource into a useful (or cool looking, whatever) entry in a playlist, you write an xslt skin that reformats the information in this node into xhtml, which is then rendered via safari's webkit.  Programmatic aspects of the playlist formatting and dynamic behavior (mouseovers, animation, whatever) are handled with javascript.  This essentially allows an extremely powerful, extremely flexible, and theoretically efficient approach to complex playlist formatting, yet while still relying on standardized technologies and languages.  Anything that is possible via xhtml/css/javascript (dhtml in other words) is possible in the playlist view.  In fact, even more can be done through the use of the canvas tag that webkit (and firefox) supports (it basically allows 2d quartz like drawing -- see here).  It would also be possible to implement a javascript <-> objective-c bridge to allow lower level control of the program internals through the skinning, although if this is done it will probably be disabled by default due to security concerns.  For those that are familiar with the Colloquy IRC client, this process is very similar to how it renders its chat transcript views (i.e., it uses xslt and webkit).

- Uses the plugin architecture for easy addition of extra functionality.  The player will end up being modular in quite a similar fashion to how fb2k currently works.

- Uses CoreAudio, specifically newer audio api's introduced in OS X 10.4.  Additional codec support would eventially (if not initially) be added through the AudioCodec API, which would have the side effect of allowing these formats to be used elsewhere in the OS.  All of the modular DSP stuff will be handled this way.

- Will support Applescript (and probably other less annoying scripting languages ) -- Since the player will be able to do things like format conversions or mass tagging, it would be beneficial to allow people to interact with the program through other interfaces, and Applescript should allow this.  This should also allow for supporting automator.

There's more, but I can't think of it all off the top of my head right yet.  What I have as of now is not a complete player, but mostly bits and pieces of various components.  Most of my time recently has been spent familiarizing myself with the new api's in OS X 10.4 and running small experiments to see how well certain ideas I've had might or might not work.  I'm not certain when an initial release will roll around either, though that could conceivably be sped up if there is serious interest on both the user and developer side.  Right now, there's quite an incredible amount of functionality that I have planned for the player, but only so much time to program it in...

I suppose a relatively big issue to point out is that what I'm planning on doing is only going to work on OS X 10.4.  There are just too many API's that I'm relying on from that release to make a version for earlier OS releases.  A significant portion of what I plan to do simply wouldn't be very practical with earlier releases unless I had a desire to reinvent the functionality provided by newer api's in my own private library (I don't).

This is basically a preview of what I have in mind or a proposal for feedback.  I hadn't planned on bringing much of anything up in public until I'd reached the point of an initial release, but since the topic has come up, it seems somewhat relevant.
  • Last Edit: 07 June, 2005, 02:00:37 AM by Dibrom

Euphonos - Mac OS X audio player project
Reply #1
Sounds great.  I'm not on macs too often, but when I am, I wish I had somethign like fb2k.
"You can fight without ever winning, but never win without a fight."  Neil Peart  'Resist'

  • Emanuel
  • [*][*][*][*]
Euphonos - Mac OS X audio player project
Reply #2
Sounds excellent so far. Perhaps you'd be interested to know about Apples microprocessor choice before you get started.

  • c15zyx
  • [*][*][*]
Euphonos - Mac OS X audio player project
Reply #3
PPC vs. Intel doesn't matter much as long as Apple's IDE (Xcode) is used for development, future versions should make the transition pretty seamless (too bad for the CodeWarrior folks). Great featurelist btw, hope to see something come out of it. 10.4 shouldn't really be a serious issue, by the time a release rolls around the installed base should be better.

  • Busemann
  • [*][*][*][*][*]
Euphonos - Mac OS X audio player project
Reply #4
This sounds really great. I especially like this bit:

Quote
- Uses CoreAudio, specifically newer audio api's introduced in OS X 10.4. Additional codec support would eventially (if not initially) be added through the AudioCodec API, which would have the side effect of allowing these formats to be used elsewhere in the OS. All of the modular DSP stuff will be handled this way.


The second most requested feature would be an EAC-like ripper, but I guess xACT will do.
  • Last Edit: 07 June, 2005, 09:16:18 AM by Busemann

  • Dibrom
  • [*][*][*][*][*]
  • Administrator
Euphonos - Mac OS X audio player project
Reply #5
Pretty much all of the code that would be optimized for specific platforms (ppc or x86) will be done through the use of Apples Accelerate framework and the vDSP API.  This should allow transparent optimization for either ppc or x86 since Apple will handle that part under the hood of the framework.

  • Dibrom
  • [*][*][*][*][*]
  • Administrator
Euphonos - Mac OS X audio player project
Reply #6
Quote
This sounds really great. I especially like this bit:

Quote
- Uses CoreAudio, specifically newer audio api's introduced in OS X 10.4. Additional codec support would eventially (if not initially) be added through the AudioCodec API, which would have the side effect of allowing these formats to be used elsewhere in the OS. All of the modular DSP stuff will be handled this way.


The second most requested feature would be an EAC-like ripper, but I guess xACT will do.
[a href="index.php?act=findpost&pid=304274"][{POST_SNAPBACK}][/a]


It wouldn't really be hard to make a plugin for ripping that used cdparanoia or something like that, but I don't plan on focusing too much on that sort of functionality initially.

  • moozooh
  • [*][*][*][*]
Euphonos - Mac OS X audio player project
Reply #7
Wow. Not that I use Macs at all, but this sounds really awesome! Even in the middle of the recent activity of OSX audio players development.

Oh, and by the way… So you're not an MPC developer anymore?
Infrasonic Quartet + Sennheiser HD650 + Microlab Solo 2 mk3. 

  • krmathis
  • [*][*][*][*][*]
Euphonos - Mac OS X audio player project
Reply #8
Sounds excellent!

  • Mono
  • [*][*][*][*]
  • Members (Donating)
Euphonos - Mac OS X audio player project
Reply #9
So does this mean you will be working with the author of Cog, or not?

Meanwhile this sounds great. I guess I better get Tiger while I still have my education discount.
"Facts do not cease to exist just because they are ignored."
—Aldous Huxley

  • Cygnus X1
  • [*][*][*][*][*]
  • Members (Donating)
Euphonos - Mac OS X audio player project
Reply #10
Sounds excellent.  I'll definitely look forward to having a Foobar-like player for OS X, as iTunes just doesn't do much for me. Sign me up if you need testers!

  • Dibrom
  • [*][*][*][*][*]
  • Administrator
Euphonos - Mac OS X audio player project
Reply #11
Quote
So does this mean you will be working with the author of Cog, or not?

Meanwhile this sounds great. I guess I better get Tiger while I still have my education discount.
[a href="index.php?act=findpost&pid=304363"][{POST_SNAPBACK}][/a]


No.  At least not initially.

The author of Cog is more interested in working on a simpler player for now.  He feels that it is necessary to make a basic player for OS X that supports many of the formats which are used around here and have it done sooner rather than later.  I can't really disagree with his choice either -- my plans are certainly going to take awhile to come to something usable.

  • Dibrom
  • [*][*][*][*][*]
  • Administrator
Euphonos - Mac OS X audio player project
Reply #12
Quote
Wow. Not that I use Macs at all, but this sounds really awesome! Even in the middle of the recent activity of OSX audio players development.

Oh, and by the way… So you're not an MPC developer anymore?
[a href="index.php?act=findpost&pid=304358"][{POST_SNAPBACK}][/a]


I haven't done much work on mpcenc lately.  I decided that I'd rather get some sort of good audio player working before worrying about improving audio format ports.

Besides, the recent announcement that Apple will be switching to x86 has made me reconsider whether or not I should spend as much effort on ppc optimization as I was previously doing...

We'll see what happens, but for now my main focus is going to be this.

  • spoon
  • [*][*][*][*][*]
  • Administrator
Euphonos - Mac OS X audio player project
Reply #13
Will it be open or closed source?

  • kuniklo
  • [*][*][*]
  • Developer (Donating)
Euphonos - Mac OS X audio player project
Reply #14
Sounds great.  A decent, non-iTunes, music player is the one thing the Mac really needs I think.  Something that covered most of what Foobar does would be extremely useful.

  • westgroveg
  • [*][*][*][*][*]
Euphonos - Mac OS X audio player project
Reply #15
Sounds like it will allow a lot of scripting, might this lead to security problems?

Anyway good luck with this project Dibrom.

  • Busemann
  • [*][*][*][*][*]
Euphonos - Mac OS X audio player project
Reply #16
Quote
Sounds like it will allow a lot of scripting, might this lead to security problems?

Anyway good luck with this project Dibrom.
[a href="index.php?act=findpost&pid=305023"][{POST_SNAPBACK}][/a]


Almost all OSX apps are heavily scriptable so it shouldn't pose much risk if done right.

  • lh_sabre
  • [*][*]
Euphonos - Mac OS X audio player project
Reply #17
And all Mac audio fanatics rejoiced!

Euphonos - Mac OS X audio player project
Reply #18
Sounds cool even though I don't have a Mac.
iTunes 10 - Mac OS X 10.6
256kbps AAC VBR
iPhone 4 32GB

  • MagicRat
  • [*]
Euphonos - Mac OS X audio player project
Reply #19
Quote
Sounds great.  A decent, non-iTunes, music player is the one thing the Mac really needs I think.  Something that covered most of what Foobar does would be extremely useful.
[a href="index.php?act=findpost&pid=304408"][{POST_SNAPBACK}][/a]


I don't really disagree with this, but I think a good, secure audio CD ripper is needed as much, if not more so.  I like iTunes well enough for managing and playing my music, but it just doesn't cut it for CD ripping, even with "use error correction" turned on.  xACT, through its use of cdda2wav, is better, but it lacks many of the features of a ripper like EAC or CDex.

  • Busemann
  • [*][*][*][*][*]
Euphonos - Mac OS X audio player project
Reply #20
Quote
Quote
Sounds great.  A decent, non-iTunes, music player is the one thing the Mac really needs I think.  Something that covered most of what Foobar does would be extremely useful.
[a href="index.php?act=findpost&pid=304408"][{POST_SNAPBACK}][/a]


I don't really disagree with this, but I think a good, secure audio CD ripper is needed as much, if not more so.  I like iTunes well enough for managing and playing my music, but it just doesn't cut it for CD ripping, even with "use error correction" turned on.  xACT, through its use of cdda2wav, is better, but it lacks many of the features of a ripper like EAC or CDex.
[a href="index.php?act=findpost&pid=305502"][{POST_SNAPBACK}][/a]


Yup. iTunes is good for music organizing/playback, but ripping is its major weak point right now.

If someone made an EAC-like app for OSX it would become incredibly popular.
  • Last Edit: 12 June, 2005, 09:54:55 AM by Busemann

  • metrom
  • [*]
Euphonos - Mac OS X audio player project
Reply #21
This is great news!

We really need an alternative player for OS X.
I like iTunes, but it just don't play my Ogg Vorbis so a foobar-like player sounds great!

Thanks,

  • irchs
  • [*]
Euphonos - Mac OS X audio player project
Reply #22
The greatest feature of this player would be the CoreAudio dependency, meaning that we could have Global codec's that can be used by any programs that use CoreAudio properly  A further feature would be to release a Codec pack that add's support for the lesser audio codec's out there such as Ogg Vorbis and FLAC and such.

This should be interesting

Jan

  • lh_sabre
  • [*][*]
Euphonos - Mac OS X audio player project
Reply #23
Ogg Vorbis support has been out there for a long time via a Quicktime plug-in that somebody/some people made. Not sure if it still works with QT7 and Tiger, but it was out there. If iTunes had full read/write support of all the codecs that Foobar makes use of, then I'd agree that we'd have little use for a new player, so to speak. However, if this new player were to be more streamlined for the one thing that we're all actually interested in (playing music!), then I say go for it (and knowing that Dibrom is doing this, I have great faith--more faith than I have in that crazy and/or brilliant Steve Jobs).

Euphonos - Mac OS X audio player project
Reply #24
As far as I understand there's been an Ogg Vorbis plugin for a long time, but it never supported Vorbis streams, which makes it sound somewhat crippled to me....
"ONLY THOSE WHO ATTEMPT THE IMPOSSIBLE WILL ACHIEVE THE ABSURD"
       - Oceania Association of Autonomous Astronauts