树莓派打造一个适合音乐制作的系统(效果器部分)
我打算挂载LV2插件将树莓派作为效果器使用,之前我们已经创建好了I2S二进二出声卡,请详见树莓派打造一个适合音乐制作的系统(声卡部分)_huanghaoAudio的博客-CSDN博客
1、下载安装LV2插件主机和lv2ls
sudo apt-get install jalv lilv-utils
2、安装LV2插件
sudo apt-get install calf-plugins
在终端下输入
jalv
此时提示Missing plugin URI, try lv2ls to list plugins
说明我们要用lv2ls获取插件URI
3、获取插件URI
lv2ls
http://calf.sourceforge.net/plugins/Analyzer
http://calf.sourceforge.net/plugins/BassEnhancer
http://calf.sourceforge.net/plugins/CompensationDelay
http://calf.sourceforge.net/plugins/Compressor
http://calf.sourceforge.net/plugins/Crusher
http://calf.sourceforge.net/plugins/Deesser
http://calf.sourceforge.net/plugins/Emphasis
http://calf.sourceforge.net/plugins/EnvelopeFilter
http://calf.sourceforge.net/plugins/Equalizer12Band
http://calf.sourceforge.net/plugins/Equalizer30Band
http://calf.sourceforge.net/plugins/Equalizer5Band
http://calf.sourceforge.net/plugins/Equalizer8Band
http://calf.sourceforge.net/plugins/Exciter
http://calf.sourceforge.net/plugins/Filter
http://calf.sourceforge.net/plugins/Filterclavier
http://calf.sourceforge.net/plugins/Flanger
http://calf.sourceforge.net/plugins/Fluidsynth
http://calf.sourceforge.net/plugins/Gate
http://calf.sourceforge.net/plugins/HaasEnhancer
http://calf.sourceforge.net/plugins/Limiter
http://calf.sourceforge.net/plugins/MonoCompressor
http://calf.sourceforge.net/plugins/MonoInput
http://calf.sourceforge.net/plugins/Monosynth
http://calf.sourceforge.net/plugins/MultiChorus
http://calf.sourceforge.net/plugins/MultiSpread
http://calf.sourceforge.net/plugins/MultibandCompressor
http://calf.sourceforge.net/plugins/MultibandEnhancer
http://calf.sourceforge.net/plugins/MultibandGate
http://calf.sourceforge.net/plugins/MultibandLimiter
http://calf.sourceforge.net/plugins/Organ
http://calf.sourceforge.net/plugins/Phaser
http://calf.sourceforge.net/plugins/Pitch
http://calf.sourceforge.net/plugins/Pulsator
http://calf.sourceforge.net/plugins/Reverb
http://calf.sourceforge.net/plugins/ReverseDelay
http://calf.sourceforge.net/plugins/RingModulator
http://calf.sourceforge.net/plugins/RotarySpeaker
http://calf.sourceforge.net/plugins/Saturator
http://calf.sourceforge.net/plugins/SidechainCompressor
http://calf.sourceforge.net/plugins/SidechainGate
http://calf.sourceforge.net/plugins/SidechainLimiter
http://calf.sourceforge.net/plugins/StereoTools
http://calf.sourceforge.net/plugins/TapeSimulator
http://calf.sourceforge.net/plugins/TransientDesigner
http://calf.sourceforge.net/plugins/VintageDelay
http://calf.sourceforge.net/plugins/Vinyl
http://calf.sourceforge.net/plugins/Vocoder
http://calf.sourceforge.net/plugins/Wavetable
http://calf.sourceforge.net/plugins/XOver2Band
http://calf.sourceforge.net/plugins/XOver3Band
http://calf.sourceforge.net/plugins/XOver4Band
以上就是calf插件的URI,其他LV2插件请自行下载安装
4、运行插件,例如打开一个滤波器插件
jalv -s http://calf.sourceforge.net/plugins/Filter
-s参数是显示UI界面
好的,以上就是jalv如何加载一个插件,现在我们关闭插件,来看看如何使用终端控制参数。
=========================================================================
使用终端控制插件参数,还是以滤波器为例
1、加载插件,此时不用-s参数
jalv http://calf.sourceforge.net/plugins/Filter
它会返回各个参数控制列表
Plugin: http://calf.sourceforge.net/plugins/Filter
UI: None
JACK Name: Calf Filter
Sample rate: 44100 Hz
Block length: 512 frames
MIDI buffers: 32768 bytes
Comm buffers: 524288 bytes
Update rate: 25.0 Hz
JACK Name: Calf Filter
freq = 2000.000000
res = 0.707000
mode = 0.000000
inertia = 20.000000
bypass = 0.000000
level_in = 1.000000
level_out = 1.000000
meter_inL = 0.000000
meter_inR = 0.000000
meter_outL = 0.000000
meter_outR = 0.000000
clip_inL = 0.000000
clip_inR = 0.000000
clip_outL = 0.000000
clip_outR = 0.000000
2、假如我要控制频率,继续在终端输入
freq=500
回车
此时,插件接受了频率改变参数,您应该可以听出效果了。
===================================================================
使用python与插件交互示例,使用标准输入输出stdin来控制插件参数
import subprocess
import os
import timedef run(): eff1= subprocess.Popen("jalv -p http://calf.sourceforge.net/plugins/Filter",shell=True,encoding='utf-8',stdin=subprocess.PIPE,stdout=subprocess.PIPE)#初始化插件参数eff1.stdin.write("mode=4"+"\n")#24db/oct high passeff1.stdin.write("freq=80=4"+"\n")#80Hzeff1.stdin.flush()eff2= subprocess.Popen("jalv -p http://gareus.org/oss/lv2/fil4#stereo",shell=True,encoding='utf-8',stdin=subprocess.PIPE,stdout=subprocess.PIPE)while True:time.sleep(0.1) xi=input("请选择效果序号:")if(xi=='1'): xi=input("请输入参数:") eff1.stdin.write(xi+"\n")eff1.stdin.flush()elif(xi=='2'):xi=input("请输入参数:")eff2.stdin.write(xi+"\n")eff2.stdin.flush() if xi=='exit': #设定的结束子进程的条件os.kill(eff1.pid+1,1)#结束子进程os.kill(eff2.pid+1,1)#结束子进程#print(eff1.pid+1)break #退出循环if __name__=='__main__': run()
将以上代码保存为.py文件,用python打开,
程序主要演示了选择效果器,接着输入参数。
输入1回车即选择了效果器1(滤波器)
=========================================================================
由于我对于python一窍不通,那么截止目前现学现卖,原则上我们已经可以通过python加载插件并控制插件参数,剩下的事情就是如何制作控制界面,或者使用外部旋钮按钮来控制插件,例如用串口屏与python通讯,或者pygame,又或者python图形编程等。
另,还可以用jalv.gtk来加载插件,显示插件UI。
寻找其他lv2插件
sudo apt-cache search lv2
树莓派打造一个适合音乐制作的系统(效果器部分)相关推荐
- 树莓派打造一个适合音乐制作的系统(声卡部分)
之前有讲过如何做一个非USB的具有输入输出的声卡,目前现成的方案有WM8731或者hifiberry DAC+ADC pro,他们都是在启动时加载驱动的,但如果我们想要使用其他的codec,怎么办呢? ...
- 【Windows系统笔记】打造一个适合自己的windows系统
文章目录 一.使用`Win+R`快速调用软件 1. 打开设置 2. 进入系统信息 3. 打开高级系统设置 4. 找到`Path` 5. 测试 二.CMD批处理文件夹 (一)创建多个文件夹命令 (二)删 ...
- java门禁系统实训,Java 并发课题 : CyclicBarrier 打造一个安全的门禁系统
Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统 继续并发专题~ 这次介绍CyclicBarrier:看一眼API的注释: /** * A synchronization a ...
- 如何打造一个搞垮公司的中台系统?
点击"技术领导力"关注∆ 每天早上8:30推送 作者| Mr.K 整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 老K写了不少研究中台的正经文章, ...
- 教你用树莓派打造一个家庭影院
在四周的时间里,我用各种各样的方式折腾树莓派,例如用来浏览网页,用来跑日常的一些计算任务,以及折腾网络设置(以太网和USB无线网).但是折腾树莓派是不是会有个穷尽?还是说我会一直对折腾它感兴趣,把它一 ...
- 通过LECPServer打造一个免费开源的SCADA系统
SCADA 数据采集系统,简称数采系统,在工业控制和工业自动化领域,都是一个必不可少的系统工具:传统的数采系统,一般会使用 Labview 软件,通过与PLC和控制系统交互,获得数据,然后再写入数据库 ...
- 用树莓派打造一个属于自己的服务器
树莓派制作服务器教程目录: 树莓派制作服务器教程 第一步:Ubuntu20.04系统下载 第二步:下载balena Etcher镜像烧入工具 第三步:TF卡烧入完成后直接插在树莓派通电源开机 第四步: ...
- 教你如何打造一个适合学生党的学习型iPad
iPad是目前最好用的平板电脑,功能非常强大.但是民间也流传着这样一句传言"买前生产力,买后爱奇艺".很多人买iPad之前是想着使用iPad来进行学习的,但是买后却把它当作了追剧神 ...
- 电商系统_如何打造 一个完美的电商系统
紧随电商发展趋势,打造符合客户自身的电商路径. 多用户商城系统: 多用户商城系统以B2B2B2C的理念出发,创新模块化设计,自营.招商.批发.供货.分销.城市站点.区域代理.O2O门店,一套系统即可搞 ...
最新文章
- 在centos7上配置java环境
- The total number of locks exceeds the lock table s
- 皮一皮:落伍了落伍了
- 模拟客户端浏览器-1
- Linux加密框架crypto AES代码相关
- MySQL的乱码解决方案
- 架构设计文档规范文档
- CUDA编程:与OpenCV结合
- android ble 蓝牙绑定流程,BLE 配对与绑定过程详细解析
- CMS软件系统架构设计思考
- Git下载安装以及基本指令使用
- MAVEN 仓库加速 阿里云镜像
- 分层图解决的一些最短路问题
- Java编程笔记16:深入容器
- 前端之网站结构语义化
- 【从零开始学GIS再到精通GIS】ArcGIS中的绘图基操作(一)
- 计算机二级考试是考什么?
- 什么是进修编程言语之前
- Quartz Cron表达式 在线生成器
- HP小型机操作系统安装配置指导书