I have justed tested the latest SVN rev of Juce and ran the juce demo on an ubuntu jaunty distro. The juce demo crashes here:
#0 0x08056e5e in juce::AudioDataConverters::deinterleaveSamples (source=0x9acc828, dest=0xb6f41b6c, numSamples=512, numChannels=2) at ../../src/../../../juce_amalgamated.cpp:24083
#1 0x08252383 in juce::ALSADevice::read (this=0xb6f39380, data=0xb6f41b6c, numSamples=512) at ../../src/../../../juce_amalgamated.cpp:257990
#2 0x08253681 in juce::ALSAThread::run (this=0xb6f41888) at ../../src/../../../juce_amalgamated.cpp:258211
#3 0x08119d80 in juce::Thread::threadEntryPoint (thread=0xb6f41888) at ../../src/../../../juce_amalgamated.cpp:15236
on a null pointer dereference. 2 channels are expected, but the “dst” arrays is NULL for the second channel. I think there is something wrong in AlsaThread::open() , adding an
I think the fix that was commited in revision r718 is not good.
There is a typo in “currentOutputChans.setRange (0, minChansIn, true);” (should be minChansOut) , and I also think it is not set at the right place (should be done before the juce_calloc calls that allocate room for inputChannelData and outputChannelData).
Here is the fix that I am currently using:
if (outputChannels.getHighestBit() >= 0)
{
for (int i = 0; i <= jmax(outputChannels.getHighestBit(), minChansOut); ++i) // FIX HERE
{
outputChannelData [i] = (float*) juce_calloc (sizeof (float) * bufferSize);