init
This commit is contained in:
74
lib_audio_dsp/test/json/test_delay_pipeline.py
Normal file
74
lib_audio_dsp/test/json/test_delay_pipeline.py
Normal file
@@ -0,0 +1,74 @@
|
||||
# Copyright 2025 XMOS LIMITED.
|
||||
# This Software is subject to the terms of the XMOS Public Licence: Version 1.
|
||||
"""Test delay pipeline creation."""
|
||||
|
||||
from audio_dsp.design.parse_json import DspJson, make_pipeline, pipeline_to_dspjson
|
||||
from audio_dsp.stages.signal_chain import Delay
|
||||
|
||||
|
||||
def test_simple_delay_pipeline():
|
||||
"""Test creating a simple delay pipeline."""
|
||||
print("Creating simple stereo delay pipeline...")
|
||||
|
||||
# Create a simple stereo delay pipeline JSON
|
||||
pipeline_json = {
|
||||
"ir_version": 1,
|
||||
"producer_name": "test_delay",
|
||||
"producer_version": "0.1",
|
||||
"graph": {
|
||||
"name": "Simple Delay",
|
||||
"fs": 48000,
|
||||
"nodes": [
|
||||
{
|
||||
"op_type": "Delay",
|
||||
"config": {
|
||||
"max_delay": 2048,
|
||||
"units": "samples"
|
||||
},
|
||||
"parameters": {
|
||||
"delay": 1024,
|
||||
},
|
||||
"placement": {
|
||||
"input": [["inputs", 0], ["inputs", 1]],
|
||||
"name": "StereoDelay",
|
||||
"thread": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"name": "inputs",
|
||||
"channels": 2
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "outputs",
|
||||
"input": [["StereoDelay", 0], ["StereoDelay", 1]],
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
dsp_json = DspJson(**pipeline_json)
|
||||
pipeline = make_pipeline(dsp_json)
|
||||
|
||||
# Find our delay stage
|
||||
delay_stage = None
|
||||
for stage in pipeline.stages:
|
||||
if isinstance(stage, Delay):
|
||||
delay_stage = stage
|
||||
break
|
||||
|
||||
assert delay_stage is not None, "Could not find Delay stage in pipeline"
|
||||
assert delay_stage.max_delay == 2048, f"Expected max_delay 2048, got {delay_stage.max_delay}"
|
||||
assert delay_stage.units == "samples", f"Expected units 'samples', got {delay_stage.units}"
|
||||
assert delay_stage.parameters.delay == 1024, f"Expected delay 1024, got {delay_stage.parameters.delay}"
|
||||
|
||||
new_json = pipeline_to_dspjson(pipeline)
|
||||
assert dsp_json.graph == new_json.graph, "Pipeline JSON does not match original"
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_simple_delay_pipeline()
|
||||
Reference in New Issue
Block a user