From 1038aea822fdc8a84745bd44cc96ed97d66bbc28 Mon Sep 17 00:00:00 2001 From: Ben Sturmfels Date: Wed, 1 Apr 2020 16:52:05 +1100 Subject: Fix audio thumbnailing once and for all. This change adds a Python 3-specific audio thumbnailer that side-steps the bundled Python 2-only `audioprocessing` module. Instead of an audio spectrogram, Python 3 users will get a static image. This also allows me to remove my ineffective customisations to `audioprocessing`, returning it to the upstream version as should always be the case for vendored code in "extlib". --- extlib/freesound/audioprocessing.py | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) (limited to 'extlib') diff --git a/extlib/freesound/audioprocessing.py b/extlib/freesound/audioprocessing.py index b9a96a97..b002ff8a 100644 --- a/extlib/freesound/audioprocessing.py +++ b/extlib/freesound/audioprocessing.py @@ -43,32 +43,7 @@ def get_sound_type(input_filename): try: 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 - + print "WARNING: audiolab is not installed so wav2png will not work" import subprocess class AudioProcessingException(Exception): -- cgit v1.2.3