JUCE框架教程(8)——DSP Module基础

JUCE的DSP模块是JUCE官方提供的DSP库,它包含了很多基本的DSP插件,能帮助您快速搭建一个音频插件。

如何使用DSP模块
1.在项目中引入DSP库

2.初始化

juce::dsp::Chorus<float> chorus;

3.准备和重置DSP
prepareToPlay函数中,最后加入

juce::dsp::ProcessSpec spec;
spec.maximumBlockSize = samplesPerBlock;
spec.sampleRate = sampleRate;chorus.prepare(spec);
chorus.reset();

4.新建参数

void DSPAudioProcessor::parameterChanged(const juce::String& parameterID, float newValue) {if (parameterID == "RATE") chorus.setRate(newValue);//......
}

5.处理DSP

void DSPAudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce::MidiBuffer& midiMessages)
{juce::ScopedNoDenormals noDenormals;auto totalNumInputChannels  = getTotalNumInputChannels();auto totalNumOutputChannels = getTotalNumOutputChannels();juce::dsp::AudioBlock<float> sampleBlock(buffer);chorus.process(juce::dsp::ProcessContextReplacing<float>(sampleBlock));for (auto i = totalNumInputChannels; i < totalNumOutputChannels; ++i)buffer.clear (i, 0, buffer.getNumSamples());// This is the place where you'd normally do the guts of your plugin's// audio processing...// Make sure to reset the state if your inner loop is processing// the samples and the outer loop is handling the channels.// Alternatively, you can process the samples with the channels// interleaved by keeping the same state.for (int channel = 0; channel < totalNumInputChannels; ++channel){auto* channelData = buffer.getWritePointer (channel);// ..do something to the data...}
}

这样,我们就完成了将一个DSP插件应用到工程的过程。

JUCE框架教程(8)——DSP Module基础相关推荐

  1. Python框架Flask系列教程(1)——基础-黄勇-专题视频课程

    Python框架Flask系列教程(1)--基础-4431人已学习 课程介绍         从初级讲解Flask开发网站.涉及到的知识点包括:URL和视图.Jinja2模版.SQLAlchemy数据 ...

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

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

  3. 大数据分析PyTorchx深度学习框架教程

    PyTorch是一个不断发展的深度学习框架,具有许多令人兴奋的附加功能.我们将回顾其基本元素,并逐步演示构建简单的深度神经网络(DNN)的示例. PyTorch的基础知识-简介 自从2017年初推出它 ...

  4. 【Android开发教程】一、基础概念

    Android操作系统 Android是一个基于Linux.使用java作为程序接口的操作系统.他提供了一些工具,比如编译器.调试器.还有他自己的仿真器(DVM - Dalvik Virtual Ma ...

  5. Konstrukt PHP REST框架 教程二

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

  6. css点击a标签显示下划线_好程序员HTML5培训教程-html和css基础知识

    好程序员HTML5培训教程-html和css基础知识,Html是超文本标记语言(英语全称:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言. Css ...

  7. “.NET研究”【Android开发教程】一、基础概念

    Android操作系统 Android是一个基于Linux.使用java作为程序接口的操作系统.他提供了一些工具,比如编译器.调试器.还有他自己的仿真器(DVM - Dalvik Virtual Ma ...

  8. Spring 框架教程

    Spring 框架教程 Spring Framework是最流行的Java EE框架之一.本文面向希望学习Spring框架体系结构的Java开发人员,它的核心组件以及属于Spring框架伞的各种项目. ...

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

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

  10. 视频教程-WebGL 可视化3D绘图框架:Three.js 零基础上手实战-其他

    WebGL 可视化3D绘图框架:Three.js 零基础上手实战 网名风舞烟,中国科技大学计算机专业.微软认证讲师(MCE).微软数据分析讲师.10多年软件行业从业经验,参与过数百万的企业级ERP系统 ...

最新文章

  1. 创建Okhttp自定义Log
  2. 汽车车牌识别系统实现(四)--字符识别+代码实现
  3. 【转】1.8异步编程:.NET 4.5 基于任务的异步编程模型(TAP)
  4. 又涨价了!华为 P40系列海外售价曝光:还好国行版友好不少
  5. php主键自增sql语句,sql 自动增长的主键
  6. android聊天界面对话气泡_你在和脚本谈恋爱(自动化在IM聊天中的应用)
  7. java撕裂_屏幕撕裂与卡顿分析
  8. 【物理/数学】概念的理解 —— pivot、position
  9. vue移动端UI组件
  10. 分析DuxCms之AdminUserModel
  11. UE4C++设置Actor与父Actor的相对位置和相对旋转
  12. 通达信 数据格式 java_通达信日线 数据格式
  13. 激活黑群晖Synology Active Backup for Business,黑群晖系统备份软件激活,亲测有效
  14. 最近所学的Json以及ajax的应用
  15. JavaWeb项目打包成桌面程序,内嵌浏览器、tomcat、jre、mysql,实现一键安装
  16. freemaker+echarts导出word文档
  17. 好东西来了!2017云栖大会300+份重磅资料下载
  18. Request请求转发和重定向
  19. 众筹电商模式的原理,怎么实现用户裂变?
  20. SimpleFOC移植STM32(九)—— ABZ编码器电机

热门文章

  1. 简单常用的互联网赚钱工具分享
  2. 除了秀米,微信排版还有什么好用的? ---短网址
  3. Mybatis 缓存
  4. CAS算法的理解与应用
  5. python用实现FGO自动挂机战斗思路
  6. 2020 全国的邮政编码 json
  7. verilog学习笔记——8位数码管驱动设计与验证
  8. matlab积分器,MATLAB_SIMULINK__积分器相关操作
  9. 测试开发面试题汇总20200422
  10. C++模拟鼠标键盘操作(转)