基于MIDI 与USB 接口,使用《完美钢琴》安卓版连接雅马哈P48B学习钢琴!

文章大纲


概念简介

USB OTG or Host?

USB(Universal Serial Bus)是一种通用的串行总线标准,用于连接各种设备,如计算机、外部存储器、打印机等。它由Host端控制整个总线的数据传输,单个USB总线上只能有一个Host。

在USB设备中,设备分为HOST(主设备)和SLAVE(从设备),只有当一台HOST与一台SLAVE连接时,才能实现数据的传输。这表明在USB系统中,数据传输的方向是由HOST控制的,从设备不能主动发起数据传输。

OTG(On The Go)是USB2.0引入的一种模式,它提出了一个新的概念,即主机协商协议(Host Negotiation Protocol)。这个协议允许两个设备之间商量谁去当Host,从而实现在没有主机的情况下,设备之间的直接通信和数据传输。

MIDI

八十年代初,各生产厂家都按照自己的规格生产电子乐器,当同时使用几家公司的设备构成一个电脑音乐系统的时候,出现了不兼容问题。
1982年,国际乐器制造者协会的十几家厂商(其中主要是美国和日本的厂商)会聚一堂,会议通过了美国Sequential Circuits公 司的大卫.史密斯提出的“通用合成器接口”的方案,并改名为“音乐设备数字接口”,即“Musical Instrument Digital Interface”缩写为“MIDI”,公布于世。
1983年,MIDI协议 1.0版正式制定出来。此后,所有的商业用电子乐器的背后都出现了几个五孔的MIDI插座,乐器之间不再存在“语言障碍”,它们同装上MIDI接口的电脑一起。作用就是使电子乐器与电子乐器,电子乐器与电脑之间通过一种通用的通讯协议即MIDI协议进行通讯。MIDI的出现解决了各个不同厂商之间的数字音乐乐器的兼容问题。

乐器数字接口(Musical Instrument Digital Interface,简称MIDI)是一个计算机科学技术名词,是20世纪80年代初为解决电声乐器之间的通信问题而提出的。MIDI是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”。它用音符的数字控制信号来记录音乐。一首完整的MIDI音乐只有几十KB大,而能包含数十条音乐轨道。几乎所有的现代音乐都是用MIDI加上音色库来制作合成的。MIDI传输的不是声音信号, 而是音符、控制参数等指令, 它指示MIDI设备要做什么,怎么做, 如演奏哪个音符、多大音量等。它们被统一表示成MIDI消息(MIDI Message) 。传输时采用异步串行通信, 标准通信波特率为31.25×(1±0.01) KBaud。


实现效果

需要购买的硬件:USB to HOST 转MIDI 接口的钢琴内录线

在这里插入图片描述
在这里插入图片描述

连接后 查看外设

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最终效果就是和打游戏一样,出现了音符下落的瀑布流,联系弹奏歌曲的时候,漏掉音符会自动暂停。
在这里插入图片描述

关闭 拔出屏幕显示Close Device

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/454523.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序(三十四)搜索框-带历史记录

注释很详细&#xff0c;直接上代码 新增内容&#xff1a; 1.搜索框基本模板 2.历史记录基本模板 3.细节处理 源码&#xff1a; index.wxml <!-- 1.点击搜索按钮a.非空判断b.历史记录&#xff08;去重&#xff09;c.清空搜索框d.去除前后多余空格2.删除搜索 3.无搜索记录不…

【51单片机】开发板&开发软件(Keil5&STC-ISP)简介&下载安装破译传送门(1)

前言 大家好吖&#xff0c;欢迎来到 YY 滴单片机系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过单片机的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

Chronos靶机渗透

Chronos靶机 一.信息收集1.靶机IP地址确认2.目录扫描3.常见漏洞扫描5.web网站探测1.网页2.源代码 二.网站渗透1.命令执行2.抓包---burp suite3.反弹shell 三.提权1.node.js原核污染第一个flag 2.sudo提权第二个flag 一.信息收集 1.靶机IP地址确认 ┌──(root㉿kali)-[/] └─…

什么是Vue样式穿透以及常用的实现方法

在Web前端开发中&#xff0c;样式穿透是一个重要的主题&#xff0c;它可以帮助我们更好地定制化组件样式&#xff0c;提升用户体验。本文将为您介绍Vue中样式穿透的概念&#xff0c;以及几种常用的实现方法&#xff0c;希望对您的前端开发工作有所帮助。 什么是样式穿透&#…

(5)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—12种聚类算法说明与归纳

目录 一、12种聚类(无监督学习)算法说明和区分比较 聚类算法的类型(一) ​编辑导入函数库 加载数据集 ​编辑 (1)K-Means --Centroid models (2)Mini-Batch K-Means -- Centroid models (3)AffinityPropagation (Hierarchical) -- Connectivity models (4)Mean Shift…

中科大计网学习记录笔记(四):Internet 和 ISP | 分组延时、丢失和吞吐量

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…

骑砍战团MOD开发(43)-顶点着色技术

一.顶点着色(vertex_color) 实际GPU渲染时有顶点着色和纹理着色两种方式,顶点着色消耗资源小,GPU将顶点颜色通过插值运算进行渲染.常用于同一物体的不同颜色渲染,如青苹果,红苹果,可以使用动态切换顶点颜色实现,而不通过设置纹理图片实现. Direct3D9中可声明灵活顶点格式 stru…

二叉树(2)——堆的实现

堆表面是数组&#xff0c;内核是完全二叉树/满二叉树 在插入删除的时候要注意操作过后堆是否还是一个堆&#xff0c;要进行交换等操作。&#xff08;向上调整&#xff09; 逻辑上控制二叉树&#xff0c;物理上控制数组&#xff01;&#xff01;&#xff01; 接下来我们用【小…

DockerUI如何部署结合内网穿透实现公网环境管理本地docker容器

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…

vue基本语法总结大全

vue基本语法 文章目录 vue基本语法基本用法内容渲染指令属性绑定指令使用js表达式事件绑定指令条件渲染指令v-else和v-else-if指令列表渲染指令v-for中的key 组件化开发安装详细讲解 第三方组件1. 组件间的传值2. element-ui介绍3. 组件的使用4. 图标的使用 Axios网络请求1. Ax…

LeetCode、198. 打家劫舍【中等,一维线性DP】

文章目录 前言LeetCode、198. 打家劫舍【中等&#xff0c;一维线性DP】题目及分类思路线性DP&#xff08;一维&#xff09; 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注…

Redis核心技术与实战【学习笔记】 - 25.Redis 支撑秒杀场景的关键技术

简述 秒杀是一个非常经典的活动场景&#xff0c;比如&#xff0c;在双 11、618 等电商促销活动中&#xff0c;都会有秒杀场景。秒杀场景的业务特点是限时限量&#xff0c;业务系统要处理瞬时的大量高并发请求&#xff0c;而 Redis 就经常被用来支撑秒杀活动。 秒杀场景包含多…