The MIDI Specification文档格式.docx

上传人:b****3 文档编号:6207303 上传时间:2023-05-06 格式:DOCX 页数:58 大小:44.40KB
下载 相关 举报
The MIDI Specification文档格式.docx_第1页
第1页 / 共58页
The MIDI Specification文档格式.docx_第2页
第2页 / 共58页
The MIDI Specification文档格式.docx_第3页
第3页 / 共58页
The MIDI Specification文档格式.docx_第4页
第4页 / 共58页
The MIDI Specification文档格式.docx_第5页
第5页 / 共58页
The MIDI Specification文档格式.docx_第6页
第6页 / 共58页
The MIDI Specification文档格式.docx_第7页
第7页 / 共58页
The MIDI Specification文档格式.docx_第8页
第8页 / 共58页
The MIDI Specification文档格式.docx_第9页
第9页 / 共58页
The MIDI Specification文档格式.docx_第10页
第10页 / 共58页
The MIDI Specification文档格式.docx_第11页
第11页 / 共58页
The MIDI Specification文档格式.docx_第12页
第12页 / 共58页
The MIDI Specification文档格式.docx_第13页
第13页 / 共58页
The MIDI Specification文档格式.docx_第14页
第14页 / 共58页
The MIDI Specification文档格式.docx_第15页
第15页 / 共58页
The MIDI Specification文档格式.docx_第16页
第16页 / 共58页
The MIDI Specification文档格式.docx_第17页
第17页 / 共58页
The MIDI Specification文档格式.docx_第18页
第18页 / 共58页
The MIDI Specification文档格式.docx_第19页
第19页 / 共58页
The MIDI Specification文档格式.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

The MIDI Specification文档格式.docx

《The MIDI Specification文档格式.docx》由会员分享,可在线阅读,更多相关《The MIDI Specification文档格式.docx(58页珍藏版)》请在冰点文库上搜索。

The MIDI Specification文档格式.docx

wrongdirection"

asmoredevicesaredaisy-chainedtootherdevice'

sMIDITHRUjacks.Theresultisthatthereisalimittothenumberofdevicesthatcanbedaisy-chained.

Messages

TheMIDIprotocolismadeupofmessages.Amessageconsistsofastring(ie,series)of8-bitbytes.MIDIhasmanysuchdefinedmessages.Somemessagesconsistofonly1byte.Othermessageshave2bytes.Stillothershave3bytes.OnetypeofMIDImessagecanevenhaveanunlimitednumberofbytes.TheonethingthatallmessageshaveincommonisthatthefirstbyteofthemessageistheStatusbyte.Thisisaspecialbytebecauseit'

stheonlybytethathasbit#7set.Anyotherfollowingbytesinthatmessagewillnothavebit#7set.So,youcanalwaysdetectthestartaMIDImessagebecausethat'

swhenyoureceiveabytewithbit#7set.ThiswillbeaStatusbyteintherange0x80to0xFF.Theremainingbytesofthemessage(ie,thedatabytes,ifany)willbeintherange0x00to0x7F.

TheStatusbytesof0x80to0xEFareformessagesthatcanbebroadcastonanyoneofthe16MIDIchannels.Becauseofthis,thesearecalledVoicemessages.(MyownpreferenceistosaythatthesemessagesbelongintheVoiceCategory).FortheseStatusbytes,youbreakupthe8-bitbyteinto24-bitnibbles.Forexample,aStatusbyteof0x92canbebrokenupinto2nibbleswithvaluesof9(highnibble)and2(lownibble).ThehighnibbletellsyouwhattypeofMIDImessagethisis.Herearethepossiblevaluesforthehighnibble,andwhattypeofVoiceCategorymessageeachrepresents:

8=NoteOff

9=NoteOn

A=AfterTouch(ie,keypressure)

B=ControlChange

C=Program(patch)change

D=ChannelPressure

E=PitchWheel

So,forourexamplestatusof0x92,weseethatitsmessagetypeisNoteOn(ie,thehighnibbleis9).What'

sthelownibbleof2mean?

ThismeansthatthemessageisonMIDIchannel2.Thereare16possible(logical)MIDIchannels,with0beingthefirst.So,thismessageisaNoteOnonchannel2.WhatstatusbytewouldspecifyaProgramChangeonchannel0?

ThehighnibblewouldneedtobeCforaProgramChangetypeofmessage,andthelownibblewouldneedtobe0forchannel0.Thus,thestatusbytewouldbe0xC0.HowaboutaProgramChangeonchannel15(ie,thelastMIDIchannel).Again,thehighnibblewouldbeC,butthelownibblewouldbeF(ie,thehexademicaldigitfor15).Thus,thestatuswouldbe0xCF.

NOTE:

AlthoughtheMIDIStatusbytecountsthe16MIDIchannelsasnumbers0toF(ie,15),allMIDIgear(includingcomputersoftware)displaysachannelnumbertothemusicianas1to16.So,aStatusbytesentonMIDIchannel0isconsideredtobeon"

channel1"

asfarasthemusicianisconcerned.Thisdiscrepancybetweenthestatusbyte'

schannelnumber,andwhatchannelthemusician"

believes"

thataMIDImessageison,isacceptedbecausemosthumansstartcountingthingsfrom1,ratherthan0.

TheStatusbytesof0xF0to0xFFareformessagesthataren'

