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相关推荐

  1. 从零搭建React全家桶框架教程

    从零搭建React全家桶框架教程 源码地址:https://github.com/brickspert/react-family 欢迎star 提问反馈:blog 原文地址:https://githu ...

  2. Konstrukt PHP REST框架 教程二

    Konstrukt PHP REST框架 教程二 入门 - 第2部分 在本教程中,我们假设你已经完成了第一个教程,因为它的基础上产生的代码从该. 谈判的Content-Type 在大多数情况下会发出一 ...

  3. Spring教程 - Spring核心框架教程

    Spring教程 - Spring核心框架教程 Spring是最广泛使用的Java EE框架之一.我已经在Spring Tutorial上写了很多内容,这是一篇摘要文章,它将作为索引按顺序完成所有这些 ...

  4. cutelyst教程_02 _Cutelyst基础

    Tutorial_02_CutelystBasics 教程_02 _Cutelyst基础 Daniel Nicoletti edited this page on May 8, 2020 · 14 r ...

  5. 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 ...

  6. spring框架教程 Spring开发实例 spring mvc视频教程下载

    基于SpringMVC.MyBatis.FreeMarker架构实战CMS大型门户网站(自定义模板) spring框架教程 Spring开发实例 spring mvc视频教程下载地址: http:// ...

  7. Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

    目录 一.项目结构介绍 1.mztestpro测试项目 2.bbs目录 3.test_case 二.编写公共模块 三.编写Page Object 四.编写测试用例 五.执行测试用例 小结: 本人在网上 ...

  8. Spring认证中国教育管理中心-Spring Data Redis框架教程三

    原标题:Spring认证中国教育管理中心-Spring Data Redis框架教程三 10.15.支持类 Packageorg.springframework.data.redis.support提 ...

  9. Asp.net Ajax框架教程

    目录 (一).概述... (二).应用场景代码示例... 1).ScriptManager控件示例...     1. 在异步调用服务端注册客户端脚本新方法...     2. 捕获Ajax异步调用中 ...

  10. Kail Linux渗透测试教程之免杀Payload生成工具Veil

    Kail Linux渗透测试教程之免杀Payload生成工具Veil 免杀Payload生成工具--Veil Kail Linux渗透测试教程之免杀Payload生成工具Veil,Veil是一款利用M ...

最新文章

  1. java 闭包与回调
  2. python使用sklearn的RocCurveDisplay来可视化ROC曲线(受试者工作特征曲线)
  3. SpringWeb 系列教程 RestTemplate 4xx/5xx 异常信息捕获
  4. 微信悄然上线了十款新表情,你注意到了吗?
  5. scikit_image
  6. ubuntu常见错误–Could not get lock /var/lib/dpkg/lock解决
  7. 平板电脑怎么投屏到电视上_电脑屏幕投屏到平板、IPAD、艾派德
  8. 一个「神奇」的Python库,99%的人都爱!
  9. eclips图片为什么显示不了_为什么要定制工业平板电脑?定制工业平板电脑的七大理由...
  10. Python使用ldap3操作微软AD
  11. android 获取linux线程状态,Android 的进程与线程总结
  12. mysql的命令行常用命令_MySQL Command Line[mysql命令行常用命令]
  13. 【数据结构和算法笔记】分别用vector数组和链表实现图的邻接表
  14. 前景检测算法(一)--综述
  15. tkmybatis更新无效
  16. Correlation Congruence for Knowledge Distillation
  17. 符号三角形_dfs算法
  18. 牛客IOI周赛27-普及组
  19. 制作可以用航模遥控器遥控的ESP32小车
  20. oracle错误编号06512,一个得到输入汉字的拼音函数报ORA-06512 数字或值错误

热门文章

  1. 新手坐高铁怎么找车厢_新手坐高铁怎么找车厢
  2. 刷脸支付是在扫码支付的基础上发展而来
  3. 无法定位程序输入点K32Get Module File Name Ex于动态链接库KERNEL32.dll上 的错误解析
  4. 用Java写脚本,常用的一些方法
  5. Mac配置maven环境变量
  6. 常用来进行钢结构节点输出的软件是什么_【经验分享】钢结构深化设计BIM应用方法总结...
  7. Spring Security源码解析(一)
  8. 电视盒子ADB常用命令
  9. (二十)STM32——电容触摸按键?建议改名为卫生纸按键
  10. 【数学建模】灰色模型