{"id":559,"date":"2026-04-01T10:02:51","date_gmt":"2026-04-01T10:02:51","guid":{"rendered":"https:\/\/ministryoftunes.com\/\/fat\/?p=490"},"modified":"2026-06-05T07:20:40","modified_gmt":"2026-06-05T07:20:40","slug":"introduction-to-midi-programming","status":"publish","type":"post","link":"https:\/\/ministryoftunes.com\/121-learning\/introduction-to-midi-programming\/","title":{"rendered":"Introduction to MIDI Programming"},"content":{"rendered":"\n<p class=\"ext-animate--on wp-block-paragraph\">Introduction to Midi Programming<\/p>\n\n\n\n<h2 class=\"wp-block-heading ext-animate--on\" style=\"font-size:clamp(1.092rem, 1.092rem + ((1vw - 0.2rem) * 1.013), 1.7rem);\"> Intro &#8211; Format of Midi Messages<\/h2>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\">MIDI (Musical Instrument Digital Interface) messages consist of a header and a data part. The format is as follows:<\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\"><em><strong>Header<\/strong><\/em><\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\"><strong>1.Status byte<\/strong>: This 1-byte value indicates the type of message being sent:<br><\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\"> 0x80-0xF7: Control Change, Pitch Bend, or Program Change (CC, PB, PC)<br> 0xF8-0xF9: Note On, Note Off, or Poly Aftertouch (NO, NOF, PAF)<br> 0xFA-0xFC: System Exclusive, Meta Event, or Timing Clock (SX, ME, TC)<br> <\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\"><strong>2. Channel:<\/strong> This 1-byte value specifies the MIDI channel (1-16) for messages that affect multiple channels.<\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\"><strong>Data Part<\/strong> -The data part varies depending on the status byte:<\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\">Control Change (CC), Pitch Bend (PB), and Program Change (PC)<\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\">0x00-0x7F: Control number (e.g., volume, pan)<br>0x80-0xFF: Value of the control (0-127) or pitch bend amount (0-16383)<\/p>\n\n\n\n<figure class=\"wp-block-image ext-animate--on\"><img data-opt-id=352943510  fetchpriority=\"high\" decoding=\"async\" width=\"1248\" height=\"832\" src=\"https:\/\/ml7el7wijicz.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image.jpg\" alt=\"\" class=\"wp-image-610\" srcset=\"https:\/\/ml7el7wijicz.i.optimole.com\/w:1248\/h:832\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image.jpg 1248w, https:\/\/ml7el7wijicz.i.optimole.com\/w:300\/h:200\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image.jpg 300w, https:\/\/ml7el7wijicz.i.optimole.com\/w:1024\/h:683\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image.jpg 1024w, https:\/\/ml7el7wijicz.i.optimole.com\/w:768\/h:512\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image.jpg 768w, https:\/\/ml7el7wijicz.i.optimole.com\/w:600\/h:400\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image.jpg 600w, https:\/\/ml7el7wijicz.i.optimole.com\/w:1248\/h:832\/q:mauto\/f:best\/dpr:2\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image.jpg 2x\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\">Note On (NO), Note Off (NOF), and Poly Aftertouch (PAF)<\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\">0x00-0x7F: Note number (0-127)<br>0x80-0xFF: Velocity (0-127) for Note On and Note Off, or aftertouch pressure (0-127) for Poly Aftertouch<\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\"> System Exclusive (SX), Meta Event (ME), and Timing Clock (TC)<\/p>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\">These messages typically contain a variable-length data payload that&#8217;s specific to the system or device.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity ext-animate--on\"\/>\n\n\n\n<h2 class=\"wp-block-heading ext-animate--on\" style=\"font-size:clamp(20.515px, 1.282rem + ((1vw - 3.2px) * 1.301), 33px);\">Example MIDI Message<\/h2>\n\n\n\n<pre class=\"wp-block-code ext-animate--on\"><code>Here's an example of a Note On message:\n \n Status byte: 0x90 (Note On, channel 1)\n Channel: 0x00 (channel 1)\n Data part:\n * Note number: 0x3C (Middle C)\n * Velocity: 0x40 (medium velocity)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity ext-animate--on\"\/>\n\n\n\n<p class=\"ext-animate--on wp-block-paragraph\"><strong>MIDI message: 0x90 00 3C 40<\/strong><br> <br> Keep in mind that this is a simplified example, and actual MIDI messages can be more complex, depending on the specific device or system being used.<\/p>\n\n\n\n<figure class=\"wp-block-image ext-animate--on\"><img data-opt-id=1108348611  fetchpriority=\"high\" decoding=\"async\" width=\"1248\" height=\"832\" src=\"https:\/\/ml7el7wijicz.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image-1.jpg\" alt=\"\" class=\"wp-image-611\" srcset=\"https:\/\/ml7el7wijicz.i.optimole.com\/w:1248\/h:832\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image-1.jpg 1248w, https:\/\/ml7el7wijicz.i.optimole.com\/w:300\/h:200\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image-1.jpg 300w, https:\/\/ml7el7wijicz.i.optimole.com\/w:1024\/h:683\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image-1.jpg 1024w, https:\/\/ml7el7wijicz.i.optimole.com\/w:768\/h:512\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image-1.jpg 768w, https:\/\/ml7el7wijicz.i.optimole.com\/w:600\/h:400\/q:mauto\/f:best\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image-1.jpg 600w, https:\/\/ml7el7wijicz.i.optimole.com\/w:1248\/h:832\/q:mauto\/f:best\/dpr:2\/https:\/\/ministryoftunes.com\/121-learning\/wp-content\/uploads\/2026\/06\/image-1.jpg 2x\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity ext-animate--on\"\/>\n\n\n\n<p class=\"has-text-align-center ext-animate--on wp-block-paragraph\">Learn more about MIDI programming and Use  <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity ext-animate--on\"\/>\n\n\n\n<div class=\"wp-block-columns ext-animate--on is-layout-flex wp-container-core-columns-is-layout-cb0a7ccb wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introduction to Midi Programming Intro &#8211; Format of Midi Messages MIDI (Musical Instrument Digital Interface) messages consist of a header and a data part. The format is as follows: Header 1.Status byte: This 1-byte value indicates the type of message being sent: 0x80-0xF7: Control Change, Pitch Bend, or Program Change (CC, PB, PC) 0xF8-0xF9: Note [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":424,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"dsgo_overlay_header":false,"dsgo_overlay_header_text_color":"","dsgo_overlay_skip_top_bar":false,"_designsetgo_exclude_llms":false,"footnotes":""},"categories":[39,41,43,48],"tags":[62,64,78,79,88,100],"class_list":["post-559","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-audio-engineering","category-midi","category-music-technology","category-synth-school","tag-dsp","tag-engineering","tag-microcontrollers","tag-midi","tag-programming","tag-tips"],"_links":{"self":[{"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/posts\/559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/comments?post=559"}],"version-history":[{"count":4,"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/posts\/559\/revisions"}],"predecessor-version":[{"id":636,"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/posts\/559\/revisions\/636"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/media\/424"}],"wp:attachment":[{"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/media?parent=559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/categories?post=559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ministryoftunes.com\/121-learning\/wp-json\/wp\/v2\/tags?post=559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}