问题标签 [sound-synthesis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 使用 OpenSL ES 在 Android 上进行音频合成
我正在使用一些合成、FM 或 AM 在 Android 上制作音频应用程序。我正在使用 OpenSL 来降低延迟。我使用了 Audiotrack 库,延迟非常糟糕,但制作声音比使用 OpenSL 容易得多。我从 Native Audio 项目开始。有一点声音产生,但我不知道如何继续它。
这是锯齿声的代码
有人能解释一下为什么这些数字吗?我查看了 OpenSL API,但没有找到关于合成声音的信息。
谢谢
android - Android 音轨 getMinBufferSize() 在不同设备上返回不同的值
我有一个音频合成应用程序,它使用缓冲区大小和搜索栏值来改变速度。缓冲区大小越小,速度越快。从缓冲区大小中减去搜索栏值;搜索栏移动得越远,速度越快。
缓冲区大小使用以下公式计算:
在三星 Galaxy S6 手机上,返回的缓冲区大小为 10584。滑块值的底部和顶部分别给出 60 bpm 和 192 bpm。
但是,在 7" LG G Pad 7.0 上,返回的缓冲区大小仅为 3528。因此,起始速度约为 180-200 bpm,而不是所需的 60 bpm。
我正在考虑使用基于屏幕大小的硬编码缓冲区大小,但这只是创可贴的工作。
为什么相同的计算会在两个设备上返回两个不同的缓冲区大小?缓冲区大小是如何计算的?
android - 使用 OpenSL ES 在 Android 上生成声音
我正在 Android 上制作音频应用程序,我简单地生成了三种类型的声波——正弦波、锯齿波和方波。
产生波浪很好。我打印了结果,看起来不错。但是声音很奇怪。这是我记录的。 https://soundcloud.com/syntey/synth-sine-wave-test-nothing-to-do-here
锯齿和方格是一样的,但是当我用锯齿任意A演奏时,声音是正常的。
有人知道出了什么问题吗?如果我增加缓冲区的大小,那么周期会更长,但仍然是同样的问题
生成正弦波的代码:
parsing - SID文件格式解析
我想为 .sid 文件(C64 芯片的音乐)编写一个解析器,以将一些模式提取到笔记中。我搜索格式,发现:http ://cpansearch.perl.org/src/LALA/Audio-SID-3.11/SID_file_format.txt
我可以阅读该文档中的标题,但我不明白如何提取单个注释并输出它们。
我搜索现成的转换器并找到了这些:
- http://www.vgmpf.com/Wiki/index.php?title=SID_to_MIDI_(Windows)和 - 很旧,不起作用
- ... - 非常非常老,输出空文件
- ... - 只是一个论坛讨论
那是我发现了更多,但 StackOverflow 说我不能发布超过 2 个链接。
请帮忙。对不起,我的英语不好。感谢您的考虑!
c - 如何随着时间的推移准确计算正弦波
用例是为数字合成生成正弦波,因此,我们需要计算 sin(dt) 的所有值,其中:
t是一个整数,代表样本数。这是可变的。一小时 CD 音质的范围是从 0 到 158,760,000。
d是双倍的,表示角度的增量。这是恒定的。范围是:大于 0,小于 pi。
目标是使用传统的int和double数据类型实现高精度。性能并不重要。
天真的实现是:
但是,问题是当t增加时,准确性会降低,因为为“sin”函数提供了大量数字。
一个改进的版本如下:
在这里,我确保将 0 到 2*pi 范围内的数字提供给“sin”函数。
但是,现在的问题是当d很小时,有很多小的加法,每次都会降低精度。
这里的问题是如何提高准确性。
附录1
“由于向“sin”函数提供了大量数字,因此准确性降低了:
输出:
sound-synthesis - 如何在 Csound 中的乐器定义中包含持续时间
使用函数oscil
,我定义了一个具有给定频率和幅度的振荡器组:
我知道我可以在该orchestra
部分设置持续时间。但是我怎样才能给不同的振荡提供不同的持续时间呢?我可以在instrument
定义中这样做吗?因为我希望能够在以下一行中调用仪器(3 个振荡器)orchestra
:
python - Python Pyo midi 键盘模拟
我希望用 python 和 Pyo 开发一个合成器。我想用我的电脑键盘作为 MIDI 键盘来演奏旋律。
如何将我的电脑键盘伪装成 MIDI 键盘?
谢谢
matlab - 如何用带通滤波器合成雷声
我正在研究在 MATLAB 中合成雷声。我产生了粉红噪声,现在我试图在 30Hz 上添加带通滤波器,但出现错误:
这是我的代码:
也许还有其他方法可以合成它?