On Tue, Dec 14, 2010 at 7:05 AM, Adam Davison <adamdavi...@gmail.com> wrote:
> Yeah Phonon didn't expose audio data at all in 4.6 but there were
> noises that in 4.7 things would be moving in the right direction. It's
> a shame things haven't quite gone where we want them...
>
> It would be really great if Phonon did what we wanted because it's
> built into Qt and would only require 1 lot of code rather than a
> per-platform backend. Which is not to talk down what Albert is doing.
> But I'm sure he remembers as well as me why we ditched our native
> ALSA, Jack, ASIO etc code for PortAudio after the 1.5.x releases.
>
> It's worth bearing in mind that Phonon is fairly immature and if we
> complain about the bits we don't like it may well have an impact.
> Ultimately getting Phonon to do what we want may be the best long-term
> strategy for better format support in Mixxx. Maybe it's always going
> to be too heavyweight to provide realtime speeds. But if we say we
> want it they may be able to expose some of the lower-level decoding
> stuff in a future version.
>
> If you have insight into what exactly we need here, I would recommend
> trying to make sure someone relevant knows that we're probably one of
> the biggest audio applications using Qt (in users if not money :)) and
> that this is what we would need out of them.
>

I pretty much agree with everything you said, but we've been waiting
for Phonon to mature for 2 years and it hasn't happened. Even worse, I
think Phonon and Qt in general are quickly becoming less relevant
because hell's going to freeze over before there's iOS and Android
backends for either.

Re: QuickTime - Turns out there's a nasty namespace collision with
"SoundSource" in Mixxx and QucikTime. I'd have to throw Mixxx's
SoundSource class into a namespace to fix it, but I'm anticipating
that to be more difficult to do than it should be.

Anyways, I did some more digging and the API of choice on Windows
these days is the Source Reader API in Microsoft Media Foundation.
It's only for Vista+, but it looks significantly easier to use than
any of the other five Microsoft APIs I've looked it. If anyone wants
to work on a Source Reader backend for Mixxx, there's a great example
here:
http://msdn.microsoft.com/en-us/library/dd757929(v=VS.85).aspx

Anyone want to get a head start on this?

Thanks,
Albert

