{"id":4139,"date":"2015-12-23T01:50:47","date_gmt":"2015-12-22T22:50:47","guid":{"rendered":"http:\/\/unitycoder.com\/blog\/?p=4139"},"modified":"2015-12-23T01:50:47","modified_gmt":"2015-12-22T22:50:47","slug":"play-midi-sounds-with-midi-dot-net-dll","status":"publish","type":"post","link":"https:\/\/unitycoder.com\/blog\/2015\/12\/23\/play-midi-sounds-with-midi-dot-net-dll\/","title":{"rendered":"Play Midi Sounds with midi-dot-net dll"},"content":{"rendered":"<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4140\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2015\/12\/23\/play-midi-sounds-with-midi-dot-net-dll\/play_midi_note_with_unity\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2015\/12\/play_midi_note_with_unity.jpg?fit=333%2C174&amp;ssl=1\" data-orig-size=\"333,174\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"play_midi_note_with_unity\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2015\/12\/play_midi_note_with_unity.jpg?fit=300%2C157&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2015\/12\/play_midi_note_with_unity.jpg?fit=333%2C174&amp;ssl=1\" class=\"alignnone size-full wp-image-4140\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2015\/12\/play_midi_note_with_unity.jpg?resize=333%2C174\" alt=\"play_midi_note_with_unity\" width=\"333\" height=\"174\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2015\/12\/play_midi_note_with_unity.jpg?w=333&amp;ssl=1 333w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2015\/12\/play_midi_note_with_unity.jpg?resize=300%2C157&amp;ssl=1 300w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" \/><\/p>\n<p><strong>Instructions:<\/strong><br \/>\n&#8211; Download midi-dot-net from <a href=\"https:\/\/code.google.com\/p\/midi-dot-net\/\" target=\"_blank\">https:\/\/code.google.com\/p\/midi-dot-net\/<\/a> (from downloads section, midi-dot-net_1.1.0.zip)<br \/>\n&#8211; Unzip and copy &#8220;Midi.dll&#8221; into your unity project folder, Assets\/Plugins\/<br \/>\n&#8211; Create c# script and use the source below for testing<br \/>\n&#8211; Attach the script to gameobject in scene and hit play, should hear 1 note sound<br \/>\n&#8211; See the midi-dot-net <a href=\"https:\/\/code.google.com\/p\/midi-dot-net\/wiki\/SimpleExamples\" target=\"_blank\">examples <\/a>&amp; <a href=\"http:\/\/midi-dot-net.googlecode.com\/svn\/trunk\/Midi\/docs\/~Midi.html\" target=\"_blank\">API <\/a>for more info<\/p>\n<p><strong>Note:<\/strong><br \/>\n&#8211; This library doesn&#8217;t support loading MIDI files!<br \/>\n&#8211; (probably works in Windows only)<\/p>\n<p><strong>Source:<\/strong><\/p>\n<style>.gist table { margin-bottom: 0; }<\/style>\n<div style=\"tab-size: 8\" id=\"gist29262427\" class=\"gist\">\n<div class=\"gist-file\" translate=\"no\" data-color-mode=\"light\" data-light-theme=\"light\">\n<div class=\"gist-data\">\n<div class=\"js-gist-file-update-container js-task-list-container\">\n<div id=\"file-midisound-cs\" class=\"file my-2\">\n<div itemprop=\"text\"\n      class=\"Box-body p-0 blob-wrapper data type-c  \"\n      style=\"overflow: auto\" tabindex=\"0\" role=\"region\"\n      aria-label=\"MidiSound.cs content, created by unitycoder on 10:38PM on December 22, 2015.\"\n    ><\/p>\n<div class=\"js-check-hidden-unicode js-blob-code-container blob-code-content\">\n<p>  <template class=\"js-file-alert-template\"><\/p>\n<div data-view-component=\"true\" class=\"flash flash-warn flash-full d-flex flex-items-center\">\n  <svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n    <span><br \/>\n      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.<br \/>\n      <a class=\"Link--inTextBlock\" href=\"https:\/\/github.co\/hiddenchars\" target=\"_blank\">Learn more about bidirectional Unicode characters<\/a><br \/>\n    <\/span><\/p>\n<div data-view-component=\"true\" class=\"flash-action\">        <a href=\"{{ revealButtonHref }}\" data-view-component=\"true\" class=\"btn-sm btn\">    Show hidden characters<br \/>\n<\/a>\n<\/div>\n<\/div>\n<p><\/template><br \/>\n<template class=\"js-line-alert-template\"><br \/>\n  <span aria-label=\"This line has hidden Unicode characters\" data-view-component=\"true\" class=\"line-alert tooltipped tooltipped-e\"><br \/>\n    <svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n<\/span><\/template><\/p>\n<table data-hpc class=\"highlight tab-size js-file-line-container\" data-tab-size=\"4\" data-paste-markdown-skip data-tagsearch-path=\"MidiSound.cs\">\n<tr>\n<td id=\"file-midisound-cs-L1\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"1\"><\/td>\n<td id=\"file-midisound-cs-LC1\" class=\"blob-code blob-code-inner js-file-line\">\/\/ usage: copy Midi.dll to Assets\/Plugins\/ folder<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L2\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"2\"><\/td>\n<td id=\"file-midisound-cs-LC2\" class=\"blob-code blob-code-inner js-file-line\">\/\/ Get it from https:\/\/code.google.com\/p\/midi-dot-net\/<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L3\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"3\"><\/td>\n<td id=\"file-midisound-cs-LC3\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L4\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"4\"><\/td>\n<td id=\"file-midisound-cs-LC4\" class=\"blob-code blob-code-inner js-file-line\">using UnityEngine;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L5\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"5\"><\/td>\n<td id=\"file-midisound-cs-LC5\" class=\"blob-code blob-code-inner js-file-line\">using System.Collections;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L6\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"6\"><\/td>\n<td id=\"file-midisound-cs-LC6\" class=\"blob-code blob-code-inner js-file-line\">using Midi; \/\/ needs this<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L7\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"7\"><\/td>\n<td id=\"file-midisound-cs-LC7\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L8\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"8\"><\/td>\n<td id=\"file-midisound-cs-LC8\" class=\"blob-code blob-code-inner js-file-line\">public class MidiSound : MonoBehaviour<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L9\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"9\"><\/td>\n<td id=\"file-midisound-cs-LC9\" class=\"blob-code blob-code-inner js-file-line\">{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L10\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"10\"><\/td>\n<td id=\"file-midisound-cs-LC10\" class=\"blob-code blob-code-inner js-file-line\">\tOutputDevice outputDevice;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L11\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"11\"><\/td>\n<td id=\"file-midisound-cs-LC11\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L12\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"12\"><\/td>\n<td id=\"file-midisound-cs-LC12\" class=\"blob-code blob-code-inner js-file-line\">\tvoid Start ()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L13\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"13\"><\/td>\n<td id=\"file-midisound-cs-LC13\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L14\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"14\"><\/td>\n<td id=\"file-midisound-cs-LC14\" class=\"blob-code blob-code-inner js-file-line\">\t\toutputDevice = OutputDevice.InstalledDevices[0];<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L15\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"15\"><\/td>\n<td id=\"file-midisound-cs-LC15\" class=\"blob-code blob-code-inner js-file-line\">\t\tif (outputDevice.IsOpen) outputDevice.Close();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L16\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"16\"><\/td>\n<td id=\"file-midisound-cs-LC16\" class=\"blob-code blob-code-inner js-file-line\">\t\tif (!outputDevice.IsOpen)\toutputDevice.Open();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L17\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"17\"><\/td>\n<td id=\"file-midisound-cs-LC17\" class=\"blob-code blob-code-inner js-file-line\">\t\t\t<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L18\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"18\"><\/td>\n<td id=\"file-midisound-cs-LC18\" class=\"blob-code blob-code-inner js-file-line\">\t\t\/\/ play note<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L19\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"19\"><\/td>\n<td id=\"file-midisound-cs-LC19\" class=\"blob-code blob-code-inner js-file-line\">\t\toutputDevice.SendNoteOn(Channel.Channel1, Pitch.C4, 80);  \/\/ Middle C, velocity 80<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L20\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"20\"><\/td>\n<td id=\"file-midisound-cs-LC20\" class=\"blob-code blob-code-inner js-file-line\">\t\toutputDevice.SendPitchBend(Channel.Channel1, 7000);  \/\/ 8192 is centered, so 7000 is bent down<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L21\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"21\"><\/td>\n<td id=\"file-midisound-cs-LC21\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L22\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"22\"><\/td>\n<td id=\"file-midisound-cs-LC22\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L23\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"23\"><\/td>\n<td id=\"file-midisound-cs-LC23\" class=\"blob-code blob-code-inner js-file-line\">\tvoid OnDestroy ()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L24\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"24\"><\/td>\n<td id=\"file-midisound-cs-LC24\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L25\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"25\"><\/td>\n<td id=\"file-midisound-cs-LC25\" class=\"blob-code blob-code-inner js-file-line\">\t\tif (outputDevice != null &amp;&amp; outputDevice.IsOpen) outputDevice.Close();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L26\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"26\"><\/td>\n<td id=\"file-midisound-cs-LC26\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L27\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"27\"><\/td>\n<td id=\"file-midisound-cs-LC27\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L28\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"28\"><\/td>\n<td id=\"file-midisound-cs-LC28\" class=\"blob-code blob-code-inner js-file-line\">\tvoid OnDisable ()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L29\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"29\"><\/td>\n<td id=\"file-midisound-cs-LC29\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L30\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"30\"><\/td>\n<td id=\"file-midisound-cs-LC30\" class=\"blob-code blob-code-inner js-file-line\">\t\tif (outputDevice != null &amp;&amp; outputDevice.IsOpen) outputDevice.Close();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L31\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"31\"><\/td>\n<td id=\"file-midisound-cs-LC31\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L32\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"32\"><\/td>\n<td id=\"file-midisound-cs-LC32\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-midisound-cs-L33\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"33\"><\/td>\n<td id=\"file-midisound-cs-LC33\" class=\"blob-code blob-code-inner js-file-line\">}<\/td>\n<\/tr>\n<\/table>\n<\/div><\/div>\n<\/p><\/div>\n<\/div><\/div>\n<div class=\"gist-meta\">\n        <a href=\"https:\/\/gist.github.com\/unitycoder\/4f9bbd875844437ebaf3\/raw\/0a58cae7980e769e2c7481c210efd49c955d6637\/MidiSound.cs\" style=\"float:right\" class=\"Link--inTextBlock\">view raw<\/a><br \/>\n        <a href=\"https:\/\/gist.github.com\/unitycoder\/4f9bbd875844437ebaf3#file-midisound-cs\" class=\"Link--inTextBlock\"><br \/>\n          MidiSound.cs<br \/>\n        <\/a><br \/>\n        hosted with &#10084; by <a class=\"Link--inTextBlock\" href=\"https:\/\/github.com\">GitHub<\/a>\n      <\/div>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Instructions: &#8211; Download midi-dot-net from https:\/\/code.google.com\/p\/midi-dot-net\/ (from downloads section, midi-dot-net_1.1.0.zip) &#8211; Unzip and copy &#8220;Midi.dll&#8221; into your unity project folder, Assets\/Plugins\/ &#8211; Create c# script and use the source below for testing &#8211; Attach the script to gameobject in scene and hit play, should hear [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4140,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[804,3],"tags":[841,840,842,838,839,833,240],"class_list":["post-4139","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripts","category-unity3d","tag-chord","tag-dll","tag-mid","tag-midi","tag-note","tag-play","tag-sound"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2015\/12\/play_midi_note_with_unity.jpg?fit=333%2C174&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p1KTaT-14L","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/comments?post=4139"}],"version-history":[{"count":1,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4139\/revisions"}],"predecessor-version":[{"id":4141,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4139\/revisions\/4141"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media\/4140"}],"wp:attachment":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media?parent=4139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/categories?post=4139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/tags?post=4139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}