Esempio n. 1
0
def test_replay(jam_in, audio_file):

    T = muda.deformers.LogspaceTimeStretch()
    S = muda.deformers.PitchShift(n_semitones=1)
    P = muda.Pipeline([('time', T), ('pitch', S)])

    # Load in the jam and transform it
    jam_1 = muda.load_jam_audio(jam_in, audio_file)
    jam_muda = next(P.transform(jam_1))

    # Load a fresh copy of the jam
    jam_2 = muda.load_jam_audio(jam_in, audio_file)

    # Pop the audio container out of the jam2 sandbox
    _audio = jam_muda.sandbox.muda._audio

    jam_new = muda.replay(jam_muda, jam_2)

    # 1: check all annotations
    for a1, a2 in zip(jam_muda.annotations, jam_new.annotations):
        assert a1 == a2

    # 2: check audio
    assert np.allclose(_audio['y'], jam_new.sandbox.muda._audio['y'])
    assert _audio['sr'] == jam_new.sandbox.muda._audio['sr']

    # Verify that the objects are in fact distinct
    assert jam_muda is not jam_new
Esempio n. 2
0
def test_serialize_pipeline():

    D1 = muda.deformers.LogspaceTimeStretch()
    D2 = muda.deformers.LogspaceTimeStretch()
    P_orig = muda.Pipeline([('stretch_1', D1), ('stretch_2', D2)])
    P_ser = muda.serialize(P_orig)

    P_new = muda.deserialize(P_ser)

    assert P_orig is not P_new
    assert P_orig.get_params() == P_new.get_params()
Esempio n. 3
0
def test_pipeline(jam_fixture):
    D1 = muda.deformers.TimeStretch(rate=2.0)
    D2 = muda.deformers.TimeStretch(rate=1.5)

    P = muda.Pipeline([('stretch_1', D1), ('stretch_2', D2)])

    jam_orig = deepcopy(jam_fixture)

    for jam_new in P.transform(jam_orig):
        assert jam_new is not jam_orig
        __test_time(jam_orig, jam_fixture, 1.0)

        # Verify that the state and history objects are intact
        __test_deformer_history(D1, jam_new.sandbox.muda.history[0])
        __test_deformer_history(D2, jam_new.sandbox.muda.history[-1])

        __test_time(jam_orig, jam_new, D1.rate[0] * D2.rate[0])
Esempio n. 4
0
def test_bad_pipeline_object():
    D = muda.deformers.TimeStretch(rate=2.0)

    muda.Pipeline([('stretch1', D),
                   ('stretch2', 'not a basetransformer')])
Esempio n. 5
0
def test_bad_pipeline_unique():
    D1 = muda.deformers.TimeStretch(rate=2.0)
    D2 = muda.deformers.TimeStretch(rate=1.5)

    muda.Pipeline([('stretch', D1), ('stretch', D2)])
Esempio n. 6
0
import muda
import jams
import wave

jam=jams.JAMS()

j_orig = muda.load_jam_audio(jam, '01-Make_It.wav')

# f=wave.open('01-Make_It.wav','rb')
# params=f.getparams()
# n_channels,samp_width,frame_rate,n_frames=params[:4]
#
# print(samp_width)

pitch=muda.deformers.PitchShift(n_semitones=2)

stretch=muda.deformers.TimeStretch(rate=0.8)

pipline=muda.Pipeline(steps=[('pitch_shift',pitch),
                             ('time_stretch',stretch)])

output_jams=list(pipline.transform(j_orig))