我目前正在开发一个个人项目:在Flash中创建一个用于实时音频合成的库.简而言之:用于连接波形发生器,滤波器,混频器等的工具,并为声卡提供原始(实时)数据.像max/msp或Reaktor之类的东西.
我已经有了一些工作,但我想知道我写的基本设置是否正确.我不想在以后遇到问题迫使我改变我的应用程序的核心(虽然这总是会发生).
基本上,我现在所做的是从链的末尾开始,在(原始)声音数据"输出"(到声卡)的地方.要做到这一点,我需要将一块字节(ByteArrays)写入一个对象,并获得该块,我要求连接到我的'Sound Out'模块的任何模块给我他的块.该模块对连接到其输入的模块执行相同的请求,并且一直发生,直到达到链的开始.
这是正确的方法吗?如果有反馈循环,或者如果有另一个模块没有输出,我可以想象遇到问题:如果我要在某处连接一个spectrumanalyzer,那将是链中的死胡同(一个没有输出的模块,只是一个输入).在我目前的设置中,这样的模块无法工作,因为我只从声音输出模块开始计算.
有没有人有这样的编程经验?我对正确方法的一些想法非常感兴趣.(为清楚起见:我不是在寻找特定的Flash实现,这就是为什么我没有在flash或actionscript下标记这个问题)