Skip to content

Instantly share code, notes, and snippets.

@lostanlen
Last active July 27, 2017 17:21
Show Gist options
  • Save lostanlen/15fe9c879fdd24fe9023fa430314cd51 to your computer and use it in GitHub Desktop.
Save lostanlen/15fe9c879fdd24fe9023fa430314cd51 to your computer and use it in GitHub Desktop.
muda #59: BackgroundNoise fails with len(noise)==len(soundf)
from __future__ import print_function
import jams
import librosa
import muda
import numpy as np
import soundfile as sf
print("jams version: {:s}".format(jams.__version__))
print("librosa version: {:s}".format(librosa.__version__))
print("muda version: {:s}".format(muda.__version__))
print("numpy version: {:s}".format(np.__version__))
print("soundfile version: {:s}".format(sf.__version__))
sr = 22050
clip_length = 22050
clip_duration = clip_length / sr
# Generate short background noise
short_noise_path = "noise_1s.wav"
short_noise_y = np.random.randn(clip_length)
sf.write(short_noise_path, short_noise_y, sr)
# Generate long background noise
long_noise_path = "long_noise_1s.wav"
long_noise_y = np.random.randn(clip_length+1)
sf.write(long_noise_path, long_noise_y, sr)
# Extract music clip
music_source_path = librosa.util.example_audio_file()
music_source_y, _ = librosa.load(music_source_path)
music_y = music_source_y[:clip_length]
music_path = "music_1s.wav"
sf.write(music_path, music_y, sr)
# Generate JAMS metadata
jam = jams.JAMS()
jam.file_metadata.duration = clip_duration
ann = jams.Annotation('tag_open')
ann.duration = clip_duration
ann.append(time=0, duration=clip_duration, value="music", confidence=1)
jam.annotations.append(ann)
jam_music_path = "music_1s.jams"
jam.save(jam_music_path)
# Load data and metadata
jam_original = muda.load_jam_audio(jam_music_path, music_path)
# Create long deformer
long_deformer = muda.deformers.BackgroundNoise(files=[long_noise_path])
long_jam_transformer = next(long_deformer.transform(jam_original)) # no error
# Create short deformer
short_deformer = muda.deformers.BackgroundNoise(files=[short_noise_path])
short_jam_transformer = next(short_deformer.transform(jam_original)) # error
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment