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