JUCE框架教程(7)——AudioBuffer基础如何生成音频Output
JUCE框架教程(7)——AudioBuffer基础
什么是AudioBuffer?
AudioBuffer本质上是一个容器,它通常保存我们的音频信息。它创造了通道和样本(sample)。我们可以通过一些函数来获取使用AudioBuffer通道或者样本的值。
代码实例
创建一个audio项目,默认设置
进入cpp文件,初始化buffer变量
void MainComponent::getNextAudioBlock (const juce::AudioSourceChannelInfo& bufferToFill)
{// Your audio-processing code goes here!bufferToFill.clearActiveBufferRegion();auto* buffer = bufferToFill.buffer;auto numChannels = buffer->getNumChannels();auto numSamples = buffer->getNumSamples();
}
我们初始化了一个buffer,并且通过JUCE的API拿到了它的通道数和样本数
接下来,我们通过两个for循环在这个buffer的samples里面写入一些随机浮点数
for (auto channel = 0; channel < numChannels; channel++) {//get the sample pointerauto* writePointer = buffer->getWritePointer(channel);for (auto sample = 0; sample < numSamples; sample++) {//write randomFloat to the sampleswritePointer[sample] = randomGenerator.nextFloat() * 0.2f;}}
到这里我们就完成了使用AudioBuffer生成音频输出,由于不断产生随机浮点数,我们在编译后会听见白噪音。
JUCE框架教程(7)——AudioBuffer基础如何生成音频Output相关推荐
- 从零搭建React全家桶框架教程
从零搭建React全家桶框架教程 源码地址:https://github.com/brickspert/react-family 欢迎star 提问反馈:blog 原文地址:https://githu ...
- Konstrukt PHP REST框架 教程二
Konstrukt PHP REST框架 教程二 入门 - 第2部分 在本教程中,我们假设你已经完成了第一个教程,因为它的基础上产生的代码从该. 谈判的Content-Type 在大多数情况下会发出一 ...
- Spring教程 - Spring核心框架教程
Spring教程 - Spring核心框架教程 Spring是最广泛使用的Java EE框架之一.我已经在Spring Tutorial上写了很多内容,这是一篇摘要文章,它将作为索引按顺序完成所有这些 ...
- cutelyst教程_02 _Cutelyst基础
Tutorial_02_CutelystBasics 教程_02 _Cutelyst基础 Daniel Nicoletti edited this page on May 8, 2020 · 14 r ...
- 26Play框架教程2学习笔记
Play框架教程2学习笔记 文章目录 1 play框架01 1.1 概述 1.2 特性 1.2.1 无缝集成现有开发环境 1.2.2 热重载和修改Bug 1.2.3 简单的无状态MVC架构 1.2.4 ...
- spring框架教程 Spring开发实例 spring mvc视频教程下载
基于SpringMVC.MyBatis.FreeMarker架构实战CMS大型门户网站(自定义模板) spring框架教程 Spring开发实例 spring mvc视频教程下载地址: http:// ...
- Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件
目录 一.项目结构介绍 1.mztestpro测试项目 2.bbs目录 3.test_case 二.编写公共模块 三.编写Page Object 四.编写测试用例 五.执行测试用例 小结: 本人在网上 ...
- Spring认证中国教育管理中心-Spring Data Redis框架教程三
原标题:Spring认证中国教育管理中心-Spring Data Redis框架教程三 10.15.支持类 Packageorg.springframework.data.redis.support提 ...
- Asp.net Ajax框架教程
目录 (一).概述... (二).应用场景代码示例... 1).ScriptManager控件示例... 1. 在异步调用服务端注册客户端脚本新方法... 2. 捕获Ajax异步调用中 ...
- Kail Linux渗透测试教程之免杀Payload生成工具Veil
Kail Linux渗透测试教程之免杀Payload生成工具Veil 免杀Payload生成工具--Veil Kail Linux渗透测试教程之免杀Payload生成工具Veil,Veil是一款利用M ...
最新文章
- java 闭包与回调
- python使用sklearn的RocCurveDisplay来可视化ROC曲线(受试者工作特征曲线)
- SpringWeb 系列教程 RestTemplate 4xx/5xx 异常信息捕获
- 微信悄然上线了十款新表情,你注意到了吗?
- scikit_image
- ubuntu常见错误–Could not get lock /var/lib/dpkg/lock解决
- 平板电脑怎么投屏到电视上_电脑屏幕投屏到平板、IPAD、艾派德
- 一个「神奇」的Python库,99%的人都爱!
- eclips图片为什么显示不了_为什么要定制工业平板电脑?定制工业平板电脑的七大理由...
- Python使用ldap3操作微软AD
- android 获取linux线程状态,Android 的进程与线程总结
- mysql的命令行常用命令_MySQL Command Line[mysql命令行常用命令]
- 【数据结构和算法笔记】分别用vector数组和链表实现图的邻接表
- 前景检测算法(一)--综述
- tkmybatis更新无效
- Correlation Congruence for Knowledge Distillation
- 符号三角形_dfs算法
- 牛客IOI周赛27-普及组
- 制作可以用航模遥控器遥控的ESP32小车
- oracle错误编号06512,一个得到输入汉字的拼音函数报ORA-06512 数字或值错误