标签: sound-synthesis

这个简单的FM合成器设计出了什么问题?

我正在尝试使用Audiolet(一个综合库,http: //oampo.github.io/ )在JavaScript中实现Yamaha YM3812声音芯片(又名OPL2 http://en.wikipedia.org/wiki/YM3812)的一些功能.Audiolet/api.html)

Audiolet允许您将合成器构建为节点图(振荡器,DSP,包络发生器等).

OPL2有9个通道,每个通道有两个运算符(振荡器).通常,每个通道中的一个振荡器调制另一个振荡器的频率.为了模拟这个,我为每个频道建立了一系列节点:

Synth节点链(九个通道之一)

已实施OPL2频道

节点链创建和连接代码:

var FmChannel = function(audiolet) {
    this.car = new ModifiedSine(audiolet);
    this.carMult = 1;
    this.setCarrierWaveform(this.SIN);
    this.mod = new ModifiedSine(audiolet);
    this.modMult = 1;
    this.setModulatorWaveform(this.SIN);
    this.modMulAdd = new MulAdd(audiolet);
    this.carGain = new Gain(audiolet);
    this.carEnv = new ADSREnvelope(audiolet, 0, 0.1, 0.1, 0.1, 0.1,
        function() {
            this.carEnv.reset();
        }.bind(this)
    );
    this.carAtten = new Multiply(audiolet);
    this.modGain = new Gain(audiolet);
    this.modEnv = new ADSREnvelope(audiolet, 0, 0.1, 0.1, 0.1, 0.1,
        function() {
            this.modEnv.reset();
        }.bind(this)
    );
    this.modAtten = …
Run Code Online (Sandbox Code Playgroud)

javascript signal-processing sound-synthesis audiolet web-audio-api

38
推荐指数
1
解决办法
1474
查看次数

从哪里开始iOS音频合成器?

我知道这是一个非常广泛的主题,但我一直在用演示和我自己的测试来挣扎,我不确定我是否正确地攻击了这个问题.所以,我应该开始的任何线索将不胜感激.

目标是让应用程序根据用户的设置生成一些合成声音.(这不是唯一的应用程序功能,我不是在这里重新创建Korg,但是synth是其中的一部分.)用户可以设置典型的合成器设置,如波形,混响等,然后在音符播放时选择,可能使用俯仰和速度修正器.

我用音频单元和RemoteIO玩了一下,但只是勉强理解我在做什么.在我走到那个兔子洞之前,我想知道我是否在正确的球场.我知道音频合成器将是低级别的,但我希望可能有一些我可以使用的更高级别的库.

如果您有任何关于从哪里开始的指示,以及我应该阅读的iOS技术,请告诉我.

谢谢!

编辑:让我更好地总结一下问题.

是否已经为iOS构建了任何合成库?(商业或开源 - 我没有找到任何搜索,但也许我错过了.)

是否有更高级别的API可以帮助生成缓冲区更容易?

假设我已经可以生成缓冲区了,是否有更好/更简单的方法将这些缓冲区提交到iOS音频设备而不是RemoteIO Audio Unit?

audio synthesizer sound-synthesis ios

30
推荐指数
2
解决办法
1万
查看次数

使用supercollider和python

我想做一些实时的声音处理,我听说过supercollider

它看起来很棒,但我想坚持使用python,因为"普通"编程是个问题.

有没有办法将python脚本作为模块加载到supercollider或oposite?

意味着将库导入我的python代码并使用supercollider功能?

我没有在网上找到太多关于它的信息,所以任何帮助都会很棒.

python audio mp3 sound-synthesis supercollider

12
推荐指数
1
解决办法
6232
查看次数

滚球的声音

我正在寻找最真实的播放滚球声的方法.目前我正在使用Wav样本,只要球正在移动,我就会一遍又一遍地玩 - 这感觉不对.

我一直在考虑完全合成声音,我对此几乎一无所知(几乎没有),我很感激任何关于合成由特定材料制成的球的声音的教程/研究材料/样品制成的表面制作另一种材料.如果这个想法完全错误,请提出另一种方法.

谢谢!

c sound-synthesis

9
推荐指数
3
解决办法
2534
查看次数

纯C(可能是C++)上的轻量级开源软件合成库.PCM?

是否有任何便携式开源库支持基于样本的合成并封装生成和混合简单的PCM?

我真的需要一些简约的东西,并与操作系统的音频输出机制分离.

c pcm sound-synthesis

8
推荐指数
1
解决办法
1653
查看次数

C/C++/Objective-C中的声音合成框架?

我在网上搜索过但没有发现任何有趣的东西.也许我做错了什么.

我正在寻找用C,C++甚至Objective-C编写的声音合成API,它可以合成不同类型的波,效果是可选的.

audio synthesizer sound-synthesis

7
推荐指数
1
解决办法
1万
查看次数

对编程实时音频合成有什么建议吗?

我目前正在开发一个个人项目:在Flash中创建一个用于实时音频合成的库.简而言之:用于连接波形发生器,滤波器,混频器等的工具,并为声卡提供原始(实时)数据.像max/msp或Reaktor之类的东西.

我已经有了一些工作,但我想知道我写的基本设置是否正确.我不想在以后遇到问题迫使我改变我的应用程序的核心(虽然这总是会发生).

基本上,我现在所做的是从链的末尾开始,在(原始)声音数据"输出"(到声卡)的地方.要做到这一点,我需要将一块字节(ByteArrays)写入一个对象,并获得该块,我要求连接到我的'Sound Out'模块的任何模块给我他的块.该模块对连接到其输入的模块执行相同的请求,并且一直发生,直到达到链的开始.

这是正确的方法吗?如果有反馈循环,或者如果有另一个模块没有输出,我可以想象遇到问题:如果我要在某处连接一个spectrumanalyzer,那将是链中的死胡同(一个没有输出的模块,只是一个输入).在我目前的设置中,这样的模块无法工作,因为我只从声音输出模块开始计算.

有没有人有这样的编程经验?我对正确方法的一些想法非常感兴趣.(为清楚起见:我不是在寻找特定的Flash实现,这就是为什么我没有在flash或actionscript下标记这个问题)

audio real-time sound-synthesis

7
推荐指数
1
解决办法
893
查看次数

如何在Android中轻松生成Synth和弦声音?

如何在Android中轻松生成Synth和弦声音?我想能够使用8bit动态生成游戏音乐.尝试使用AudioTrack,但尚未获得好听的效果.

有什么例子吗?

我尝试了以下代码但没有成功:

public class BitLoose {
    private final int duration = 1; // seconds
    private final int sampleRate = 4200;
    private final int numSamples = duration * sampleRate;
    private final double sample[] = new double[numSamples];

    final AudioTrack audioTrack;

    public BitLoose() {
        audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
                sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO,
                AudioFormat.ENCODING_PCM_8BIT, numSamples,
                AudioTrack.MODE_STREAM);
        audioTrack.play();
    }

    public void addTone(final int freqOfTone) {
        // fill out the array
        for (int i = 0; i < numSamples; ++i) {
            sample[i] = Math.sin(2 * …
Run Code Online (Sandbox Code Playgroud)

android chord sound-synthesis

7
推荐指数
1
解决办法
3089
查看次数

在Java中,有没有办法合成特定频率的音调?

我正在做双耳节拍的一些工作,我正在尝试构建一个Java应用程序,它可以以略微不同的频率播放两种声音......大约25-30Hz的差异.

在一个完美的世界中,我想给Java两个整数输入,比如440和410,并让Java播放440Hz音调和410Hz音调.

鉴于我在javax.sound.*课堂上看到的,似乎Java只支持相当于钢琴音符... A4 @ 440Hz,然后A-sharp-4 @ 466.164Hz,而在另一个方向,G-sharp-4 @ 415.305Hz.虽然"相邻"通常在产生双耳节拍的范围内,但我试图在音调的频率上实现更多的控制.

由于简单的音频合成无非是频率,强度长的时间多了,它会出现在我在的深处某处javax.sound.*类,有一些类型的查询,当我告诉Java玩"A4",说,这是440Hz.问题在于是否有办法破解该表,说"A4.1"相当于449Hz.

我一直在搞乱javax.sound.midi,还没有探索过javax.sound.sampled; 似乎我需要对我的音调进行采样以使用这些sampled类; 我更喜欢合成.如果我弄错的话,引导我吧.

我见过的大多数第三方界面都专门针对音乐制作和操作,因此,他们使用微调的能力有限.有没有人对解决方案有任何经验或建议?

java javasound sound-synthesis

7
推荐指数
1
解决办法
3334
查看次数

减少谐波,在Java中产生纯音

我正在尝试用Java开发一个静态方法来生成纯音.

在开始时它似乎很容易,但是当我尝试将双阵列写入扬声器时,我欣赏太多的谐波.

我用频谱分析仪(声压计)测试它,然后我也在图形中绘制了数组结果.当我完成它时,我已经看到了问题:

这是波形,它已经中断了.我想平滑这个数组,但我不知道该怎么做.

这是代码:

/**
 * Genera un tono puro.
 * @param bufferSize Tamaño del buffer.
 * @param fs Frecuencia de muestreo.
 * @param f0 Frecuencia central. 
 * @return El tono puro.
 */
public static double[] generateTone(int bufferSize, int fs, int f0) {
    double[] tone = new double[bufferSize]; // Tono
    double angle; // Ángulo del tono

    // Sólo hace falta recorrer la mitad del array, ya que hay simetría:
    for (int i = 0; i < tone.length / 2; …
Run Code Online (Sandbox Code Playgroud)

java waveform sound-synthesis

7
推荐指数
1
解决办法
273
查看次数