It works as expected just by adding "m4a" to the list of file extension supported by SoundSourceSndFile! Unfortunately libsndfile from Fedora 22 fails to open the ALAC file (see logs below). SoundSourceFFmpeg opens and plays the file, although it does not properly detect the end of the file.

I've used an example file from Linn Records for testing purposes: http://www.linnrecords.com/linn-downloads-testfiles.aspx

In the following log messages you can see how the SoundSources that have been registered for the file extension "m4a" are engaged according to their priority: SoundSourceM4A > SoundSourceSndFile > SoundSourceFFmpeg

Debug [AnalyserQueue 1]: Obtained SoundSource for "/home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" from provider "Nero FAAD2" Warning [AnalyserQueue 1]: No AAC track found: "file:///home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" Warning [AnalyserQueue 1]: Failed to open AudioSource for file "/home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" with provider "Nero FAAD2" Debug [AnalyserQueue 1]: Obtained SoundSource for "/home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" from provider "libsndfile" Warning [AnalyserQueue 1]: Error opening libsndfile file: "file:///home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" File contains data in an unknown format. Warning [AnalyserQueue 1]: Failed to open AudioSource for file "/home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" with provider "libsndfile" Debug [AnalyserQueue 1]: Obtained SoundSource for "/home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" from provider "FFmpeg" Debug [AnalyserQueue 1]: New SoundSourceFFmpeg : "/home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" Debug [Main]: WSpinny::slotCoverFound WSpinny(0x556bb50, name = "SpinnySingleton1") "CoverInfo(NONE,GUESSED,,0,/home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a)" QSize(0, 0)
Debug [AnalyserQueue 1]: ffmpeg: NEW FFMPEG API using libavresample
Debug [AnalyserQueue 1]: Created sample rate converter for conversion of 44100 Hz format: s16p with: 2 (layout: 3 ) channels (BPS 2 ) Debug [AnalyserQueue 1]: To 44100 HZ format: flt with 2 (layout: 3 ) channels (BPS 4 )
Debug [AnalyserQueue 1]: ffmpeg: Samplerate:  44100 , Channels:  2

Debug [AnalyserQueue 1]: Opened AudioSource for file "/home/uk/Music/Corrupt Tracks/Linn/tone16bit.m4a" with provider "FFmpeg" Debug [AnalyserQueue 1]: AnalysisDAO fetched 0 analyses, 0 bytes for track 47 in 0 ms
Debug [AnalyserQueue 1]: Vampanalyser BlockSize:  1024
Debug [AnalyserQueue 1]: Vampanalyser StepSize:  512
Debug [AnalyserQueue 1]: Beat calculation started with plugin "qm-tempotracker:0"
Debug [AnalyserQueue 1]: Vampanalyser BlockSize:  32768
Debug [AnalyserQueue 1]: Vampanalyser StepSize:  32768
Debug [AnalyserQueue 1]: Key calculation started with plugin "qm-keydetector:2"
Warning [Engine]: VisualPlayPosition: Audio API provides invalid time stamps, waveform syncing disabled. DacTime: 1883.51 EntrytoDac: 23514 Debug [AnalyserQueue 1]: SoundSourceFFmpeg::readFramesToCache: Packet too big or File end Debug [CachingReaderWorker 1]: SoundSourceFFmpeg::readFramesToCache: Packet too big or File end Debug [AnalyserQueue 1]: SoundSourceFFmpeg::readFramesToCache: Packet too big or File end Debug [AnalyserQueue 1]: SoundSourceFFmpeg::readFramesToCache: Packet too big or File end Debug [AnalyserQueue 1]: SoundSourceFFmpeg::readFramesToCache: Packet too big or File end Debug [AnalyserQueue 1]: SoundSourceFFmpeg::readFramesToCache: Packet too big or File end Warning [AnalyserQueue 1]: DEBUG ASSERT: "framesRead <= framesToRead" in file src/analyserqueue.cpp, line 185 Warning [AnalyserQueue 1]: DEBUG ASSERT: "pAudioSource->isValidFrameIndex(frameIndex)" in file src/analyserqueue.cpp, line 187 Warning [AnalyserQueue 1]: DEBUG ASSERT: "pAudioSource->isValidFrameIndex(frameIndex)" in file src/analyserqueue.cpp, line 222

On 06/16/2015 11:46 PM, Uwe Klotz wrote:
Main blocker: Mixxx currently uses only the file extension for the determining the file type. The file extension ".m4a" is already used for AAC files even if both AAC and ALAC files are stored in an MP4 container with the same file extension.

It might be possible with my extension of the SoundSource plugin framework:
https://github.com/mixxxdj/mixxx/pull/605

Drawback: ALAC files will first be opened by SoundSourceM4A first. This will fail and then SoundSourceSndFile takes over.

Uwe

P.S.: I have converted all my ALAC files to FLAC (including all metadata and cover art) when I stopped using iTunes for managing my music collection. It's a simple shell script that uses ffmpeg and metaflac.

On 06/16/2015 09:24 PM, Sean M. Pappalardo - D.J. Pegasus wrote:
Hi everyone.

Apparently ALAC support has been added to libsndfile (since 2012.) We need to adjust Mixxx to allow loading of these file types so we can ensure they work. Does anyone have any ALAC files they can test with?

(This is of interest because some digital DJ music pools supply music in ALAC format.)

Sincerely,
Sean M. Pappalardo
"D.J. Pegasus"
Mixxx Developer - Controller Specialist



------------------------------------------------------------------------------


_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel



------------------------------------------------------------------------------


_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

------------------------------------------------------------------------------
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to