{"id":483764,"date":"2026-06-16T07:00:52","date_gmt":"2026-06-16T07:00:52","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=483764"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=483764","title":{"rendered":"\u0420\u043e\u044f\u043b\u044c \u043d\u0430 \u0434\u0430\u0447\u0435: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u041f\u041b\u041a \u043d\u0430 Linux \u043a\u0430\u043a real-time-\u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u042f \u0438\u0433\u0440\u0430\u044e \u043d\u0430 \u043f\u0438\u0430\u043d\u0438\u043d\u043e \u0441 \u0434\u0435\u0442\u0441\u0442\u0432\u0430. \u041a\u043b\u0430\u0441\u0441\u0438\u043a\u0430, \u0441\u0430\u0443\u043d\u0434\u0442\u0440\u0435\u043a\u0438, \u0438\u043c\u043f\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u0438 \u2013 \u0440\u0435\u043f\u0435\u0440\u0442\u0443\u0430\u0440 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043d\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0430 \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u0441\u0435\u0441\u0442\u044c \u0437\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f. \u041b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u0434\u043e\u0445\u043d\u0443\u0442\u044c, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a!\u00a0 \u041d\u0430 \u043c\u043e\u0435\u0439 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e Pianoteq \u043e\u0442 Modartt \u2014 \u043e\u043d \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u0435\u043d\u044f \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442: \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f, \u043d\u043e \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e \u0437\u0432\u0443\u043a\u043e\u043c.<\/p>\n<p>\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u0432\u043d\u043e\u00a0 \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u0443\u043c\u043d\u0443\u044e \u0434\u0430\u0447\u0443 \u043d\u0430 \u0431\u0430\u0437\u0435 \u041f\u041b\u041a \u043f\u043e\u0434 Linux \u0438 \u0434\u0430\u0436\u0435 <a href=\"https:\/\/habr.com\/en\/companies\/wirenboard\/articles\/416091\/\">\u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043e\u0431 \u044d\u0442\u043e\u043c \u0441\u0442\u0430\u0442\u044c\u044e<\/a>. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0432\u043e\u0434\u043e\u0441\u043d\u0430\u0431\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u043e\u0442\u043e\u043f\u043b\u0435\u043d\u0438\u0435\u043c. \u041f\u043e\u0442\u043e\u043c \u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u044e \u043e <a href=\"https:\/\/habr.com\/ru\/companies\/wirenboard\/articles\/954020\/\">\u0437\u0430\u043f\u0443\u0441\u043a\u0435 Doom \u043d\u0430 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435<\/a> \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0441\u044f: \u0441\u043c\u043e\u0433\u0443 \u043b\u0438 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0434 \u0441\u0432\u043e\u0435 \u0445\u043e\u0431\u0431\u0438? \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043b\u0438 \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0434\u0430\u0447\u0435 \u043d\u0435 \u0445\u0443\u0436\u0435, \u0447\u0435\u043c \u0434\u043e\u043c\u0430?\u00a0<\/p>\n<p>Doom \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0445\u043e\u0442\u044c \u0438 \u043a\u0443\u043b\u044c\u0442\u043e\u0432\u0430\u044f, \u043d\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0410 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441 real-time-\u0441\u0438\u043d\u0442\u0435\u0437\u043e\u043c \u0430\u0443\u0434\u0438\u043e? \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0437\u0432\u0443\u043a \u2014 \u043d\u0443\u0436\u043d\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430.\u00a0<\/p>\n<p>\u0421\u0431\u043e\u0440\u043a\u0438 Pianoteq \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b, \u043d\u043e \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043d\u0430 \u0441\u0442\u0443\u0434\u0438\u0439\u043d\u044b\u0445 Mac \u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0441\u0442\u0430\u043d\u0446\u0438\u044f\u0445 \u2014 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435, \u0432 \u0441\u0442\u0443\u0434\u0438\u044f\u0445 \u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430\u0434 \u043a\u0438\u043d\u043e\u043c\u0443\u0437\u044b\u043a\u043e\u0439. <\/p>\n<p>\u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u044f \u043f\u0440\u0438\u0432\u0435\u0437 \u043d\u0430 \u0434\u0430\u0447\u0443 USB-\u0426\u0410\u041f, MIDI-\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0441 \u043f\u0435\u0434\u0430\u043b\u044c\u044e \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b \u0438\u0445 \u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443\u2026<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d2e\/ede\/666\/d2eede66667b9163d48a812ad7cb716f.jpeg\" alt=\"\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u043e\u0442\u043e: \u044f \u0434\u043e\u0441\u0442\u0430\u043b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0437 \u0449\u0438\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\" title=\"\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u043e\u0442\u043e: \u044f \u0434\u043e\u0441\u0442\u0430\u043b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0437 \u0449\u0438\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\" width=\"1560\" height=\"1170\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d2e\/ede\/666\/d2eede66667b9163d48a812ad7cb716f.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d2e\/ede\/666\/d2eede66667b9163d48a812ad7cb716f.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u043e\u0442\u043e: \u044f \u0434\u043e\u0441\u0442\u0430\u043b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0437 \u0449\u0438\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u043e\u0442\u043e<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/45e\/8df\/310\/45e8df310671334a5f4c675a9a633a67.jpeg\" width=\"2048\" height=\"1536\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/45e\/8df\/310\/45e8df310671334a5f4c675a9a633a67.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/45e\/8df\/310\/45e8df310671334a5f4c675a9a633a67.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afe\/94d\/81d\/afe94d81da64f3f66044beeb43e07481.jpeg\" width=\"2048\" height=\"1536\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/afe\/94d\/81d\/afe94d81da64f3f66044beeb43e07481.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afe\/94d\/81d\/afe94d81da64f3f66044beeb43e07481.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<\/div>\n<\/details>\n<h2>\u0416\u0435\u043b\u0435\u0437\u043d\u044b\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438<\/h2>\n<p>Wiren Board 8 \u2014 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0430 DIN-\u0440\u0435\u0439\u043a\u0443 \u0441 4-\u044f\u0434\u0435\u0440\u043d\u044b\u043c SoC Allwinner T507, 4 \u0413\u0411 \u041e\u0417\u0423 \u0438 64 \u0413\u0411 eMMC. \u041f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 Raspberry Pi 3 Model B+.\u00a0<\/p>\n<p>\u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b \u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443:<\/p>\n<ul>\n<li>\n<p>FiiO KA13 \u2014 USB-\u0426\u0410\u041f \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 USB Audio Class. \u041f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 USB-\u0426\u0410\u041f: Linux \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u00a0 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0431\u0435\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 snd-usb-audio. KA13 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p>Roland EDIROL UM-1 \u2014 \u0441\u0442\u0430\u0440\u044b\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 USB-MIDI-\u0430\u0434\u0430\u043f\u0442\u0435\u0440. \u0427\u0435\u0440\u0435\u0437 5-pin DIN \u043a \u043d\u0435\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0435 \u043f\u0438\u0430\u043d\u0438\u043d\u043e \u0441 MIDI-\u0432\u044b\u0445\u043e\u0434\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>Korg nanoKONTROL2 \u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 MIDI-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441 \u0444\u0435\u0439\u0434\u0435\u0440\u0430\u043c\u0438 \u0438 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044f \u043c\u0435\u043d\u044f\u043b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440\u0430 \u043d\u0430 \u043b\u0435\u0442\u0443, \u0431\u0435\u0437 GUI.<\/p>\n<\/li>\n<li>\n<p>HDMI-\u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/wirenboard.com\/ru\/product\/WBE2-HDMI\/\">WBE2-HDMI<\/a> (\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439, \u0447\u0442\u043e \u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e Doom) \u2014 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Pianoteq.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7b4\/10d\/8b1\/7b410d8b12477384d2edaf1f52990c40.jpeg\" alt=\"\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Wiren Board 8 \u0432 \u0449\u0438\u0442\u0435. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 MIDI-\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f USB-\u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u0435\u043c\" title=\"\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Wiren Board 8 \u0432 \u0449\u0438\u0442\u0435. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 MIDI-\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f USB-\u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u0435\u043c\" width=\"1560\" height=\"1170\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7b4\/10d\/8b1\/7b410d8b12477384d2edaf1f52990c40.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7b4\/10d\/8b1\/7b410d8b12477384d2edaf1f52990c40.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Wiren Board 8 \u0432 \u0449\u0438\u0442\u0435. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 MIDI-\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f USB-\u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u0435\u043c<\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u043e\u0442\u043e<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d57\/3cf\/45a\/d573cf45af2d43044548b584222366ac.jpeg\" alt=\"\u041c\u043e\u0436\u043d\u043e \u0438\u0433\u0440\u0430\u0442\u044c \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0449\u0438\u0442\u043e\u043c, \u043d\u043e \u044d\u0442\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u0431\u0435\u0437 USB-\u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u044f \u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0430 \u043f\u044f\u0442\u044c \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c\" title=\"\u041c\u043e\u0436\u043d\u043e \u0438\u0433\u0440\u0430\u0442\u044c \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0449\u0438\u0442\u043e\u043c, \u043d\u043e \u044d\u0442\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u0431\u0435\u0437 USB-\u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u044f \u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0430 \u043f\u044f\u0442\u044c \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c\" width=\"2048\" height=\"1411\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d57\/3cf\/45a\/d573cf45af2d43044548b584222366ac.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d57\/3cf\/45a\/d573cf45af2d43044548b584222366ac.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u043e\u0436\u043d\u043e \u0438\u0433\u0440\u0430\u0442\u044c \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0449\u0438\u0442\u043e\u043c, \u043d\u043e \u044d\u0442\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u0431\u0435\u0437 USB-\u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u044f \u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0430 \u043f\u044f\u0442\u044c \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<h2>Pianoteq: \u0437\u0430 \u0447\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c<\/h2>\n<p>\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u00ab\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e\u00bb (Kontakt, Vienna Symphonic Library \u2026) \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u0430\u043a \u0441\u044d\u043c\u043f\u043b\u0435\u0440\u044b. \u041d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0443 \u043d\u0438\u0445 \u043b\u0435\u0436\u0430\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0436\u0438\u0432\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430: \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0430, \u043a\u0430\u0436\u0434\u0430\u044f \u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044f \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441 \u043f\u0435\u0434\u0430\u043b\u044c\u044e \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0431\u0435\u0437 \u043d\u0435\u0435. \u041d\u0430\u0436\u0430\u043b \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u044b\u0431\u0440\u0430\u043b\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0441\u044d\u043c\u043f\u043b \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b\u0430 \u0435\u0433\u043e. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435, \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 CPU, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435.\u00a0<\/p>\n<p>Pianoteq \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u0438\u043d\u0430\u0447\u0435. \u041e\u043d \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u0437\u0432\u0443\u043a, \u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u043f\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e. \u041a\u0430\u0436\u0434\u0430\u044f \u043d\u043e\u0442\u0430 \u2014 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439. \u041f\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 48 \u043a\u0413\u0446 \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 48 000 \u0442\u0430\u043a\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0427\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u0437\u0438\u0442\u044c, \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u0432 \u0432\u0435\u0440\u0445\u043d\u0438\u043c\u0438 \u043e\u0431\u0435\u0440\u0442\u043e\u043d\u0430\u043c\u0438, \u2014 \u043d\u0430 \u0441\u043b\u0430\u0431\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u044d\u0442\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0432\u044b\u0445\u043e\u0434\u043e\u043c.\u00a0<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u043d\u0443\u0436\u0435\u043d \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043e\u0442\u043a\u043b\u0438\u043a. \u0414\u043b\u044f \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e\u0439 \u0438\u0433\u0440\u044b \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u0438 \u0437\u0432\u0443\u043a\u043e\u043c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10 \u043c\u0441.<\/p>\n<p>Pianoteq \u043c\u043e\u0439 Mac \u0441 M2 \u043d\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u043e\u043d \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0438 \u0437\u0430\u0438\u0433\u0440\u0430\u0435\u0442 \u043d\u0430 Cortex-A53, \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u0432\u043e\u0434 \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a\u0438\u0435 \u0435\u0449\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440.<\/p>\n<h4>\u041f\u043b\u0430\u043d \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/h4>\n<p>\u041f\u043b\u0430\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u043e\u0441\u0442\u043e: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Pianoteq \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438, \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 GUI \u043f\u043e X-forwarding, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 headless, \u0431\u0435\u0437 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430. \u0415\u0441\u043b\u0438 Cortex-A53 \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u2014 \u043f\u043e\u0434\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c Pianoteq.\u00a0<\/p>\n<p>\u042f \u0438\u0441\u0445\u043e\u0434\u0438\u043b \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f: Debian 11, \u0448\u0442\u0430\u0442\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 Wiren Board 8 \u0438 USB MIDI Class \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0432\u0441\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0438 \u0441\u0443\u0440\u043e\u0432\u0430\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u044a\u0435\u043b\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445. <\/p>\n<h2>\u041e\u0431\u043b\u043e\u043c \u043f\u0435\u0440\u0432\u044b\u0439: ALSA \u043d\u0435 \u043e\u0442\u0434\u0430\u0451\u0442 MIDI<\/h2>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Pianoteq \u043f\u0440\u043e\u0448\u043b\u0430 \u0441\u043a\u0443\u0447\u043d\u043e: \u044f \u0441\u043a\u0430\u0447\u0430\u043b ARM64-\u0430\u0440\u0445\u0438\u0432 \u0441 \u0441\u0430\u0439\u0442\u0430<a href=\"https:\/\/www.modartt.com\/?utm_source=chatgpt.com\"> Modartt<\/a> \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u0432 \/mnt\/data\/pianoteq. Root-\u0440\u0430\u0437\u0434\u0435\u043b \u043d\u0430 Wiren Board 8 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 2 \u0413\u0411, \u0430 \u043d\u0430 \/mnt\/data \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u043e\u043a\u043e\u043b\u043e 56 \u0413\u0411. \u0418 \u0442\u0443\u0442 \u043d\u0430\u0447\u0430\u043b\u0438\u0441\u044c \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.\u00a0<\/p>\n<p>Pianoteq \u2014 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 JUCE. \u0415\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u0438\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043b\u0438 \u043a X11, OpenGL, freetype \u0438 \u0435\u0449\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0412 \u0448\u0442\u0430\u0442\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435 Wiren Board \u043d\u0438\u0447\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442: \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0431\u0435\u0437 \u0433\u0440\u0430\u0444\u0438\u043a\u0438.\u00a0<\/p>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0435\u0449\u0435 \u0434\u043e \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u00a0 \u2014 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041d\u0435\u0442 libx11-6 \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 segfault \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c Pianoteq \u043f\u043e\u0439\u043c\u0435\u0442, \u0447\u0442\u043e \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441 &#8212;headless.\u00a0<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043f\u0440\u043e\u0431 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432:\u00a0<\/p>\n<pre><code class=\"bash\">apt install -y \\    libgl1 libx11-6 libxext6 libxrender1 libxcursor1 libxrandr2 \\    libxinerama1 libxi6 libfreetype6 libfontconfig1 \\    libxcb-keysyms1 libxcb-icccm4 libxcb-randr0 libxcb-render-util0 \\    libxcb-image0 libxcb-shape0 libxcb-xkb1 libxcb-xinerama0 \\    libxkbcommon-x11-0 xauth<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043b\u0438\u043d\u043d\u044b\u043c, \u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u043b\u043e\u0433\u0438\u0447\u0435\u043d:<\/p>\n<ul>\n<li>\n<p>libgl1, libx11-6, libxext6 \u2014 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 GL+X11;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u0431\u043e\u0440 libxcb-* \u2014 low-level X-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 Qt \u0438 JUCE;<\/p>\n<\/li>\n<li>\n<p>libfreetype6 \u0438 libfontconfig1 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0440\u0435\u043d\u0434\u0435\u0440\u0430 \u0448\u0440\u0438\u0444\u0442\u043e\u0432: Pianoteq \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0438\u0445 \u0435\u0449\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435;<\/p>\n<\/li>\n<li>\n<p>xauth \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043b\u044f ssh -X.<\/p>\n<\/li>\n<\/ul>\n<p>\u041a Pianoteq \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f, \u043d\u043e \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0435\u0449\u0435 \u043f\u0430\u0440\u0443 \u0443\u0442\u0438\u043b\u0438\u0442, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e: <\/p>\n<pre><code class=\"bash\">apt install -y p7zip-full alsa-utils<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<ul>\n<li>\n<p>p7zip-full \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 pianoteq_linux_v843.7z;<\/p>\n<\/li>\n<li>\n<p>alsa-utils \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442 amidi, aconnect, aplay \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 ALSA \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 Linux, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0430\u0443\u0434\u0438\u043e, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c\u044e \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 MIDI-\u0441\u043e\u0431\u044b\u0442\u0438\u0439.\u00a0<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e Pianoteq \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f:<\/p>\n<pre><code class=\"bash\">\/mnt\/data\/pianoteq\/'Pianoteq 8'\/arm-64bit\/'Pianoteq 8' --headless --serve :8081<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0436\u0435 \u0441\u0442\u0440\u043e\u043a\u0435 \u043b\u043e\u0433\u0430 \u044f \u0443\u0432\u0438\u0434\u0435\u043b:   <\/p>\n<pre><code class=\"bash\">ALSA lib seq_hw.c:466:(snd_seq_hw_open) open \/dev\/snd\/seq failed:    No such file or directory<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Pianoteq \u2014 \u043d\u043e\u043b\u044c MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0425\u043e\u0442\u044f lsusb \u0438 amidi -l \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u0432\u0441\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 USB-MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0413\u0434\u0435-\u0442\u043e \u043e\u043d\u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438\u0441\u044c.\u00a0<\/p>\n<h4>\u0413\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/h4>\n<p>ALSA \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 MIDI.<\/p>\n<h4>Rawmidi<\/h4>\n<p>\u041d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a \/dev\/snd\/midiCXDY, \u0433\u0434\u0435 X \u2014 \u043d\u043e\u043c\u0435\u0440 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b, Y \u2014 \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0442\u0443\u0434\u0430-\u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<p>Rawmidi \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e USB MIDI Class-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u0415\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u043f\u0446\u0438\u044f Linux-\u044f\u0434\u0440\u0430:<\/p>\n<pre><code class=\"bash\">CONFIG_SND_RAWMIDI<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>Sequencer<\/h4>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0448\u0435 \u2014 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f MIDI-\u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438.<\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e sequencer \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 aconnect -l, \u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e Linux-\u0430\u0443\u0434\u0438\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 MIDI. \u0414\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u0430 \u043e\u043f\u0446\u0438\u044f:<\/p>\n<pre><code class=\"bash\">CONFIG_SND_SEQUENCER<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430 Wiren Board:   <\/p>\n<pre><code>CONFIG_SND=yCONFIG_SND_USB_AUDIO=y        \u2190 USB-\u0430\u0443\u0434\u0438\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442CONFIG_SND_RAWMIDI=y          \u2190 raw MIDI \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442# CONFIG_SND_SEQUENCER is not set<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041b\u043e\u0433\u0438\u0447\u043d\u043e: \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 sequencer \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u043d\u0443\u0436\u0435\u043d.\u00a0<\/p>\n<h4>\u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u043c\u00a0<\/h4>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u044b\u043c: \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e snd-seq*.ko out-of-tree, \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0438 \u0432 \/lib\/modules\/&#8230;, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 modprobe \u2014 \u0438 \u0433\u043e\u0442\u043e\u0432\u043e.<\/p>\n<p>\u0422\u0430\u043a \u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u043b.<\/p>\n<p>\u041c\u043e\u0434\u0443\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. modprobe snd-seq \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a. \/dev\/snd\/seq \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f. aconnect -l \u043d\u0430\u0447\u0430\u043b \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c.<\/p>\n<p>\u041d\u043e MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 sequencer \u0442\u0430\u043a \u0438 \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 ALSA:<\/p>\n<pre><code class=\"cpp\">#if IS_ENABLED(CONFIG_SND_SEQUENCER)    if (!rmidi-&gt;ops || !rmidi-&gt;ops-&gt;dev_register) {        if (snd_seq_device_new(...)) {            ...        }    }#endif<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 #if IS_ENABLED(CONFIG_SND_SEQUENCER).\u00a0<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u044f\u0434\u0440\u043e Wiren Board \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 \u0431\u0435\u0437 sequencer-\u0430, \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 seq-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u043f\u0430\u043b \u0432 vmlinuz. \u0410 rawmidi \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c (=y) \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 \u044f\u0434\u0440\u043e.\u00a0<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0447\u0435\u0433\u043e: \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c snd_seq_device_new() \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u043c \u044f\u0434\u0440\u0435.<\/p>\n<p>\u0421 Doom \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0449\u0435: uinput \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0441\u043e\u0431\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c. \u0417\u0434\u0435\u0441\u044c \u0436\u0435 conditional compilation \u0438\u0434\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u0441\u0435\u0439 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b ALSA.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 out-of-tree-\u043c\u043e\u0434\u0443\u043b\u0438, \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u0438\u0434\u0430:<\/p>\n<pre><code class=\"cpp\">#if IS_ENABLED(...)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0435\u0441\u0442\u044c \u2014 \u043f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043d\u0435 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c.\u00a0<\/p>\n<h4>\u041f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0430 \u044f\u0434\u0440\u0430\u00a0<\/h4>\n<p>\u0423 Wiren Board 8 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0438 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 <a href=\"https:\/\/habr.com\/ru\/companies\/wirenboard\/articles\/954020\/\">\u043f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0434 Doom<\/a>.\u00a0<\/p>\n<p>\u041d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u041f\u041a \u0441 Ubuntu \u0438\u043b\u0438 Debian:<\/p>\n<pre><code class=\"bash\">sudo apt install -y build-essential bison flex bc libssl-dev libelf-dev cpio rsync kmod gcc-aarch64-linux-gnugit clone --depth 1 --branch v6.8.0-wb153 https:\/\/github.com\/wirenboard\/linux.git linux-wbcd linux-wbgit submodule update --init --depth 1 drivers\/net\/wireless\/realtek\/rtl8733bu<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0435\u0433 v6.8.0-wb153 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u044f\u0434\u0440\u0443 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 uname -r.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u044f\u0434\u0440\u0430:<\/p>\n<pre><code class=\"bash\">cat &gt;&gt; arch\/arm64\/configs\/wb8.config &lt;&lt;'EOF'CONFIG_SND_SEQUENCER=mCONFIG_SND_SEQ_DUMMY=mCONFIG_SND_SEQ_MIDI=mCONFIG_SND_SEQ_MIDI_EVENT=mCONFIG_SND_SEQ_MIDI_EMUL=mEOF<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430:<\/p>\n<pre><code class=\"bash\">KERNEL_FLAVOUR=wb8 FORCE_DEFAULT=y VERSION_SUFFIX=\"+sndseq\" CORES=$(nproc) .\/scripts\/package\/wb\/do_build_deb.sh<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>VERSION_SUFFIX=&#187;+sndseq&#187; \u043d\u0443\u0436\u0435\u043d, \u0447\u0442\u043e\u0431\u044b \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 linux-image-wb8 \u043f\u043e\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0442\u0435\u0440 \u043d\u0430\u0448\u0443 \u0441\u0431\u043e\u0440\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 apt upgrade.<\/p>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u0430:<\/p>\n<pre><code class=\"bash\">linux-image-wb8_6.8.0-wb153+sndseq_arm64.deblinux-headers-wb8_6.8.0-wb153+sndseq_arm64.deblinux-libc-dev_6.8.0-wb153+sndseq_arm64.deb<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430:\u00a0<\/p>\n<pre><code class=\"bash\">scp linux-image-wb8_6.8.0-wb153+sndseq_arm64.deb wb225:\/tmp\/ssh wb225 \"dpkg -i \/tmp\/linux-image-wb8_6.8.0-wb153+sndseq_arm64.deb &amp;&amp; reboot\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438:   <\/p>\n<pre><code class=\"bash\">$ ls \/dev\/snd\/seq\/dev\/snd\/seq$ aconnect -lclient 16: 'UM-1' [type=kernel,card=0]    0 'UM-1 MIDI 1'client 28: 'nanoKONTROL2' [type=kernel,card=3]    0 'nanoKONTROL2 nanoKONTROL2 _ CTR'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u0441\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u043c\u0435\u0441\u0442\u0435. Pianoteq \u0442\u043e\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a seq-\u043a\u043b\u0438\u0435\u043d\u0442 \u0438 \u0443\u0432\u0438\u0434\u0435\u043b \u0438\u0445 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0435.\u00a0<\/p>\n<h4>\u041e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 X-forwarding<\/h4>\n<p>\u041d\u0430 Linux Pianoteq \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 GUI. \u0412 headless-\u0440\u0435\u0436\u0438\u043c\u0435 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.\u00a0<\/p>\n<p>\u041d\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u044b\u0439 \u0442\u0440\u044e\u043a \u0441 X11-forwarding:\u00a0<\/p>\n<pre><code class=\"bash\">ssh -X wb225 \"cd '\/mnt\/data\/pianoteq\/Pianoteq 8\/arm-64bit' &amp;&amp; .\/'Pianoteq 8'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u043a\u043d\u043e Pianoteq \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430, \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u043f\u0440\u044f\u043c\u043e \u0442\u0430\u043c.\u00a0<\/p>\n<p>\u0412 Options \u2192 Devices \u044f \u0432\u044b\u0431\u0440\u0430\u043b:<\/p>\n<ul>\n<li>\n<p>Audio Output \u2192 FiiO KA13, USB Audio<\/p>\n<\/li>\n<li>\n<p>\u0440\u0435\u0436\u0438\u043c Direct hardware device without any conversions<\/p>\n<\/li>\n<li>\n<p>MIDI Input \u2192 UM-1 \u0438 nanoKONTROL2<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u043e\u043a\u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432:<\/p>\n<pre><code class=\"bash\">\/root\/.config\/Modartt\/Pianoteq84.prefs<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 Pianoteq \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e headless.\u00a0<\/p>\n<h2>\u041e\u0431\u043b\u043e\u043c \u0432\u0442\u043e\u0440\u043e\u0439: \u0438\u0433\u0440\u0430\u0435\u0442, \u043d\u043e \u0434\u0440\u0435\u0431\u0435\u0437\u0436\u0438\u0442<\/h2>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430 \u044f \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u0442\u0443 \u0436\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:\u00a0<\/p>\n<pre><code class=\"bash\">sudo \/mnt\/data\/pianoteq\/'Pianoteq 8'\/arm-64bit\/'Pianoteq 8' --headless --serve :8081<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 Pianoteq \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0438\u0433\u0440\u0430\u043b \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430. \u0423\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e.<\/p>\n<p>\u041d\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043c\u0443\u0437\u044b\u043a\u043e\u0439 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0449\u0435\u043b\u0447\u043a\u0438, \u0440\u0435\u0434\u043a\u0438\u0435 \u043f\u043e\u0434\u043c\u0435\u0440\u0437\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u043b\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0438 \u043e\u0431\u0449\u0435\u0435 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0435. \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 xrun \u2014 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 CPU \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0431\u0443\u0444\u0435\u0440 \u0438 \u0432 \u0430\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u044b\u0432.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u2014 \u0438\u043b\u0438 \u0441\u0430\u043c\u043e\u0435 \u043c\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f. \u041d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c real-time-\u0430\u0443\u0434\u0438\u043e \u043d\u0430 ARM.<\/p>\n<h4>CPU governor: \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0432\u0438\u043d\u043e\u0432\u043d\u0438\u043a<\/h4>\n<p>\u0428\u0442\u0430\u0442\u043d\u043e\u0435 \u044f\u0434\u0440\u043e Wiren Board 8 \u0441\u043e\u0431\u0440\u0430\u043d\u043e \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 CPUfreq. \u042f\u0434\u0440\u043e \u0443\u043c\u0435\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430:\u00a0<\/p>\n<pre><code class=\"bash\">$ cat \/sys\/devices\/system\/cpu\/cpu0\/cpufreq\/scaling_available_governorsondemand userspace performance schedutil$ cat \/sys\/devices\/system\/cpu\/cpu0\/cpufreq\/scaling_available_frequencies288000 480000 720000 936000 1008000 1104000 1200000 1320000 1416000$ cat \/sys\/devices\/system\/cpu\/cpu*\/cpufreq\/scaling_governorschedutilschedutilschedutilschedutil<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 governor schedutil. \u0414\u043b\u044f \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u041f\u041b\u041a \u044d\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0440\u0430\u0437\u0443\u043c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435: \u043d\u0438\u0437\u043a\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u2014 \u043d\u0438\u0436\u0435 \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430.<\/p>\n<p>\u041d\u043e \u0434\u043b\u044f real-time-\u0430\u0443\u0434\u0438\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439.<\/p>\n<h4>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 CPUfreq\u00a0<\/h4>\n<p>\u0423 \u044f\u0434\u0440\u0430 Linux \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 CPU.\u00a0<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Governor<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">performance<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u0435\u0433\u0434\u0430 \u0434\u0435\u0440\u0436\u0438\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">userspace<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0430\u0441\u0442\u043e\u0442\u0443 \u0437\u0430\u0434\u0430\u0435\u0442 userspace<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ondemand<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u043e\u0434 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">schedutil<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u0447 Linux<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430 Wiren Board 8 schedutil \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0432\u0435\u0440\u0445 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 PELT (Per-Entity Load Tracking) \u2014 \u044d\u0442\u043e \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 CPU.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0432\u0441\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e. \u0414\u043b\u044f \u0430\u0443\u0434\u0438\u043e \u2014 \u043d\u0435\u0442.\u00a0<\/p>\n<h4>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u21161: governor \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u00a0<\/h4>\n<p>\u0410\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a Pianoteq \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0435 2,7 \u043c\u0441:<\/p>\n<pre><code class=\"bash\">128 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 \/ 48 \u043a\u0413\u0446 \u2248 2,7 \u043c\u0441<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d:<\/p>\n<ol>\n<li>\n<p>\u043f\u0440\u043e\u0441\u043d\u0443\u0442\u044c\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u043e\u0440\u0446\u0438\u044e \u0437\u0432\u0443\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0435 \u0432 ALSA;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u0441\u043d\u0443\u0442\u044c.<\/p>\n<\/li>\n<\/ol>\n<p>\u041d\u043e schedutil \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0441 \u0438\u043d\u0435\u0440\u0446\u0438\u0435\u0439. PELT \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0438\u043a\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438, \u0430 \u0441\u0430\u043c governor \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c:<\/p>\n<pre><code class=\"bash\">rate_limit_us = 10000<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0447\u0430\u0449\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0430 \u0432 10 \u043c\u0441 \u043c\u0435\u043d\u044f\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043e\u043d \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442.<\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 Pianoteq \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f, \u0430 CPU \u0432\u0441\u0435 \u0435\u0449\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u043d\u0438\u0436\u0435\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435. \u041f\u043e\u043a\u0430 governor \u00ab\u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u00bb, \u0447\u0442\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u044b\u0440\u043e\u0441\u043b\u0430, \u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0443\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u0443\u0444\u0435\u0440.<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c xrun.<\/p>\n<h4>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u21162: \u0441\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0442\u043e\u0436\u0435 \u0441\u0442\u043e\u044f\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/h4>\n<p>\u041d\u0430 Allwinner T507 \u0441\u043c\u0435\u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 250 \u043c\u043a\u0441.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 CPU \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 bypass-\u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u043e\u043a\u043e\u043b\u043e 24 \u041c\u0413\u0446, \u043f\u043e\u043a\u0430 PLL \u0437\u0430\u043d\u043e\u0432\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e.<\/p>\n<p>\u041d\u0430 \u0431\u0443\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 128 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 \u043e\u0434\u043d\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u044a\u0435\u0434\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0434\u0435\u0441\u044f\u0442\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 callback-\u0430.<\/p>\n<p>\u0421\u0430\u043c\u043e \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438 \u0442\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0435, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0442\u0430\u043a\u0438\u0445 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0445\u0432\u0430\u0442\u0430\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0449\u0435\u043b\u0447\u043a\u0438.<\/p>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0445 \u0441\u043b\u044b\u0448\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u043f\u0430\u0443\u0437: governor \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 callback \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u043d\u0430 \u043d\u0435\u0439 \u0438 \u043d\u0435 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0435\u0434\u043b\u0430\u0439\u043d.<\/p>\n<h4>\u041b\u0435\u043a\u0430\u0440\u0441\u0442\u0432\u043e: performance<\/h4>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u2014 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c CPU \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435.<\/p>\n<p>\u0420\u0430\u0437\u043e\u0432\u043e:<\/p>\n<pre><code class=\"bash\">for c in \/sys\/devices\/system\/cpu\/cpu*\/cpufreq\/scaling_governor; do    echo performance | sudo tee \"$c\" &gt;\/dev\/nulldone<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:   <\/p>\n<pre><code class=\"bash\">$ cat \/sys\/devices\/system\/cpu\/cpu0\/cpufreq\/scaling_cur_freq1416000<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u044f\u0434\u0440\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 1,416 \u0413\u0413\u0446. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 systemd<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u044f \u0441\u0434\u0435\u043b\u0430\u043b systemd-\u0441\u0435\u0440\u0432\u0438\u0441:<\/p>\n<pre><code class=\"bash\">tee \/etc\/systemd\/system\/cpu-performance.service &lt;&lt;'EOF'[Unit]Description=Lock CPU governor to performance for real-time audioAfter=multi-user.target[Service]Type=oneshotExecStart=\/bin\/sh -c 'for c in \/sys\/devices\/system\/cpu\/cpu*\/cpufreq\/scaling_governor; do echo performance &gt; $c; done'RemainAfterExit=yes[Install]WantedBy=multi-user.targetEOFsystemctl enable --now cpu-performance.service<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440:   <\/p>\n<pre><code class=\"bash\">RemainAfterExit=yes<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0411\u0435\u0437 \u043d\u0435\u0433\u043e systemd \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 oneshot-\u044e\u043d\u0438\u0442 \u043a\u0430\u043a inactive \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0438 \u043f\u043e\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435, \u0431\u0443\u0434\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\u00a0<\/p>\n<p>\u0421 RemainAfterExit=yes \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f active, \u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442.<\/p>\n<p>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 cpufrequtils \u0438:<\/p>\n<pre><code class=\"bash\">GOVERNOR=performance<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0432 \/etc\/default\/cpufrequtils.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u0435\u0449\u0435 \u043d\u0438\u0436\u0435 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c:<\/p>\n<pre><code class=\"bash\">cpufreq.default_governor=performance<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0447\u0435\u0440\u0435\u0437 bootargs U-Boot. \u0422\u043e\u0433\u0434\u0430 governor \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 CPUfreq, \u0431\u0435\u0437 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u044f\u0434\u0440\u0430 \u0438 \u0441\u0442\u0430\u0440\u0442\u043e\u043c systemd.\u00a0<\/p>\n<h4>\u0410 \u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0435\u0435\u0442\u0441\u044f?<\/h4>\n<p>\u0424\u0438\u043a\u0441\u0430\u0446\u0438\u044f CPU \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0437\u0432\u0443\u0447\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0432\u043e\u0436\u043d\u043e, \u043d\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u044b\u043c\u0438.<\/p>\n<p>\u041f\u043e\u0434 \u043f\u043e\u043b\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439:<\/p>\n<pre><code class=\"bash\">$ for z in \/sys\/class\/thermal\/thermal_zone*\/temp; do    echo \"$z: $(cat $z)\"done<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">\/sys\/class\/thermal\/thermal_zone1\/temp: 53603\/sys\/class\/thermal\/thermal_zone2\/temp: 53684\/sys\/class\/thermal\/thermal_zone3\/temp: 55709\/sys\/class\/thermal\/thermal_zone4\/temp: 53198<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 53\u201356 \u00b0C \u043d\u0430 \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u043c \u043e\u0445\u043b\u0430\u0436\u0434\u0435\u043d\u0438\u0438.<\/p>\n<p>Allwinner T507 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u0442\u044c \u0431\u043b\u0438\u0436\u0435 \u043a 90 \u00b0C, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u043f\u0430\u0441 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439.<\/p>\n<p>\u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0449\u0438\u0442\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432\u0440\u044f\u0434 \u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0445\u0443\u0436\u0435. \u0425\u043e\u0442\u044f \u043b\u0435\u0442\u043e\u043c \u0432 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u043c \u0448\u043a\u0430\u0444\u0443 \u0431\u0435\u0437 \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0441\u0442\u043e\u0438\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0410 \u0447\u0442\u043e \u0441 \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435\u043c?<\/p>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u2014 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0442.<\/p>\n<p>\u042f \u043f\u043e\u0432\u0435\u0441\u0438\u043b \u0448\u0443\u043d\u0442 \u0432 \u0446\u0435\u043f\u044c \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0438 \u0438\u0437\u043c\u0435\u0440\u0438\u043b \u0442\u043e\u043a \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u043e\u043c \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0440\u0435\u0436\u0438\u043c\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b. \u041d\u0430 \u0445\u043e\u043b\u043e\u0441\u0442\u043e\u043c \u0445\u043e\u0434\u0443 \u0441 governor schedutil \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u043e\u043a\u043e\u043b\u043e 1,99 \u0412\u0442, \u0441 performance \u2014 2,05 \u0412\u0442. \u041f\u0440\u0438\u0431\u0430\u0432\u043a\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 0,1 \u0412\u0442.<\/p>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0433\u0440\u044b \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f: 2,40 \u0412\u0442 \u043f\u0440\u043e\u0442\u0438\u0432 2,47 \u0412\u0442. \u041f\u0440\u0438 \u043f\u043e\u043b\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u044f\u0434\u0435\u0440 \u043e\u0431\u0430 governor \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u2014 \u043e\u043a\u043e\u043b\u043e 3,2 \u0412\u0442.<\/p>\n<h4>\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/h4>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0430\u0441\u044c, \u043d\u043e \u0440\u0435\u0434\u043a\u0438\u0435 xrun \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0438\u0441\u044c. \u041f\u0440\u0438\u0447\u0435\u043c \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u043e\u043d\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u0430 \u043d\u0435 \u043d\u0430 \u043f\u0438\u043a\u0430\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0411\u044b\u043b\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u043a\u0442\u043e-\u0442\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u0442 \u0443 \u0430\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435 Linux. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0430\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a Pianoteq \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 CFS \u0441 nice-\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c 0. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442, \u043b\u044e\u0431\u043e\u0439 wb-mqtt-serial, journald \u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u043d\u0430\u0434\u043e\u043b\u0433\u043e \u0432\u044b\u0442\u0435\u0441\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.<\/p>\n<p>\u0414\u043b\u044f real-time-\u0430\u0443\u0434\u0438\u043e \u044d\u0442\u043e\u0433\u043e \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 xrun.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043b\u0438\u043c\u0438\u0442\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u044f\u0434\u0440\u043e \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c real-time-\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 (rtprio) \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0432 \u041e\u0417\u0423 (memlock). \u042f \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b \u044d\u0442\u0438 \u043b\u0438\u043c\u0438\u0442\u044b \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b audio \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b Debian \u0434\u043b\u044f \u0430\u0443\u0434\u0438\u043e\u0437\u0430\u0434\u0430\u0447 \u2014 \u0438 \u0434\u043b\u044f root, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Pianoteq \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0442 \u043d\u0435\u0433\u043e.<\/p>\n<pre><code class=\"bash\">tee \/etc\/security\/limits.d\/99-audio.conf &lt;&lt;'EOF'@audio   -  rtprio     95@audio   -  memlock    unlimited@audio   -  nice       -19root     -  rtprio     95root     -  memlock    unlimitedEOF<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u044b \u0434\u0432\u0435 \u0432\u0435\u0449\u0438:<\/p>\n<ul>\n<li>\n<p>rtprio 95 \u2014 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 real-time-\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>memlock unlimited \u2014 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c Pianoteq \u0432 swap.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430 Wiren Board \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0435\u0441\u0442\u044c swap-\u0440\u0430\u0437\u0434\u0435\u043b \u043d\u0430 256 \u041c\u0411. \u0415\u0441\u043b\u0438 \u044f\u0434\u0440\u043e \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442 \u0447\u0430\u0441\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u0434\u0432\u0438\u0436\u043a\u0430 \u043d\u0430 eMMC, \u0449\u0435\u043b\u0447\u043e\u043a \u0432 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0430\u0445 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432 \u043a\u043b\u0430\u0441\u0441 real-time \u0437\u0430\u0434\u0430\u0447 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 launcher:<\/p>\n<pre><code class=\"bash\">tee \/usr\/local\/bin\/pianoteq &lt;&lt;'EOF'#!\/bin\/shexec chrt -f 80 \/mnt\/data\/pianoteq\/'Pianoteq 8'\/arm-64bit\/'Pianoteq 8' \"$@\"EOFchmod +x \/usr\/local\/bin\/pianoteq<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043b\u044e\u0447 \u0443\u0442\u0438\u043b\u0438\u0442\u044b:   <\/p>\n<pre><code class=\"bash\">chrt -f 80<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0437\u0430\u0434\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f SCHED_FIFO \u0438 real-time-\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 80 \u2014 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u044f\u0434\u0440\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442 Pianoteq \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a\u0430 \u0438 \u043d\u0435 \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u0435\u0442 \u0435\u0433\u043e, \u043f\u043e\u043a\u0430 \u0442\u043e\u0442 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438\u043b\u0438 \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c.\u00a0<\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 99? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u043e\u043f\u0430\u0441\u043d\u043e.<\/p>\n<p>\u0412\u044b\u0448\u0435 80 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 IRQ,<\/p>\n<\/li>\n<li>\n<p>\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u044f\u0434\u0440\u0430,<\/p>\n<\/li>\n<li>\n<p>migration\/*, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u0435\u0436\u0434\u0443 \u044f\u0434\u0440\u0430\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0432\u043e\u043e\u0431\u0449\u0435 \u0443 \u0432\u0441\u0435\u0445, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0432\u0435\u0441\u0438\u0442\u044c \u043d\u0430\u043c\u0435\u0440\u0442\u0432\u043e.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430:<\/p>\n<pre><code class=\"bash\">$ ps -eo pid,pri,rtprio,policy,pcpu,comm | grep Pianoteq17952 120 80 FF 212 Pianoteq<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>POL=FF \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 SCHED_FIFO, \u0430 CPU Usage \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u0430 200% \u2014 Pianoteq \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u044f\u0434\u0440\u0430\u043c \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0441\u043f\u043e\u0442\u044b\u043a\u0430\u0435\u0442\u0441\u044f \u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a Linux.<\/p>\n<h2>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438: \u0431\u0443\u0444\u0435\u0440, \u0433\u043e\u043b\u043e\u0441\u0430, \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441\u00a0<\/h2>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u044f \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c \u0441\u0430\u043c\u043e\u0433\u043e Pianoteq. \u0418\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0434\u043e\u0431\u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f xrun \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0439 \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u0433\u0440\u044b.\u00a0<\/p>\n<h4>\u0420\u0430\u0437\u043c\u0435\u0440 \u0430\u0443\u0434\u0438\u043e\u0431\u0443\u0444\u0435\u0440\u0430<\/h4>\n<pre><code class=\"bash\">audioDeviceBufferSize: 128 \u2192 512<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0428\u0442\u0430\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u043c. \u0411\u0443\u0444\u0435\u0440 128 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 \u043f\u0440\u0438 48 \u043a\u0413\u0446 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u043a\u043e\u043b\u043e 2,7 \u043c\u0441 \u043d\u0430 \u0440\u0430\u0441\u0447\u0435\u0442 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043f\u043e\u0440\u0446\u0438\u0438 \u0437\u0432\u0443\u043a\u0430.<\/p>\n<p>\u0414\u043b\u044f Cortex-A53 \u043d\u0430 1,4 \u0413\u0413\u0446 \u044d\u0442\u043e\u0433\u043e \u0443\u0436\u0435 \u043c\u0430\u043b\u043e.<\/p>\n<p>\u0411\u0443\u0444\u0435\u0440 512 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u043a\u043d\u043e \u0434\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10,7 \u043c\u0441 \u2014 \u043f\u043e\u0447\u0442\u0438 \u0432 \u0447\u0435\u0442\u044b\u0440\u0435 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 callback.<\/p>\n<p>\u041d\u0430 \u0441\u043b\u0443\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043e\u043a\u043e\u043b\u043e 10 \u043c\u0441 \u043e\u0449\u0443\u0449\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00ab\u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0441 \u0437\u0430\u043b\u0438\u043f\u0430\u043d\u0438\u0435\u043c\u00bb, \u043d\u043e \u0432\u0441\u0435 \u0435\u0449\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u0437\u043e\u043d\u0435 \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e\u0439 \u0438\u0433\u0440\u044b.<\/p>\n<h4>\u041f\u0440\u044f\u043c\u043e\u0439 \u0432\u044b\u0432\u043e\u0434 \u0432 ALSA <\/h4>\n<pre><code class=\"bash\">audioOutputDeviceName \u2192 Direct hardware device without any conversions<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Pianoteq \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 dmix \u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043c\u0438\u043a\u0448\u0435\u0440 ALSA.<\/p>\n<p>\u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043a \u043e\u0434\u043d\u043e\u0439 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041d\u043e \u0437\u0434\u0435\u0441\u044c Pianoteq \u2014 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0430\u0443\u0434\u0438\u043e\u043a\u043b\u0438\u0435\u043d\u0442.<\/p>\n<p>\u041f\u0440\u044f\u043c\u043e\u0439 \u0432\u044b\u0432\u043e\u0434 \u0447\u0435\u0440\u0435\u0437 hw: \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a\u0430, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0439 \u044f\u0434\u0440\u0430 \u0438 \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u0436\u0438\u0442\u0442\u0435\u0440\u0430.<\/p>\n<h4>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u0444\u043e\u043d\u0438\u0438<\/h4>\n<pre><code class=\"bash\">voices: 48 \u2192 32<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0444\u043e\u043d\u0438\u044f \u0434\u043b\u044f Cortex-A53 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u0430.<\/p>\n<p>32 \u0433\u043e\u043b\u043e\u0441\u043e\u0432 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u2014 \u043a\u0440\u043e\u043c\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u00ab\u0422\u0440\u0430\u043d\u0441\u0446\u0435\u043d\u0434\u0435\u043d\u0442\u043d\u044b\u0445 \u044d\u0442\u044e\u0434\u043e\u0432\u00bb \u041b\u0438\u0441\u0442\u0430.<\/p>\n<h4>Sympathetic resonance: \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u043e\u0436\u0438\u0440\u0430\u0442\u0435\u043b\u044c CPU\u00a0<\/h4>\n<p>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u044f\u0442\u0430\u043b\u0430\u0441\u044c \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Performance.<\/p>\n<p>\u0422\u0430\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u044f:<\/p>\n<pre><code class=\"bash\">Sympathetic resonance<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441 \u0441\u0442\u0440\u0443\u043d: \u043a\u043e\u0433\u0434\u0430 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043a\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445.<\/p>\n<p>\u041d\u0430 \u043c\u043e\u0449\u043d\u043e\u043c \u041f\u041a \u044d\u0444\u0444\u0435\u043a\u0442 \u0437\u0432\u0443\u0447\u0438\u0442 \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u043e. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u0435\u0435 \u0438 \u0431\u043e\u0433\u0430\u0447\u0435.<\/p>\n<p>\u041d\u043e \u043d\u0430 Cortex-A53 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 DSP-\u0431\u043b\u043e\u043a \u0437\u0430\u0431\u0438\u0440\u0430\u043b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 20\u201330% CPU.<\/p>\n<p>\u041f\u043e\u043a\u0430 \u044d\u0444\u0444\u0435\u043a\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0441\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c, Pianoteq \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u043b \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0435\u0434\u043b\u0430\u0439\u043d \u0430\u0443\u0434\u0438\u043e\u0431\u0443\u0444\u0435\u0440\u0430.<\/p>\n<p>\u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u0448\u044c \u2014 xrun \u0438\u0441\u0447\u0435\u0437\u0430\u044e\u0442.<\/p>\n<h4>Fidelity\u00a0<\/h4>\n<p>\u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430:\u00a0<\/p>\n<pre><code class=\"bash\">Fidelity \u2192 \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u0443\u043f\u0435\u043d\u044c \u043d\u0438\u0436\u0435<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430 \u0441\u043b\u0443\u0445 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 CPU \u043f\u0430\u0434\u0430\u0435\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0449\u0443\u0442\u0438\u043c\u043e.\u00a0<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>Pianoteq \u043d\u0430 Wiren Board 8 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>\u0418 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f, \u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0438\u0433\u0440\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u043b\u0438\u0444\u043e\u043d\u0438\u044f \u0434\u043e 32 \u0433\u043e\u043b\u043e\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u043a\u043e\u043b\u043e 10 \u043c\u0441;<\/p>\n<\/li>\n<li>\n<p>\u0431\u0435\u0437 \u0449\u0435\u043b\u0447\u043a\u043e\u0432 \u0438 xrun;<\/p>\n<\/li>\n<li>\n<p>\u0441 real-time-\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0438 USB-MIDI.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043e \u043a\u043e\u043d\u0446\u0435\u0440\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0434\u0430\u043b\u0435\u043a\u043e. \u041d\u043e \u0438\u0433\u0440\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e.<\/p>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f Pianoteq \u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 180\u2013230%, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0434\u0432\u0430 \u044f\u0434\u0440\u0430 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u043f\u0430\u0441 \u0434\u043b\u044f \u0448\u0442\u0430\u0442\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 Wiren Board \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f: wb-mqtt-serial, Modbus-\u043e\u043f\u0440\u043e\u0441 \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0444\u043e\u043d\u0435.\u00a0<\/p>\n<p>\u041e\u0446\u0435\u043d\u0438\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u0430\u043c\u0438:<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6a30e1776358d8af31499e18\" data-style=\"\" id=\"6a30e1776358d8af31499e18\" width=\"\" data-habr-games=\"\"><\/div>\n<div class=\"embed_link\">\n<div class=\"embed__thumb\" style=\"background-image: url(&quot;https:\/\/peertube.wirenboard.com\/lazy-static\/previews\/29776c36-f1de-465e-a6c0-01c3edebd3d5.jpg&quot;);\"><\/div>\n<div class=\"embed__caption\">\n<div class=\"embed__caption-title\"><span>\u0420\u043e\u044f\u043b\u044c \u043d\u0430 \u0434\u0430\u0447\u0435: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e Wiren Board 8 \u043a\u0430\u043a real-time \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440<\/span><\/div>\n<p><a href=\"https:\/\/peertube.wirenboard.com\/w\/ra91w5tdYCgwJbtTKTepJg\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"embed__caption-host\">peertube.wirenboard.com<\/a><\/div>\n<\/div>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430: \u043c\u043e\u0436\u043d\u043e \u0438\u0433\u0440\u0430\u0442\u044c \u0428\u043e\u043f\u0435\u043d\u0430 \u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u0442\u0447\u0438\u043a\u0438 \u043f\u043e RS-485.\u00a0<\/p>\n<p>\u0417\u0430 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u044e\u0436\u0435\u0442\u043e\u043c \u0437\u0434\u0435\u0441\u044c, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b. Pianoteq \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u043b \u0432 \u0440\u043e\u043b\u0438 \u0441\u0442\u0440\u0435\u0441\u0441-\u0442\u0435\u0441\u0442\u0430: \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441 \u0441\u0438\u043d\u0442\u0435\u0437\u043e\u043c \u0437\u0432\u0443\u043a\u0430 \u043f\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0441 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043a\u043e\u043b\u043e 10 \u043c\u0441 \u0438 \u0431\u0435\u0437 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u0441\u0440\u044b\u0432\u043e\u0432. \u042d\u0442\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0430 \u043d\u0435\u043c \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u044e\u0431\u0430\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0443 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0430\u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0443\u0436\u043d\u044b \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435, \u0431\u043b\u0438\u0437\u043a\u043e\u043c \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. <\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1047860\/\">https:\/\/habr.com\/ru\/articles\/1047860\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u042f \u0438\u0433\u0440\u0430\u044e \u043d\u0430 \u043f\u0438\u0430\u043d\u0438\u043d\u043e \u0441 \u0434\u0435\u0442\u0441\u0442\u0432\u0430. \u041a\u043b\u0430\u0441\u0441\u0438\u043a\u0430, \u0441\u0430\u0443\u043d\u0434\u0442\u0440\u0435\u043a\u0438, \u0438\u043c\u043f\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u0438 \u2013 \u0440\u0435\u043f\u0435\u0440\u0442\u0443\u0430\u0440 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043d\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0430 \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u0441\u0435\u0441\u0442\u044c \u0437\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f. \u041b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u0434\u043e\u0445\u043d\u0443\u0442\u044c, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a!\u00a0 \u041d\u0430 \u043c\u043e\u0435\u0439 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e Pianoteq \u043e\u0442 Modartt \u2014 \u043e\u043d \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u0435\u043d\u044f \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442: \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f, \u043d\u043e \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e \u0437\u0432\u0443\u043a\u043e\u043c.\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u0432\u043d\u043e\u00a0 \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u0443\u043c\u043d\u0443\u044e \u0434\u0430\u0447\u0443 \u043d\u0430 \u0431\u0430\u0437\u0435 \u041f\u041b\u041a \u043f\u043e\u0434 Linux \u0438 \u0434\u0430\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043e\u0431 \u044d\u0442\u043e\u043c \u0441\u0442\u0430\u0442\u044c\u044e. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0432\u043e\u0434\u043e\u0441\u043d\u0430\u0431\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u043e\u0442\u043e\u043f\u043b\u0435\u043d\u0438\u0435\u043c. \u041f\u043e\u0442\u043e\u043c \u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u044e \u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0435 Doom \u043d\u0430 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0441\u044f: \u0441\u043c\u043e\u0433\u0443 \u043b\u0438 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0434 \u0441\u0432\u043e\u0435 \u0445\u043e\u0431\u0431\u0438? \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043b\u0438 \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0434\u0430\u0447\u0435 \u043d\u0435 \u0445\u0443\u0436\u0435, \u0447\u0435\u043c \u0434\u043e\u043c\u0430?\u00a0Doom \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0445\u043e\u0442\u044c \u0438 \u043a\u0443\u043b\u044c\u0442\u043e\u0432\u0430\u044f, \u043d\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0410 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441 real-time-\u0441\u0438\u043d\u0442\u0435\u0437\u043e\u043c \u0430\u0443\u0434\u0438\u043e? \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0437\u0432\u0443\u043a \u2014 \u043d\u0443\u0436\u043d\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430.\u00a0\u0421\u0431\u043e\u0440\u043a\u0438 Pianoteq \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b, \u043d\u043e \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043d\u0430 \u0441\u0442\u0443\u0434\u0438\u0439\u043d\u044b\u0445 Mac \u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0441\u0442\u0430\u043d\u0446\u0438\u044f\u0445 \u2014 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435, \u0432 \u0441\u0442\u0443\u0434\u0438\u044f\u0445 \u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430\u0434 \u043a\u0438\u043d\u043e\u043c\u0443\u0437\u044b\u043a\u043e\u0439. \u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u044f \u043f\u0440\u0438\u0432\u0435\u0437 \u043d\u0430 \u0434\u0430\u0447\u0443 USB-\u0426\u0410\u041f, MIDI-\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0441 \u043f\u0435\u0434\u0430\u043b\u044c\u044e \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b \u0438\u0445 \u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443\u2026\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u043e\u0442\u043e: \u044f \u0434\u043e\u0441\u0442\u0430\u043b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0437 \u0449\u0438\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u043e\u0442\u043e\u0416\u0435\u043b\u0435\u0437\u043d\u044b\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438Wiren Board 8 \u2014 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0430 DIN-\u0440\u0435\u0439\u043a\u0443 \u0441 4-\u044f\u0434\u0435\u0440\u043d\u044b\u043c SoC Allwinner T507, 4 \u0413\u0411 \u041e\u0417\u0423 \u0438 64 \u0413\u0411 eMMC. \u041f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 Raspberry Pi 3 Model B+.\u00a0\u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b \u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443:FiiO KA13 \u2014 USB-\u0426\u0410\u041f \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 USB Audio Class. \u041f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 USB-\u0426\u0410\u041f: Linux \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u00a0 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0431\u0435\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 snd-usb-audio. KA13 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439.Roland EDIROL UM-1 \u2014 \u0441\u0442\u0430\u0440\u044b\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 USB-MIDI-\u0430\u0434\u0430\u043f\u0442\u0435\u0440. \u0427\u0435\u0440\u0435\u0437 5-pin DIN \u043a \u043d\u0435\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0435 \u043f\u0438\u0430\u043d\u0438\u043d\u043e \u0441 MIDI-\u0432\u044b\u0445\u043e\u0434\u043e\u043c.Korg nanoKONTROL2 \u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 MIDI-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441 \u0444\u0435\u0439\u0434\u0435\u0440\u0430\u043c\u0438 \u0438 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044f \u043c\u0435\u043d\u044f\u043b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440\u0430 \u043d\u0430 \u043b\u0435\u0442\u0443, \u0431\u0435\u0437 GUI.HDMI-\u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0447\u0435\u0440\u0435\u0437 WBE2-HDMI (\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439, \u0447\u0442\u043e \u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e Doom) \u2014 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Pianoteq.\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Wiren Board 8 \u0432 \u0449\u0438\u0442\u0435. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 MIDI-\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f USB-\u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u0435\u043c\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u043e\u0442\u043e\u041c\u043e\u0436\u043d\u043e \u0438\u0433\u0440\u0430\u0442\u044c \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0449\u0438\u0442\u043e\u043c, \u043d\u043e \u044d\u0442\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u0431\u0435\u0437 USB-\u0443\u0434\u043b\u0438\u043d\u0438\u0442\u0435\u043b\u044f \u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0430 \u043f\u044f\u0442\u044c \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044cPianoteq: \u0437\u0430 \u0447\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u00ab\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e\u00bb (Kontakt, Vienna Symphonic Library \u2026) \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u0430\u043a \u0441\u044d\u043c\u043f\u043b\u0435\u0440\u044b. \u041d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0443 \u043d\u0438\u0445 \u043b\u0435\u0436\u0430\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0436\u0438\u0432\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430: \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0430, \u043a\u0430\u0436\u0434\u0430\u044f \u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044f \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441 \u043f\u0435\u0434\u0430\u043b\u044c\u044e \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0431\u0435\u0437 \u043d\u0435\u0435. \u041d\u0430\u0436\u0430\u043b \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u044b\u0431\u0440\u0430\u043b\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0441\u044d\u043c\u043f\u043b \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b\u0430 \u0435\u0433\u043e. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435, \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 CPU, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435.\u00a0Pianoteq \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u0438\u043d\u0430\u0447\u0435. \u041e\u043d \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u0437\u0432\u0443\u043a, \u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u043f\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0444\u043e\u0440\u0442\u0435\u043f\u0438\u0430\u043d\u043e. \u041a\u0430\u0436\u0434\u0430\u044f \u043d\u043e\u0442\u0430 \u2014 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439. \u041f\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 48 \u043a\u0413\u0446 \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 48 000 \u0442\u0430\u043a\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0427\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u0437\u0438\u0442\u044c, \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u0432 \u0432\u0435\u0440\u0445\u043d\u0438\u043c\u0438 \u043e\u0431\u0435\u0440\u0442\u043e\u043d\u0430\u043c\u0438, \u2014 \u043d\u0430 \u0441\u043b\u0430\u0431\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u044d\u0442\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0432\u044b\u0445\u043e\u0434\u043e\u043c.\u00a0\u041a\u0440\u043e\u043c\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u043d\u0443\u0436\u0435\u043d \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043e\u0442\u043a\u043b\u0438\u043a. \u0414\u043b\u044f \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e\u0439 \u0438\u0433\u0440\u044b \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u0438 \u0437\u0432\u0443\u043a\u043e\u043c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10 \u043c\u0441.Pianoteq \u043c\u043e\u0439 Mac \u0441 M2 \u043d\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u043e\u043d \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0438 \u0437\u0430\u0438\u0433\u0440\u0430\u0435\u0442 \u043d\u0430 Cortex-A53, \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u0432\u043e\u0434 \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a\u0438\u0435 \u0435\u0449\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440.\u041f\u043b\u0430\u043d \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u041f\u043b\u0430\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u043e\u0441\u0442\u043e: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Pianoteq \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438, \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 GUI \u043f\u043e X-forwarding, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 headless, \u0431\u0435\u0437 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430. \u0415\u0441\u043b\u0438 Cortex-A53 \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u2014 \u043f\u043e\u0434\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c Pianoteq.\u00a0\u042f \u0438\u0441\u0445\u043e\u0434\u0438\u043b \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f: Debian 11, \u0448\u0442\u0430\u0442\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 Wiren Board 8 \u0438 USB MIDI Class \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0432\u0441\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0438 \u0441\u0443\u0440\u043e\u0432\u0430\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u044a\u0435\u043b\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445. \u041e\u0431\u043b\u043e\u043c \u043f\u0435\u0440\u0432\u044b\u0439: ALSA \u043d\u0435 \u043e\u0442\u0434\u0430\u0451\u0442 MIDI\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Pianoteq \u043f\u0440\u043e\u0448\u043b\u0430 \u0441\u043a\u0443\u0447\u043d\u043e: \u044f \u0441\u043a\u0430\u0447\u0430\u043b ARM64-\u0430\u0440\u0445\u0438\u0432 \u0441 \u0441\u0430\u0439\u0442\u0430 Modartt \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u0432 \/mnt\/data\/pianoteq. Root-\u0440\u0430\u0437\u0434\u0435\u043b \u043d\u0430 Wiren Board 8 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 2 \u0413\u0411, \u0430 \u043d\u0430 \/mnt\/data \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u043e\u043a\u043e\u043b\u043e 56 \u0413\u0411. \u0418 \u0442\u0443\u0442 \u043d\u0430\u0447\u0430\u043b\u0438\u0441\u044c \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.\u00a0Pianoteq \u2014 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 JUCE. \u0415\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u0438\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043b\u0438 \u043a X11, OpenGL, freetype \u0438 \u0435\u0449\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0412 \u0448\u0442\u0430\u0442\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435 Wiren Board \u043d\u0438\u0447\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442: \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0431\u0435\u0437 \u0433\u0440\u0430\u0444\u0438\u043a\u0438.\u00a0\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0435\u0449\u0435 \u0434\u043e \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u043b\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u00a0 \u2014 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041d\u0435\u0442 libx11-6 \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 segfault \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c Pianoteq \u043f\u043e\u0439\u043c\u0435\u0442, \u0447\u0442\u043e \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441 &#8212;headless.\u00a0\u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043f\u0440\u043e\u0431 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432:\u00a0apt install -y \\    libgl1 libx11-6 libxext6 libxrender1 libxcursor1 libxrandr2 \\    libxinerama1 libxi6 libfreetype6 libfontconfig1 \\    libxcb-keysyms1 libxcb-icccm4 libxcb-randr0 libxcb-render-util0 \\    libxcb-image0 libxcb-shape0 libxcb-xkb1 libxcb-xinerama0 \\    libxkbcommon-x11-0 xauth\u0421\u043f\u0438\u0441\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043b\u0438\u043d\u043d\u044b\u043c, \u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u043b\u043e\u0433\u0438\u0447\u0435\u043d:libgl1, libx11-6, libxext6 \u2014 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 GL+X11;\u043d\u0430\u0431\u043e\u0440 libxcb-* \u2014 low-level X-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 Qt \u0438 JUCE;libfreetype6 \u0438 libfontconfig1 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0440\u0435\u043d\u0434\u0435\u0440\u0430 \u0448\u0440\u0438\u0444\u0442\u043e\u0432: Pianoteq \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0438\u0445 \u0435\u0449\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435;xauth \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043b\u044f ssh -X.\u041a Pianoteq \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f, \u043d\u043e \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0435\u0449\u0435 \u043f\u0430\u0440\u0443 \u0443\u0442\u0438\u043b\u0438\u0442, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e: apt install -y p7zip-full alsa-utilsp7zip-full \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 pianoteq_linux_v843.7z;alsa-utils \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442 amidi, aconnect, aplay \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 ALSA \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 Linux, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0430\u0443\u0434\u0438\u043e, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c\u044e \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 MIDI-\u0441\u043e\u0431\u044b\u0442\u0438\u0439.\u00a0\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e Pianoteq \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f:\/mnt\/data\/pianoteq\/&#8217;Pianoteq 8&#8217;\/arm-64bit\/&#8217;Pianoteq 8&#8242; &#8212;headless &#8212;serve :8081\u0418 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0436\u0435 \u0441\u0442\u0440\u043e\u043a\u0435 \u043b\u043e\u0433\u0430 \u044f \u0443\u0432\u0438\u0434\u0435\u043b:   ALSA lib seq_hw.c:466:(snd_seq_hw_open) open \/dev\/snd\/seq failed:    No such file or directory\u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Pianoteq \u2014 \u043d\u043e\u043b\u044c MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0425\u043e\u0442\u044f lsusb \u0438 amidi -l \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u0432\u0441\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 USB-MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0413\u0434\u0435-\u0442\u043e \u043e\u043d\u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438\u0441\u044c.\u00a0\u0413\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430ALSA \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 MIDI.Rawmidi\u041d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a \/dev\/snd\/midiCXDY, \u0433\u0434\u0435 X \u2014 \u043d\u043e\u043c\u0435\u0440 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b, Y \u2014 \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0442\u0443\u0434\u0430-\u043e\u0431\u0440\u0430\u0442\u043d\u043e.Rawmidi \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e USB MIDI Class-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u0415\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u043f\u0446\u0438\u044f Linux-\u044f\u0434\u0440\u0430:CONFIG_SND_RAWMIDISequencer\u042d\u0442\u043e \u0443\u0436\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0448\u0435 \u2014 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f MIDI-\u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438.\u0418\u043c\u0435\u043d\u043d\u043e sequencer \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 aconnect -l, \u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e Linux-\u0430\u0443\u0434\u0438\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 MIDI. \u0414\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u0430 \u043e\u043f\u0446\u0438\u044f:CONFIG_SND_SEQUENCER\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430 Wiren Board:   CONFIG_SND=yCONFIG_SND_USB_AUDIO=y        \u2190 USB-\u0430\u0443\u0434\u0438\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442CONFIG_SND_RAWMIDI=y          \u2190 raw MIDI \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442# CONFIG_SND_SEQUENCER is not set\u041b\u043e\u0433\u0438\u0447\u043d\u043e: \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 sequencer \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u043d\u0443\u0436\u0435\u043d.\u00a0\u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u043c\u00a0\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u044b\u043c: \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e snd-seq*.ko out-of-tree, \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0438 \u0432 \/lib\/modules\/&#8230;, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 modprobe \u2014 \u0438 \u0433\u043e\u0442\u043e\u0432\u043e.\u0422\u0430\u043a \u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u043b.\u041c\u043e\u0434\u0443\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. modprobe snd-seq \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a. \/dev\/snd\/seq \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f. aconnect -l \u043d\u0430\u0447\u0430\u043b \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c.\u041d\u043e MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 sequencer \u0442\u0430\u043a \u0438 \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c.\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 ALSA:#if IS_ENABLED(CONFIG_SND_SEQUENCER)    if (!rmidi-&gt;ops || !rmidi-&gt;ops-&gt;dev_register) {        if (snd_seq_device_new(&#8230;)) {            &#8230;        }    }#endif\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 #if IS_ENABLED(CONFIG_SND_SEQUENCER).\u00a0\u041a\u043e\u0433\u0434\u0430 \u044f\u0434\u0440\u043e Wiren Board \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 \u0431\u0435\u0437 sequencer-\u0430, \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 seq-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u043f\u0430\u043b \u0432 vmlinuz. \u0410 rawmidi \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c (=y) \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 \u044f\u0434\u0440\u043e.\u00a0\u0412 \u0438\u0442\u043e\u0433\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0447\u0435\u0433\u043e: \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c snd_seq_device_new() \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 MIDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u043c \u044f\u0434\u0440\u0435.\u0421 Doom \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0449\u0435: uinput \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0441\u043e\u0431\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c. \u0417\u0434\u0435\u0441\u044c \u0436\u0435 conditional compilation \u0438\u0434\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u0441\u0435\u0439 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b ALSA.\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 out-of-tree-\u043c\u043e\u0434\u0443\u043b\u0438, \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u0438\u0434\u0430:#if IS_ENABLED(&#8230;)\u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0435\u0441\u0442\u044c \u2014 \u043f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043d\u0435 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c.\u00a0\u041f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0430 \u044f\u0434\u0440\u0430\u00a0\u0423 Wiren Board 8 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0438 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0434 Doom.\u00a0\u041d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u041f\u041a \u0441 Ubuntu \u0438\u043b\u0438 Debian:sudo apt install -y build-essential bison flex bc libssl-dev libelf-dev cpio rsync kmod gcc-aarch64-linux-gnugit clone &#8212;depth 1 &#8212;branch v6.8.0-wb153 https:\/\/github.com\/wirenboard\/linux.git linux-wbcd linux-wbgit submodule update &#8212;init &#8212;depth 1 drivers\/net\/wireless\/realtek\/rtl8733bu\u0422\u0435\u0433 v6.8.0-wb153 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u044f\u0434\u0440\u0443 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 uname -r.\u0414\u0430\u043b\u044c\u0448\u0435 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u044f\u0434\u0440\u0430:cat &gt;&gt; arch\/arm64\/configs\/wb8.config &lt;&lt;&#8216;EOF&#8217;CONFIG_SND_SEQUENCER=mCONFIG_SND_SEQ_DUMMY=mCONFIG_SND_SEQ_MIDI=mCONFIG_SND_SEQ_MIDI_EVENT=mCONFIG_SND_SEQ_MIDI_EMUL=mEOF\u0421\u0431\u043e\u0440\u043a\u0430:KERNEL_FLAVOUR=wb8 FORCE_DEFAULT=y VERSION_SUFFIX=&#187;+sndseq&#187; CORES=$(nproc) .\/scripts\/package\/wb\/do_build_deb.shVERSION_SUFFIX=&#187;+sndseq&#187; \u043d\u0443\u0436\u0435\u043d, \u0447\u0442\u043e\u0431\u044b \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 linux-image-wb8 \u043f\u043e\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0442\u0435\u0440 \u043d\u0430\u0448\u0443 \u0441\u0431\u043e\u0440\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 apt upgrade.\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u0430:linux-image-wb8_6.8.0-wb153+sndseq_arm64.deblinux-headers-wb8_6.8.0-wb153+sndseq_arm64.deblinux-libc-dev_6.8.0-wb153+sndseq_arm64.deb\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430:\u00a0scp linux-image-wb8_6.8.0-wb153+sndseq_arm64.deb wb225:\/tmp\/ssh wb225 &#171;dpkg -i \/tmp\/linux-image-wb8_6.8.0-wb153+sndseq_arm64.deb &amp;&amp; reboot&#187;\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438:   $ ls \/dev\/snd\/seq\/dev\/snd\/seq$ aconnect -lclient 16: &#8216;UM-1&#8217; [type=kernel,card=0]    0 &#8216;UM-1 MIDI 1&#8217;client 28: &#8216;nanoKONTROL2&#8217;&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-483764","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/483764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=483764"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/483764\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=483764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=483764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=483764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}