init
This commit is contained in:
75
lib_audio_dsp/test/json/test_reverb_pipeline.py
Normal file
75
lib_audio_dsp/test/json/test_reverb_pipeline.py
Normal file
@@ -0,0 +1,75 @@
|
||||
# Copyright 2025 XMOS LIMITED.
|
||||
# This Software is subject to the terms of the XMOS Public Licence: Version 1.
|
||||
"""Test reverb pipeline creation."""
|
||||
|
||||
from audio_dsp.design.parse_json import DspJson, make_pipeline, pipeline_to_dspjson
|
||||
|
||||
|
||||
def test_plate_reverb_pipeline():
|
||||
"""Test creating a plate reverb pipeline."""
|
||||
print("Creating plate reverb pipeline...")
|
||||
|
||||
# Create a plate reverb pipeline JSON
|
||||
pipeline_json = {
|
||||
"ir_version": 1,
|
||||
"producer_name": "test_reverb",
|
||||
"producer_version": "0.1",
|
||||
"graph": {
|
||||
"name": "Plate Reverb",
|
||||
"fs": 48000,
|
||||
"nodes": [
|
||||
{
|
||||
"op_type": "ReverbPlateStereo",
|
||||
"config": {
|
||||
"max_predelay": 30.0
|
||||
},
|
||||
"parameters": {
|
||||
"predelay": 15.0,
|
||||
"width": 0.8,
|
||||
"damping": 0.4,
|
||||
"decay": 0.6,
|
||||
"early_diffusion": 0.7,
|
||||
"late_diffusion": 0.6,
|
||||
"bandwidth": 0.9,
|
||||
"wet_dry_mix": 0.4
|
||||
},
|
||||
"placement": {
|
||||
"input": [["inputs", 0], ["inputs", 1]],
|
||||
"name": "StereoPlateReverb",
|
||||
"thread": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"name": "inputs",
|
||||
"channels": 2
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "outputs",
|
||||
"input": [["StereoPlateReverb", 0], ["StereoPlateReverb", 1]]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
dsp_json = DspJson(**pipeline_json)
|
||||
pipeline = make_pipeline(dsp_json)
|
||||
|
||||
# Find our reverb stage
|
||||
reverb_stage = None
|
||||
for stage in pipeline.stages:
|
||||
if stage.name == "reverb_plate":
|
||||
reverb_stage = stage
|
||||
break
|
||||
|
||||
assert reverb_stage is not None, "Could not find Plate Reverb stage in pipeline"
|
||||
|
||||
new_json = pipeline_to_dspjson(pipeline)
|
||||
assert dsp_json.graph == new_json.graph, "Pipeline JSON does not match original"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_plate_reverb_pipeline()
|
||||
Reference in New Issue
Block a user