我打算挂载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

树莓派打造一个适合音乐制作的系统(效果器部分)相关推荐

  1. 树莓派打造一个适合音乐制作的系统(声卡部分)

    之前有讲过如何做一个非USB的具有输入输出的声卡,目前现成的方案有WM8731或者hifiberry DAC+ADC pro,他们都是在启动时加载驱动的,但如果我们想要使用其他的codec,怎么办呢? ...

  2. 【Windows系统笔记】打造一个适合自己的windows系统

    文章目录 一.使用`Win+R`快速调用软件 1. 打开设置 2. 进入系统信息 3. 打开高级系统设置 4. 找到`Path` 5. 测试 二.CMD批处理文件夹 (一)创建多个文件夹命令 (二)删 ...

  3. java门禁系统实训,Java 并发课题 : CyclicBarrier 打造一个安全的门禁系统

    Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统 继续并发专题~ 这次介绍CyclicBarrier:看一眼API的注释: /** * A synchronization a ...

  4. 如何打造一个搞垮公司的中台系统?

    点击"技术领导力"关注∆  每天早上8:30推送 作者| Mr.K   整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 老K写了不少研究中台的正经文章, ...

  5. 教你用树莓派打造一个家庭影院

    在四周的时间里,我用各种各样的方式折腾树莓派,例如用来浏览网页,用来跑日常的一些计算任务,以及折腾网络设置(以太网和USB无线网).但是折腾树莓派是不是会有个穷尽?还是说我会一直对折腾它感兴趣,把它一 ...

  6. 通过LECPServer打造一个免费开源的SCADA系统

    SCADA 数据采集系统,简称数采系统,在工业控制和工业自动化领域,都是一个必不可少的系统工具:传统的数采系统,一般会使用 Labview 软件,通过与PLC和控制系统交互,获得数据,然后再写入数据库 ...

  7. 用树莓派打造一个属于自己的服务器

    树莓派制作服务器教程目录: 树莓派制作服务器教程 第一步:Ubuntu20.04系统下载 第二步:下载balena Etcher镜像烧入工具 第三步:TF卡烧入完成后直接插在树莓派通电源开机 第四步: ...

  8. 教你如何打造一个适合学生党的学习型iPad

    iPad是目前最好用的平板电脑,功能非常强大.但是民间也流传着这样一句传言"买前生产力,买后爱奇艺".很多人买iPad之前是想着使用iPad来进行学习的,但是买后却把它当作了追剧神 ...

  9. 电商系统_如何打造 一个完美的电商系统

    紧随电商发展趋势,打造符合客户自身的电商路径. 多用户商城系统: 多用户商城系统以B2B2B2C的理念出发,创新模块化设计,自营.招商.批发.供货.分销.城市站点.区域代理.O2O门店,一套系统即可搞 ...

最新文章

  1. 在centos7上配置java环境
  2. The total number of locks exceeds the lock table s
  3. 皮一皮:落伍了落伍了
  4. 模拟客户端浏览器-1
  5. Linux加密框架crypto AES代码相关
  6. MySQL的乱码解决方案
  7. 架构设计文档规范文档
  8. CUDA编程:与OpenCV结合
  9. android ble 蓝牙绑定流程,BLE 配对与绑定过程详细解析
  10. CMS软件系统架构设计思考
  11. Git下载安装以及基本指令使用
  12. MAVEN 仓库加速 阿里云镜像
  13. 分层图解决的一些最短路问题
  14. Java编程笔记16:深入容器
  15. 前端之网站结构语义化
  16. 【从零开始学GIS再到精通GIS】ArcGIS中的绘图基操作(一)
  17. 计算机二级考试是考什么?
  18. 什么是进修编程言语之前
  19. Quartz Cron表达式 在线生成器
  20. HP小型机操作系统安装配置指导书

热门文章

  1. 结合案例轻松理解PID到底是个啥?
  2. python pty模块 - 作用1 - 虚拟一个串口
  3. electron使用node-pty问题解决
  4. 零售巨头家乐福应用区块链跟踪奶制品供应链
  5. 7.4 初等矩阵和可逆性
  6. 【算法笔记】异或运算的奇妙之处
  7. 微信小游戏 资源服务器,Cocos Creator 微信小游戏 远程资源设置
  8. Conflux 进阶课 | 初始阶段通证发行数量
  9. loadrunner Web_类函数之web_set_user()
  10. 以网游服务端的网络接入层设计为例,理解实时通信的技术挑战