JUCE框架教程(8)——DSP Module基础
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基础相关推荐
- Python框架Flask系列教程(1)——基础-黄勇-专题视频课程
Python框架Flask系列教程(1)--基础-4431人已学习 课程介绍 从初级讲解Flask开发网站.涉及到的知识点包括:URL和视图.Jinja2模版.SQLAlchemy数据 ...
- 从零搭建React全家桶框架教程
从零搭建React全家桶框架教程 源码地址:https://github.com/brickspert/react-family 欢迎star 提问反馈:blog 原文地址:https://githu ...
- 大数据分析PyTorchx深度学习框架教程
PyTorch是一个不断发展的深度学习框架,具有许多令人兴奋的附加功能.我们将回顾其基本元素,并逐步演示构建简单的深度神经网络(DNN)的示例. PyTorch的基础知识-简介 自从2017年初推出它 ...
- 【Android开发教程】一、基础概念
Android操作系统 Android是一个基于Linux.使用java作为程序接口的操作系统.他提供了一些工具,比如编译器.调试器.还有他自己的仿真器(DVM - Dalvik Virtual Ma ...
- Konstrukt PHP REST框架 教程二
Konstrukt PHP REST框架 教程二 入门 - 第2部分 在本教程中,我们假设你已经完成了第一个教程,因为它的基础上产生的代码从该. 谈判的Content-Type 在大多数情况下会发出一 ...
- css点击a标签显示下划线_好程序员HTML5培训教程-html和css基础知识
好程序员HTML5培训教程-html和css基础知识,Html是超文本标记语言(英语全称:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言. Css ...
- “.NET研究”【Android开发教程】一、基础概念
Android操作系统 Android是一个基于Linux.使用java作为程序接口的操作系统.他提供了一些工具,比如编译器.调试器.还有他自己的仿真器(DVM - Dalvik Virtual Ma ...
- Spring 框架教程
Spring 框架教程 Spring Framework是最流行的Java EE框架之一.本文面向希望学习Spring框架体系结构的Java开发人员,它的核心组件以及属于Spring框架伞的各种项目. ...
- Spring教程 - Spring核心框架教程
Spring教程 - Spring核心框架教程 Spring是最广泛使用的Java EE框架之一.我已经在Spring Tutorial上写了很多内容,这是一篇摘要文章,它将作为索引按顺序完成所有这些 ...
- 视频教程-WebGL 可视化3D绘图框架:Three.js 零基础上手实战-其他
WebGL 可视化3D绘图框架:Three.js 零基础上手实战 网名风舞烟,中国科技大学计算机专业.微软认证讲师(MCE).微软数据分析讲师.10多年软件行业从业经验,参与过数百万的企业级ERP系统 ...
最新文章
- 创建Okhttp自定义Log
- 汽车车牌识别系统实现(四)--字符识别+代码实现
- 【转】1.8异步编程:.NET 4.5 基于任务的异步编程模型(TAP)
- 又涨价了!华为 P40系列海外售价曝光:还好国行版友好不少
- php主键自增sql语句,sql 自动增长的主键
- android聊天界面对话气泡_你在和脚本谈恋爱(自动化在IM聊天中的应用)
- java撕裂_屏幕撕裂与卡顿分析
- 【物理/数学】概念的理解 —— pivot、position
- vue移动端UI组件
- 分析DuxCms之AdminUserModel
- UE4C++设置Actor与父Actor的相对位置和相对旋转
- 通达信 数据格式 java_通达信日线 数据格式
- 激活黑群晖Synology Active Backup for Business,黑群晖系统备份软件激活,亲测有效
- 最近所学的Json以及ajax的应用
- JavaWeb项目打包成桌面程序,内嵌浏览器、tomcat、jre、mysql,实现一键安装
- freemaker+echarts导出word文档
- 好东西来了!2017云栖大会300+份重磅资料下载
- Request请求转发和重定向
- 众筹电商模式的原理,怎么实现用户裂变?
- SimpleFOC移植STM32(九)—— ABZ编码器电机