>
> On 14 December 2010 14:29, RJ Ryan <rr...@mit.edu> wrote:
>> I think the main problem we have with Phonon is that it is an abstraction
>> level higher than what we need. It's more oriented around playing files for
>> you.
>> It does seem to support a raw-data output via AudioDataOutput, but the
>> description itself says it's not for realtime use:
>> "Although it is not designed for realtime performance, the latencies
>> associated with accessing the data should be low enough for applications
>> that provide visualizations of the data. This class can also be used to save
>> the audio data for further processing."
>> Beyond this, another deal-breaker is that the most precise way to refer to
>> time offered by Phonon is milliseconds. You seek by saying the millisecond
>> you would like to seek to.
>> RJ
>> On Tue, Dec 14, 2010 at 9:04 AM, Adam Davison <adamdavi...@gmail.com> wrote:
>>>
>>> I think from a user point of view DirectX/CoreAudio would be a
>>> preferable choice to Quicktime. For Windows users (i.e. most of our
>>> users) Quicktime is a large additional download (O(100MB)). Quicktime
>>> is fairly intrusive on windows too, generally slow, takes over all
>>> your file types, installs stuff that sits in the system tray the whole
>>> time and other unsavoury things like that (at least the last time I
>>> tried it). I think we'll make a lot of people angry if we force them
>>> to install Quicktime.
>>>
>>> Of course there is the pragmatic problem of the fact that most of our
>>> developers are linux/osx and know nothing about DirectX...
>>>
>>> I would suggest that someone takes a more serious look at the current
>>> state of Qt's Phonon stuff on Windows before implementing a Quicktime
>>> layer.
>>>
>>> For linux we can use the distribution provided copy of libmp4v2 (or
>>> ffmpeg if someone is feeling particularly enthusiastic/masochistic).
>>>
>>> Adam
>>>
>>> On 14 December 2010 13:13, Tobias Rafreider <dj.raffi....@googlemail.com>
>>> wrote:
>>> > Hey all,
>>> >
>>> > Quicktime is my preference for portability. It solves AAC playback and
>>> > licensing issues on both OS X and Windows (I guess). The drawback is
>>> > that Linux users won't be able to use M4A out of the box. Maybe we
>>> > hazard the consequence.
>>> >
>>> > If we decide to use Quicktime and Albert can provide an initial
>>> > implementation for OS X I am willing to "port" it to Win. Ideally, I
>>> > will refactor the code such that we load Quicktime dynamically by using
>>> > the QLibrary interface. If quicktime.dll on Windows is not available, no
>>> > AAC playback is possible. We do same for MP3 recording and streaming via
>>> > lame.
>>> >
>>> > Alternatively, since we have stable AAC code via libmp4v2 it might be
>>> > possible to refactor the plugin code. If [libmp4v2.dll |libmp4v2.so] is
>>> > available M4A playback is possible. I do not know if the plugin code
>>> > works that way. But, there are a lot of libmp4v2.dll files available via
>>> > google. It would be rather simple for our community users to activate
>>> > AAC. Recall that AAC is a heavily requested feature in our forums.
>>> >
>>> >
>>> > Thanks,
>>> >
>>> > Tobias
>>> >
>>> > Am 13.12.2010 19:32, schrieb Albert Santoni:
>>> >> Hey Tobias,
>>> >>
>>> >> Yes, we could also use Quicktime or a native API like DirectShow.
>>> >> Unfortunately, I'm going to be stuck with only my Macbook for the next
>>> >> month, but I can still try playing with the Quicktime Audio Extraction
>>> >> API:
>>> >> http://developer.apple.com/quicktime/audioextraction.html
>>> >>
>>> >> http://developer.apple.com/library/mac/#samplecode/SimpleAudioExtraction/Introduction/Intro.html
>>> >>
>>> >> The ExtAudioFile API itself wasn't bad - once you have stuff
>>> >> initialized, the basic decoding functions (read/seek) were
>>> >> straightforward to use. This API also supposedly exists on iOS, which
>>> >> is a bonus. :)
>>> >>
>>> >> I think making Quicktime a requirement on Windows for AAC playback is
>>> >> not outlandish, so I can try to play around with that.
>>> >>
>>> >> Also, if we do manage to get a couple of these native or near-native
>>> >> backends working, I'd be willing to convert them into pure C++ (no Qt)
>>> >> and roll them into a library. We can't be the only people who need
>>> >> cross-platform, low-level audio decoding using native APIs that don't
>>> >> carry any legal baggage. (Distributing an MP3 decoder with your
>>> >> application made more sense in the Windows 98 days.)
>>> >>
>>> >> Thanks guys,
>>> >> Albert
>>> >>
>>> >>
>>> >> On Mon, Dec 13, 2010 at 4:31 AM, Tobias Rafreider
>>> >> <dj.raffi....@googlemail.com>  wrote:
>>> >>> Hey,
>>> >>>
>>> >>> great job. Could we also use Quicktime API to decode AAC/M4A on
>>> >>> Windows?
>>> >>>
>>> >>> Tobias
>>> >>>
>>> >>> Am 13.12.2010 11:36, schrieb Adam Davison:
>>> >>>> Hi,
>>> >>>>
>>> >>>> Just to say this is excellent and exactly how we should be doing
>>> >>>> it...
>>> >>>>
>>> >>>> What happened to phonon in qt 4.7 in the end, have they managed to
>>> >>>> expose audio data yet?
>>> >>>>
>>> >>>> Adam
>>> >>>>
>>> >>>> On 13 December 2010 06:55, Albert Santoni<albe...@mixxx.org>
>>> >>>>  wrote:
>>> >>>>> Hi guys,
>>> >>>>>
>>> >>>>> Tonight I wrote a SoundSourceCoreAudio class that plays M4As using
>>> >>>>> the
>>> >>>>> system provided decoder on OS X. It uses the "Audio File Services"
>>> >>>>> API
>>> >>>>> (ExtAudioFile), which is part of AudioToolbox, which is part of Core
>>> >>>>> Audio. We can freely distribute this as part of our main Mixxx
>>> >>>>> builds
>>> >>>>> without worrying about M4A patent issues because we're using Apple's
>>> >>>>> decoder, which OS X users have already paid for.
>>> >>>>>
>>> >>>>> Special thanks to Apple's super crappy documentation and endless
>>> >>>>> layers of redundant APIs. I spent more time trying to figure out
>>> >>>>> which
>>> >>>>> API to use than actually writing code.
>>> >>>>>
>>> >>>>> Seeking and metadata decoding (using TagLib) work fine. I've only
>>> >>>>> tested with 44100 Hz / 16-bit files, but if it doesn't work with
>>> >>>>> other
>>> >>>>> formats, it shouldn't be difficult to fix.
>>> >>>>>
>>> >>>>> Code is pushed to:
>>> >>>>> lp:~mixxxdevelopers/mixxx/features_coreaudio
>>> >>>>>
>>> >>>>> Enjoy,
>>> >>>>> Albert
>>> >>>>>
>>> >>>>>
>>> >>>>> ------------------------------------------------------------------------------
>>> >>>>> Oracle to DB2 Conversion Guide: Learn learn about native support for
>>> >>>>> PL/SQL,
>>> >>>>> new data types, scalar functions, improved concurrency, built-in
>>> >>>>> packages,
>>> >>>>> OCI, SQL*Plus, data movement tools, best practices and more.
>>> >>>>> http://p.sf.net/sfu/oracle-sfdev2dev
>>> >>>>> _______________________________________________
>>> >>>>> Mixxx-devel mailing list
>>> >>>>> Mixxx-devel@lists.sourceforge.net
>>> >>>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>> >>>>>
>>> >>>>
>>> >>>> ------------------------------------------------------------------------------
>>> >>>> Oracle to DB2 Conversion Guide: Learn learn about native support for
>>> >>>> PL/SQL,
>>> >>>> new data types, scalar functions, improved concurrency, built-in
>>> >>>> packages,
>>> >>>> OCI, SQL*Plus, data movement tools, best practices and more.
>>> >>>> http://p.sf.net/sfu/oracle-sfdev2dev
>>> >>>> _______________________________________________
>>> >>>> Mixxx-devel mailing list
>>> >>>> Mixxx-devel@lists.sourceforge.net
>>> >>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>> >>>
>>> >>>
>>> >>> ------------------------------------------------------------------------------
>>> >>> Oracle to DB2 Conversion Guide: Learn learn about native support for
>>> >>> PL/SQL,
>>> >>> new data types, scalar functions, improved concurrency, built-in
>>> >>> packages,
>>> >>> OCI, SQL*Plus, data movement tools, best practices and more.
>>> >>> http://p.sf.net/sfu/oracle-sfdev2dev
>>> >>> _______________________________________________
>>> >>> Mixxx-devel mailing list
>>> >>> Mixxx-devel@lists.sourceforge.net
>>> >>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>> >>>
>>> >
>>> >
>>> >
>>> > ------------------------------------------------------------------------------
>>> > Lotusphere 2011
>>> > Register now for Lotusphere 2011 and learn how
>>> > to connect the dots, take your collaborative environment
>>> > to the next level, and enter the era of Social Business.
>>> > http://p.sf.net/sfu/lotusphere-d2d
>>> > _______________________________________________
>>> > Mixxx-devel mailing list
>>> > Mixxx-devel@lists.sourceforge.net
>>> > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>> >
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Lotusphere 2011
>>> Register now for Lotusphere 2011 and learn how
>>> to connect the dots, take your collaborative environment
>>> to the next level, and enter the era of Social Business.
>>> http://p.sf.net/sfu/lotusphere-d2d
>>> _______________________________________________
>>> Mixxx-devel mailing list
>>> Mixxx-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>
>>
>
> ------------------------------------------------------------------------------
> Lotusphere 2011
> Register now for Lotusphere 2011 and learn how
> to connect the dots, take your collaborative environment
> to the next level, and enter the era of Social Business.
> http://p.sf.net/sfu/lotusphere-d2d
> _______________________________________________
> Mixxx-devel mailing list
> Mixxx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>

------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to