当前位置: 首页 > news >正文

无锡自助建站网站网站原型是产品经理做

无锡自助建站网站,网站原型是产品经理做,网站佣金怎么做凭证,怎样做一个购物型的网站MIDI 协议即数字音乐接口#xff08;Musical Instrument Digital Interface#xff09;#xff0c;是电子乐器、合成器等演奏设备之间的一种即时通信协议#xff0c;用于硬件之间的实时演奏数据传递。如果理解还不够深刻#xff0c;官方如下解释#xff1a; 常用midi硬件…MIDI 协议即数字音乐接口Musical Instrument Digital Interface是电子乐器、合成器等演奏设备之间的一种即时通信协议用于硬件之间的实时演奏数据传递。如果理解还不够深刻官方如下解释 常用midi硬件接口如5芯插头串口midi和USB midi设备usb midi任意一种usb口都行只要usb枚举成midi设备即可硬件midi串口接口如下 好了有了midi硬件硬件中通信的数据有个标准我们叫做midi码本章将重点介绍midi码如何组成的解析思路usb midi 和串口midi之间的封包差异。 相关链接 MIDIOX Bus Hound USB MIDI Devices 1.0 | USB-IF MIDI 1.0 1.midi码的基本格式 midi码分为状态码和数据码状态码在字节最高位写1数据码在字节最高位写0。状态码可以看出当前midi事件的具体用途数据码当然是具体内容参数了。 如下格式就是一个标准midi码 2.midi状态码分类 我们已经知道midi状态码字节最高位写1那么如何区分是什么类型状态码呢在【46】位用于区分状态码具体内容注意midi 系统码0xfn具体的内容功能众多需要根据不同类型帧分析 //midi码事件类型 #define MIDI_STATUS_NOTE_OFF 0x80 #define MIDI_STATUS_NOTE_ON 0x90 #define MIDI_STATUS_AFTERTOUCH 0xA0 #define MIDI_STATUS_CONTROL_CHANGE 0xB0 #define MIDI_STATUS_PROGRAM_CHANGE 0xC0 #define MIDI_STATUS_CHANNEL_PRESSURE 0xD0 #define MIDI_STATUS_PITCH_WHEEL 0xE0 //#define MIDI_STATUS_SYSTEM 0xF0//系统码具体类型 /*消息类型为系统消息时低四位的数据定义*/ #define MIDI_SYSEX_Start 0xF0 //系统独有的格式 #define MIDI_SYSEX_End 0xF7#define MIDI_SYS_MTC_Quarter_Frame_Message 0xF1 //2 #define MIDI_SYS_Song_Position_Pointer 0xF2 //3 #define MIDI_SYS_Song_Select 0xF3 //2 #define MIDI_SYS_Tune_Request 0xF6 //1 #define MIDI_SYS_Clock 0xF8 //1 #define MIDI_SYS_Tick 0xF9 //1 #define MIDI_SYS_Start 0xFA //1 #define MIDI_SYS_Stop 0xFC //1 #define MIDI_SYS_Continue 0xFB //1 #define MIDI_SYS_ActiveSense 0xFE //1 #define MIDI_SYS_Reset 0xFF //13.midi 通道区分 除去系统码midi通道在低四位中有效【03】 16个通道就像16个人对各个通道的操作就是对各个人的操作你叫他们干嘛就干嘛你可以叫某个人唱歌、闭嘴、以钢琴的音色唱歌以吉他的音色唱歌、声音多大、在别人唱了多久开始唱。在同一时间里可以有多个人发声系统将同一时间所有人的声音合成一个声音再发出去。 4.midi状态码具体功能系统码下一章介绍 Note On 开音码0x9n 顾名思义就是让某个音符发音数据参数1为值键或者说是音符就简单理解成触发某个音源发声数据参数2力度或者说是音量大小。注力度参数为0时可当作关音码使用 00165716 KEY 2 90 30 14 1 C 3 Note On 0016578C KEY 2 80 30 40 1 C 3 Note Off 00165B07 KEY 2 90 30 08 1 C 3 Note On 00165B7E KEY 2 80 30 40 1 C 3 Note Off 00165F08 KEY 2 90 30 00 1 C 3 Note Off 00165F7B KEY 2 80 30 40 1 C 3 Note Off Note Off 关音码 0x8n 关掉某个音符可直接理解成让某个音源停止发声。 注意开音码和关音码需要成对出现不能有丢包现象 触后音 0xAn 触后音Key Aftertouch这个用在钢琴的特殊技法中大概就是在某个音反复按压过程的一种技巧。数据参数1值键数据参数2力度。具体解释如下官方文档 控制改变 0xBn 控制改变Control Change所以也被叫做CC码。数据参数1控制ID数据参数2控制参数。CC码用处十分广泛可以自定义用于某些特殊功能比如控制某个音色效果参数音量开关等等。 00187E4F KEY 2 B0 40 00 1 --- CC: Pedal (Sustain) 00187EE3 KEY 2 B0 40 7F 1 --- CC: Pedal (Sustain)CC码在midi标准中实际是指定了某些具体ID是用来干什么的但是随着乐曲效果器发展后面很多ID都被厂商自定义使用了如下标准ID指定 乐器改变 0xCn 乐器改变Program Change 也叫做PC码。数据参数1改变乐器ID。通常电子乐器中可用于音源改变如让电子钢琴发吉他贝斯音色等等在效果器中可以用于预设切换功能。 00177A4D KEY 2 C0 00 -- 1 --- PC: Acc. Grand Piano 通道压力 0xDn 通道压力Channel Aftertouch Pressure 从文章中了解这玩意儿跟0xAn功能有点类似处理多个Key的时候可能会调用这个。笔者看到文档有说数据两个字节的也有说一个字节的因为常规使用没有遇到过大家遇到可以回复下笔者这里比较坚持是一个字节的说法感觉两个字节的那个Note已经没有啥意义了 弯音轮 0xEn 弯音轮pitch wheel 特殊技法会发出特殊音色。数据参数两个字节14bit有效所以有效参数在0~0x3FFF 001DA6DD MOX 2 E0 00 44 1 --- Pitch Bend5.midi 系统码具体功能 System Exclusive (0xF0 0xF7) 系统独占码0xF0开始0xF7截至0xF0后第一个字节可以表示制造商ID也有其他功能早期MIDI有这么定义 文档有备注的厂商入下 Sequential Circuits 1 Big Briar 2 Octave / Plateau 3 Moog 4 Passport Designs 5 Lexicon 6 Kurzweil 7 Fender 8 Gulbransen 9 Delta Labs 0x0A Sound Comp. 0x0B General Electro 0x0C Techmar 0x0D Matthews Research 0x0E Oberheim 0x10 PAIA 0x11 Simmons 0x12 DigiDesign 0x13 Fairlight 0x14 Peavey 0x1B JL Cooper 0x15 Lowery 0x16 Lin 0x17 Emu 0x18 Bon Tempi 0x20 S.I.E.L. 0x21 SyntheAxe 0x23 Hohner 0x24 Crumar 0x25 Solton 0x26 Jellinghaus Ms 0x27 CTS 0x28 PPG 0x29 Elka 0x2F Cheetah 0x36 Waldorf 0x3E Kawai 0x40 Roland 0x41 Korg 0x42 Yamaha 0x43 Casio 0x44 Akai 0x45系统独占码还有如下Master Volume功能其实用CC码自定义也可以 0xF0 SysEx 0x7F Realtime 0x7F The SysEx channel. Could be from 0x00 to 0x7F.Here we set it to disregard channel. 0x04 Sub-ID -- Device Control 0x01 Sub-ID2 -- Master Volume 0xLL Bits 0 to 6 of a 14-bit volume 0xMM Bits 7 to 13 of a 14-bit volume 0xF7 End of SysEx除此之外还有很多很多具体查阅文档了解 MTC Quarter Frame Message (0xF1) 0013E3B1 MOX 2 F1 30 -- -- --- MTC Quarter FrameSong Position Pointer (0xF2) 00122F9F MOX 2 F2 00 00 -- --- Song Position PtrSong Select (0xF3) Tune Request (0xF6) Tick (0xF9) 需要 start stop continue 配合使用 MIDI Clock (0XF8)、MIDI Start (0xFA) 、 MIDI Stop (0xFB) 、MIDI Continue (0xFC) 这里放到一起说因为midi的时钟同步需要这几个midi共同实现 TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT 00002689 MOX 2 FB -- -- -- --- Continue 0000268B MOX 2 F8 -- -- -- --- Timing Clock 000026A4 MOX 2 F8 -- -- -- --- Timing Clock 000026BD MOX 2 F8 -- -- -- --- Timing Clock 000026D6 MOX 2 F8 -- -- -- --- Timing Clock 000026EF MOX 2 F8 -- -- -- --- Timing Clock 00002707 MOX 2 F8 -- -- -- --- Timing Clock 00002720 MOX 2 F8 -- -- -- --- Timing Clock 0000273A MOX 2 F8 -- -- -- --- Timing Clock 00002753 MOX 2 F8 -- -- -- --- Timing Clock 0000276D MOX 2 F8 -- -- -- --- Timing Clock 00002784 MOX 2 F8 -- -- -- --- Timing Clock 0000279E MOX 2 F8 -- -- -- --- Timing Clock 000027B7 MOX 2 F8 -- -- -- --- Timing Clock 000027D0 MOX 2 F8 -- -- -- --- Timing Clock 000027E9 MOX 2 F8 -- -- -- --- Timing Clock 00002801 MOX 2 F8 -- -- -- --- Timing Clock 0000281B MOX 2 F8 -- -- -- --- Timing Clock 00002834 MOX 2 F8 -- -- -- --- Timing Clock 0000284C MOX 2 F8 -- -- -- --- Timing Clock 00002866 MOX 2 F8 -- -- -- --- Timing Clock 0000287E MOX 2 F8 -- -- -- --- Timing Clock 00002898 MOX 2 F8 -- -- -- --- Timing Clock 000028B1 MOX 2 F8 -- -- -- --- Timing Clock 000028BE MOX 2 FC -- -- -- --- Stop Active Sense (0xFE) Reset (0xFF) 6.midi 码的简发模式 大概意思就是如果midi在第一次发送了某个事件类型那么接下来如果重复发送可以将事件类型省略这里吐槽一下当年因为走马观花没把文档读完封装代码的时候没有考虑简写模式导致跟某些乐器不兼容情况。如下省略开音码方法 注关于为什么要简写应该是但当年midi设备波特率为31250原因带宽过小某些设备需要发送的midi事件过多造成的 7.usb midi中封包要求参考文档midi10usb官网可以下载 usb midi是块传输设备但在midi限制下强制每帧格式为4Byte具体如下 这里我们可以知道midi数据大小可以通过cin码来确定 举例如下封包 这里我们通过midiox 和 bus hound软件看看midi码是如何呈现的 8.usb midi 描述符详细内容 ctrlmidi //midi ctrl 18 0x09, 0x04, 0x03, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, //ctrl 0x09, 0x24, 0x01, 0x00, 0x01, 0x09, 0x00, 0x01, 0x01, //midi 0x09, 0x04, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x07, 0x24, 0x01, 0x00, 0x01, 0x41, 0x00, 0x06, 0x24, 0x02, 0x01, 0x01, 0x00, 0x06, 0x24, 0x02, 0x02, 0x02, 0x0C, 0x09, 0x24, 0x03, 0x01, 0x03, 0x01, 0x02, 0x01, 0x00, 0x09, 0x24, 0x03, 0x02, 0x04, 0x01, 0x01, 0x01, 0x0B, 0x09, 0x05, 0x04, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x25, 0x01, 0x01, 0x01, 0x09, 0x05, 0x84, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x25, 0x01, 0x01, 0x03,
http://www.w-s-a.com/news/103536/