tonanyparticularchannel(andthereforealldaisy-chainedMIDIdevicesalwayscan"

hear"

andchoosetoactuponthesemessages.ContrastthiswiththeVoiceCategorymessages,whereaMIDIdevicecanbesettorespondtothoseMIDImessagesonlyonaspecifiedchannel).ThesestatusbytesareusedformessagesthatcarryinformationofinteresttoallMIDIdevices,suchassyncronizingallplaybackdevicestoaparticulartime.(Bycontrast,VoiceCategorymessagesdealwiththeindividualmusicalpartsthateachinstrumentmightplay,sothechannelnibbleschemeallowsadevicetorespondtoitsownMIDIchannelwhileignoringtheVoiceCategorymessagesintendedforanotherdeviceonanotherchannel).

Thesestatusbytesarefurtherdividedintotwocatagories.Statusbytesof0xF0to0xF7arecalledSystemCommonmessages.Statusbytesof0xF8to0xFFarecalledSystemRealtimemessages.Theimplicationsofsuchwillbediscussedlater.

Actually,certainStatusbyteswithinthisrangearenotdefinedbytheMIDIspectodate,andarereservedforfutureuse.Forexample,Statusbytesof0xF4,0xF5,0xF9,and0xFDarenotused.IfaMIDIdeviceeverreceivessuchaStatus,itshouldignorethatmessage.SeeIgnoringMIDIMessages.

Whatfollowsisadescriptionofeachmessagetype.Thedescriptiontellswhatthemessagedoes,whatitsstatusbyteis,andwhetherithasanysubsequentdatabytesandwhatinformationthosecarry.Generally,thesedescriptionstaketheviewofadevicereceivingsuchmessages(ie,whatthedevicewouldtypicallybeexpectedtodowhenreceivingparticularmessages).Whenapplicable,remarksaboutadevicethattransmitssuchmessagesmaybemade.

NoteOff

Category:

Voice

Purpose

Indicatesthataparticularnoteshouldbereleased.Essentially,thismeansthatthenotestopssounding,butsomepatchesmighthavealongVCAreleasetimethatneedstoslowlyfadethesoundout.Additionally,thedevice'

sHoldPedalcontrollermaybeon,inwhichcasethenote'

sreleaseispostponeduntiltheHoldPedalisreleased.Inanyevent,thismessageeithercausestheVCAtomoveintothereleasestage,oriftheHoldPedalison,indicatesthatthenoteshouldbereleased(bythedeviceautomatically)whentheHoldPedalisturnedoff.IfthedeviceisaMultiTimbralunit,theneachoneofitsPartsmayrespondtoNoteOffsonitsownchannel.ThePartthatrespondstoaparticularNoteOffmessageistheoneassignedtothemessage'

sMIDIchannel.

Status

0x80to0x8FwherethelownibbleistheMIDIchannel.

Data

TwodatabytesfollowtheStatus.

Thefirstdataisthenotenumber.Thereare128possiblenotesonaMIDIdevice,numbered0to127(whereMiddleCisnotenumber60).Thisindicateswhichnoteshouldbereleased.

Theseconddatabyteisthevelocity,avaluefrom0to127.Thisindicateshowquicklythenoteshouldbereleased(where127isthefastest).It'

suptoaMIDIdevicehowitusesvelocityinformation.OftenvelocitywillbeusedtotailortheVCAreleasetime.MIDIdevicesthatcangenerateNoteOffmessages,butdon'

timplementvelocityfeatures,willtransmitNoteOffmessageswithapresetvelocityof64.

Errata

AnAllNotesOffcontrollermessagecanbeusedtoturnoffallnotesforwhichadevicereceivedNoteOnmessages(withouthavingreceivedrespectiveNoteOffmessages).

NoteOn

Indicatesthataparticularnoteshouldbeplayed.Essentially,thismeansthatthenotestartssounding,butsomepatchesmighthavealongVCAattacktimethatneedstoslowlyfadethesoundin.Inanycase,thismessageindicatesthataparticularnoteshouldstartplaying(unlessthevelocityis0,inwhichcase,youreallyhaveaNoteOff).IfthedeviceisaMultiTimbralunit,theneachoneofitsPartsmaysoundNoteOnsonitsownchannel.ThePartthatsoundsaparticularNoteOnmessageistheoneassignedtothemessage'

sMIDIchannel.

0x90to0x9FwherethelownibbleistheMIDIchannel.

Thefirstdataisthenotenumber.Thereare128possiblenotesonaMIDIdevice,numbered0to127(whereMiddleCisnotenumber60).Thisindicateswhichnoteshouldbeplayed.

Theseconddatabyteisthevelocity,avaluefrom0to127.Thisindicateswithhowmuchforcethenoteshouldbeplayed(where127isthemostforce).It'

suptoaMIDIdevicehowitusesvelocityinformation.OftenvelocityisbeusedtotailortheVCAattacktimeand/orattacklevel(andthereforetheoverallvolumeofthenote).MIDIdevicesthatcangenerateNoteOnmessages,butdon'

timplementvelocityfeatures,willtransmitNoteOnmessageswithapresetvelocityof64.

ANoteOnmessagethathasavelocityof0isconsideredtoactuallybeaNoteOffmessage,andtherespectivenoteisthereforereleased.SeetheNoteOffentryforadescriptionofsuch.This"

trick"

wascreatedinordertotakeadvantageofrunningstatus.

AdevicethatrecognizesMIDINoteOnmessagesmustbeabletorecognizebotharealNoteOffaswellasaNoteOnwith0velocity(asaNoteOff).TherearemanydevicesthatgeneraterealNoteOffs,andmanyotherdevicesthatuseNoteOnwith0velocityasasubstitute.

Intheory,everyNoteOnshouldeventuallybefollowedbyarespectiveNoteOffmessage(ie,whenit'

stimetostopthenote

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2