43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
|
|
# -----------------------------------------------------------------------
|
|
# Implementation of the following:
|
|
#
|
|
# 1. Setup ECI to read audio from file, apply a 100Hz lowpass filter, and
|
|
# send it to the soundcard (/dev/dsp).
|
|
# 2. Every second, check the current position. If the stream has
|
|
# been running for over 15 seconds, exit immediately. Also,
|
|
# every second, increase the lowpass filter's cutoff frequency
|
|
# by 500Hz.
|
|
# 3. Stop the stream (if not already finished) and disconnect the
|
|
# chainsetup. Print chain operator status info.
|
|
# -----------------------------------------------------------------------
|
|
|
|
import time
|
|
from pyeca import *
|
|
e = ECA_CONTROL_INTERFACE()
|
|
e.command("cs-add play_chainsetup")
|
|
e.command("c-add 1st_chain")
|
|
e.command("ai-add foo.wav")
|
|
e.command("ao-add /dev/dsp")
|
|
e.command("cop-add -efl:100")
|
|
e.command("cop-select 1")
|
|
e.command("copp-select 1")
|
|
e.command("cs-connect")
|
|
e.command("start")
|
|
cutoff_inc = 500.0
|
|
while 1:
|
|
time.sleep(1)
|
|
e.command("engine-status")
|
|
if e.last_string() != "running": break
|
|
e.command("get-position")
|
|
curpos = e.last_float()
|
|
if curpos > 15: break
|
|
e.command("copp-get")
|
|
next_cutoff = cutoff_inc + e.last_float()
|
|
e.command_float_arg("copp-set", next_cutoff)
|
|
e.command("stop")
|
|
e.command("cs-disconnect")
|
|
e.command("cop-status")
|
|
print "Chain operator status: ", e.last_string()
|