{"id":371,"date":"2017-06-12T20:55:18","date_gmt":"2017-06-12T18:55:18","guid":{"rendered":"https:\/\/arduinoforlammers.wordpress.com\/?p=371"},"modified":"2018-01-06T00:01:58","modified_gmt":"2018-01-05T23:01:58","slug":"midi-czyli-wkraczamy-w-swiat-dzwiekow","status":"publish","type":"post","link":"https:\/\/arduino.net.pl\/index.php\/midi-czyli-wkraczamy-w-swiat-dzwiekow\/","title":{"rendered":"Wkraczamy w \u015bwiat d\u017awi\u0119k\u00f3w. Wysy\u0142anie nut przez MIDI."},"content":{"rendered":"<p>Na pocz\u0105tek kilka s\u0142\u00f3w z <a href=\"https:\/\/pl.wikipedia.org\/wiki\/MIDI\">Wikipedii<\/a>:<br \/>\n<b>MIDI<\/b> (skr\u00f3t od Musical Instrument Digital Interface, z <a title=\"J\u0119zyk angielski\" href=\"https:\/\/pl.wikipedia.org\/wiki\/J%C4%99zyk_angielski\">ang.<\/a> \u201ecyfrowy interfejs instrument\u00f3w muzycznych\u201d) \u2013 system, (<a title=\"Interfejs (urz\u0105dzenie)\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Interfejs_(urz%C4%85dzenie)\">interfejs<\/a>, <a title=\"Oprogramowanie\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Oprogramowanie\">oprogramowanie<\/a> i zestaw <a title=\"Instrukcja (informatyka)\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Instrukcja_(informatyka)\">komend<\/a>) s\u0142u\u017c\u0105cy do przekazywania informacji pomi\u0119dzy <a title=\"Elektrofony elektroniczne\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Elektrofony_elektroniczne\">elektronicznymi instrumentami muzycznymi<\/a>.<br \/>\nMIDI umo\u017cliwia <a title=\"Komputer\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Komputer\">komputerom<\/a>, <a title=\"Syntezator\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Syntezator\">syntezatorom<\/a>, <a title=\"Keyboard\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Keyboard\">keyboardom<\/a>, <a title=\"Karta d\u017awi\u0119kowa\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Karta_d%C5%BAwi%C4%99kowa\">kartom d\u017awi\u0119kowym<\/a> i podobnym urz\u0105dzeniom kontrolowa\u0107 si\u0119 nawzajem oraz wymienia\u0107 informacje mi\u0119dzy sob\u0105. Pozwoli\u0142o tak\u017ce na tworzenie \u0142atwych w obs\u0142udze i programowaniu <a title=\"Sekwencer (muzyka)\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Sekwencer_(muzyka)\">sekwencer\u00f3w<\/a> i <a title=\"Syntezator perkusyjny\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Syntezator_perkusyjny\">syntezator\u00f3w perkusyjnych<\/a>.<\/p>\n<p>Na pocz\u0105tek pod\u0142\u0105czamy nasz syntezator przez MIDI do Arduino i zmuszamy do zagrania dw\u00f3ch nut, w r\u00f3wnych odst\u0119pach czasu.<\/p>\n<p>Bardzo wa\u017cne jest w\u0142a\u015bciwe pod\u0142\u0105czenie przewod\u00f3w do gniazda DIN5. Poni\u017cszy rysunek pomo\u017ce w\u0142a\u015bciwie przylutowa\u0107 kabelki. Zdj\u0119cie pokazuje widok gniazda z ty\u0142u oraz wtyczki z przodu.<\/p>\n<p><a href=\"https:\/\/flic.kr\/p\/Wy2kXK\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/live.staticflickr.com\/4211\/35805655605_dc5fce6ac8.jpg\" alt=\"MIDI_female_conector_yar\" width=\"497\" height=\"500\" \/><\/a><\/p>\n<p><!--more--><strong>\u0141\u0105czenie z Arduino:<\/strong><\/p>\n<p><em>N\u00f3\u017cka DIN5 przez rezystor z TX<\/em><br \/>\n<em>N\u00f3\u017cka DIN2 do GND<\/em><br \/>\n<em>N\u00f3\u017cka DIN4\u00a0przez rezystor z +5V<\/em><\/p>\n<p><a href=\"https:\/\/flic.kr\/p\/VyyFVn\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/live.staticflickr.com\/4219\/35155414451_a63319c054_z.jpg\" alt=\"MIDI_out_breadboard\" width=\"407\" height=\"640\" \/><\/a><\/p>\n<p><strong>Schemat:<\/strong><br \/>\n<a href=\"https:\/\/flic.kr\/p\/VGhu7G\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/live.staticflickr.com\/4263\/35242784916_62d1008ef3_z.jpg\" alt=\"MIDI_out_schemat\" width=\"640\" height=\"505\" \/><\/a><\/p>\n<p><a href=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2017\/06\/midi-out_easyeda1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-859\" src=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2017\/06\/midi-out_easyeda1.png\" alt=\"\" width=\"642\" height=\"732\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2017\/06\/midi-out_easyeda1.png 642w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2017\/06\/midi-out_easyeda1-263x300.png 263w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/a><\/p>\n<p><strong>Kod1<\/strong> <em>(wysy\u0142anie czystej kwarty)<\/em>:<\/p>\n<pre class=\"brush: plain; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">#include &amp;amp;lt;MIDI.h&amp;amp;gt;\r\n\r\n\/\/ Simple tutorial on how to send MIDI messages.\r\n\/\/ Arduino will blink a led and play two notes.\r\n\r\nMIDI_CREATE_DEFAULT_INSTANCE();\r\n\r\n#define LED 13\r\n\r\nvoid setup()\r\n{\r\npinMode(LED, OUTPUT);\r\nMIDI.begin(MIDI_CHANNEL_OFF);\r\n\/\/ Launch MIDI and tells program to disregard any MIDI incoming messages\r\n}\r\nvoid loop()\r\n{\r\ndigitalWrite(LED,HIGH);\r\nMIDI.sendNoteOn(60,127,1);\r\n\/\/ Send a Note (pitch 60 (middle C), velo 127 on channel 1)\r\nMIDI.sendNoteOn(65,127,1);\r\n\/\/ Send a Note (pitch 65 (F), velo 127 on channel 1)\r\ndelay(200);\r\nMIDI.sendNoteOff(60,0,1); \/\/ Stop the notes\r\nMIDI.sendNoteOff(65,0,1);\r\ndigitalWrite(LED,LOW);\r\ndelay(100);\r\n}\r\n<\/pre>\n<p><strong>Kod2 <\/strong><em>(d\u017awi\u0119ki randomimiczne)<\/em><\/p>\n<pre class=\"brush: plain; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">#include &amp;amp;lt;MIDI.h&amp;amp;gt;&amp;amp;lt;\/pre&amp;amp;gt;\r\n\/\/ DX7 INT 27\r\n\r\nMIDI_CREATE_DEFAULT_INSTANCE();\r\n\r\n#define LED 13\r\n#define progNumber 27 \/\/definiujemy numer programu\r\nint nuta;\r\nint vel;\r\nint przypadek;\r\nint przypadek2;\r\nint Dx7Preset&#x5B;] = {1, 2, 3, 5, 7, 27};\r\n\r\nvoid setup()\r\n{\r\nvel=31;\r\npinMode(LED, OUTPUT);\r\nMIDI.begin(MIDI_CHANNEL_OFF); \/\/ Launch MIDI and tells program to disregard any MIDI incoming messages\r\n\/\/Serial.begin(19200);\r\nMIDI.sendProgramChange(progNumber-1,1);\r\n\r\n}\r\n\r\nvoid loop()\r\n{\r\nfor (int nuta = 122; nuta &amp;amp;gt; 1; nuta --){\r\n\r\nprzypadek = random(1,120);\r\n\r\nif ((nuta%(przypadek\/5))==0)\r\n\/\/w przypadku gdy dzielenie nuty przez random\/5 daje 0 zmie\u0144 program\r\n{\r\nprzypadek2 = random(0,5);\r\nMIDI.sendProgramChange(Dx7Preset&#x5B;przypadek2]-1,1);\r\n\/\/zmiana programu wed\u0142ug przypadkowo wybranego preseta z tablicy\r\n}\r\n\/\/vel=vel+(przypadek\/5); \/\/ randomizacja velocity\r\ndigitalWrite(LED,HIGH);\r\nMIDI.sendNoteOn(nuta,vel,1);\r\nMIDI.sendNoteOn(nuta+przypadek,vel,1);\r\nMIDI.sendNoteOn(nuta+5+przypadek,vel,1);\r\ndelay(100);\r\nMIDI.sendNoteOff(nuta,vel,1);\r\nMIDI.sendNoteOff(nuta+przypadek,vel,1);\r\nMIDI.sendNoteOff(nuta+5+przypadek,vel,1);\r\ndigitalWrite(LED,LOW);\r\ndelay(20);}\r\n\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Na pocz\u0105tek kilka s\u0142\u00f3w z Wikipedii: MIDI (skr\u00f3t od Musical Instrument Digital Interface, z ang. \u201ecyfrowy interfejs instrument\u00f3w muzycznych\u201d) \u2013 system, (interfejs, oprogramowanie i zestaw komend) s\u0142u\u017c\u0105cy do przekazywania informacji&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2,6],"tags":[30],"class_list":["post-371","post","type-post","status-publish","format-standard","hentry","category-arduino","category-midi","tag-tutorial"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/371","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/comments?post=371"}],"version-history":[{"count":1,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/371\/revisions"}],"predecessor-version":[{"id":861,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/371\/revisions\/861"}],"wp:attachment":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media?parent=371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/categories?post=371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/tags?post=371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}