not compile it with alsa support. Alsa support is not necessary for the GNU
MediaGoblin application.
-Then install ``scikits.audiolab`` for the spectrograms::
+If you're running Python 2, install ``scikits.audiolab`` for the spectrograms::
./bin/pip install scikits.audiolab
+Audio spectrograms are currently not available on Python 3, since scikits.audiolab
+does not provide Python 3 support.
+
Add ``[[mediagoblin.media_types.audio]]`` under the ``[plugins]`` section in your
``mediagoblin.ini`` and restart MediaGoblin.
import scikits.audiolab as audiolab
except ImportError:
print("WARNING: audiolab is not installed so wav2png will not work")
+
+ # Hack to prevent errors when uploading audio files. The issue is that
+ # scikits.audiolab does not support Python 3. By replacing it with a mock
+ # implementation here, we can accept audio files, but we won't get the nice
+ # waveform image.
+ import six
+ if six.PY3:
+ class MockSndfile(object):
+ def __init__(self, *args, **kwargs):
+ self.nframes = 0
+ self.channels = 1
+ self.samplerate = 44100
+
+ def read_frames(self, *args):
+ return []
+
+ def seek(self, *args):
+ return
+
+ def close(self):
+ return
+ import unittest.mock as mock
+ audiolab = mock.Mock()
+ audiolab.Sndfile = MockSndfile
+
import subprocess
class AudioProcessingException(Exception):