相关文章:

  • 安庆网站建设兼职中企动力是500强吗
  • 网站排名优化技巧基于网站的网络营销方法有哪些
  • 摄影素材网站做知识问答的网站
  • 中小企业网站建设济南兴田德润电话门店管理系统软件排行
  • 昆明工程建设信息网站柳州网站建设公司哪家好
  • 如何分析网站关键词北京门户网站网址
  • 做网站与做游戏那个好网站域名怎么起
  • 有没有做cad单的网站银行网站建设方案视频
  • 和各大网站做视频的工作高校网站群管理系统
  • 中国建设人才服务信息网是正规网站怎么注销自己名下的公司
  • 网站开发新型技术那些网站做任务领q币
  • 海口手机网站建设wordpress微支付宝
  • 做公司网站需要几天深圳自定义网站开发
  • 做网站学多长时间可以学会推广软件公司
  • 网络网站设计培训长沙建站模板大全
  • 站群搭建移动端处理器天梯图
  • 岳池发展建设集团有限公司门户网站湛江seo咨询
  • 手机网站工具关键词排名是什么意思
  • 游民星空是谁做的网站沈阳网站托管公司
  • 做网站搭建需要什么人vs2017移动网站开发
  • 购物网站开发需要什么技术怎么查看网站是否备案
  • 学做电商那个网站好网站建设投票主题
  • 中卫网站推广网络营销毕业设计做网站大小有什么要求
  • 做问卷网站义乌网站建设推广专家
  • 不会编程怎样建设网站昆明做网站哪家
  • 直播网站模板新营销平台电商网站
  • 建设部指定招标网站免费的企业查询软件
  • 做前端常用的网站及软件下载平台优化是什么意思
  • 企石镇仿做网站wordpress 网站白屏
  • 班级网站建设规划书专业定制网红变色杯