{"id":106,"date":"2026-08-27T00:26:25","date_gmt":"2026-08-26T21:26:25","guid":{"rendered":"https:\/\/mzxbox.ru\/?page_id=106"},"modified":"2026-08-27T14:12:23","modified_gmt":"2026-08-27T11:12:23","slug":"106-2","status":"publish","type":"page","link":"https:\/\/mzxbox.ru\/?page_id=106","title":{"rendered":"Plugin API"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Minium Studio supports four types of user plugins:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Performer for playing musical instruments<\/li>\n\n\n\n<li>Sampler for playing drums<\/li>\n\n\n\n<li>Filter for adding sound effects to audio<\/li>\n\n\n\n<li>Action for changing notes and song tracks<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Plugins are divided into a script loaded into the host application and an HTML page that is placed in an iframe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Registration type:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FFFFFF\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>type MZXBX_PluginRegistrationInformation = {\n\tlabel: string\n\t, kind: string\n\t, purpose: 'Action' | 'Filter' | 'Sampler' | 'Performer'\n\t, ui: string\n\t, evaluate: string\n\t, script: string\n};<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #0000FF\">type<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #267F99\">MZXBX_PluginRegistrationInformation<\/span><span style=\"color: #000000\"> = {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t<\/span><span style=\"color: #001080\">label<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">kind<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">purpose<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #A31515\">&#39;Action&#39;<\/span><span style=\"color: #000000\"> | <\/span><span style=\"color: #A31515\">&#39;Filter&#39;<\/span><span style=\"color: #000000\"> | <\/span><span style=\"color: #A31515\">&#39;Sampler&#39;<\/span><span style=\"color: #000000\"> | <\/span><span style=\"color: #A31515\">&#39;Performer&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">ui<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">evaluate<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">script<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">};<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The plugin user interface communicates with the host application through messages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Messages types:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FFFFFF\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>type MZXBX_MessageToPlugin = {\n\thostData: any\n\t, colors: {\n\t\tbackground: string\/\/ #101010;\n\t\t, main: string\/\/#9cf;\n\t\t, drag: string\/\/#03f;\n\t\t, line: string\/\/#ffccff99;\n\t\t, click: string\/\/ #c39;\n\t}\n\t, screenData: number[] | null\n\t, langID: string\n};\ntype MZXBX_MessageToHost = {\n\tdialogID: string\n\t, pluginData: any\n\t, done: boolean\n\t, screenWait: boolean\n};\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #0000FF\">type<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #267F99\">MZXBX_MessageToPlugin<\/span><span style=\"color: #000000\"> = {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t<\/span><span style=\"color: #001080\">hostData<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">any<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">colors<\/span><span style=\"color: #000000\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t\t<\/span><span style=\"color: #001080\">background<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #008000\">\/\/ #101010;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t\t, <\/span><span style=\"color: #001080\">main<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #008000\">\/\/#9cf;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t\t, <\/span><span style=\"color: #001080\">drag<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #008000\">\/\/#03f;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t\t, <\/span><span style=\"color: #001080\">line<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #008000\">\/\/#ffccff99;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t\t, <\/span><span style=\"color: #001080\">click<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><span style=\"color: #008000\">\/\/ #c39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">screenData<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">number<\/span><span style=\"color: #000000\">[] | <\/span><span style=\"color: #267F99\">null<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">langID<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #0000FF\">type<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #267F99\">MZXBX_MessageToHost<\/span><span style=\"color: #000000\"> = {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t<\/span><span style=\"color: #001080\">dialogID<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">pluginData<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">any<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">done<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">boolean<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\t, <\/span><span style=\"color: #001080\">screenWait<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">boolean<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">};<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">For more details, please refer to the examples.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Minium Studio supports four types of user plugins: Plugins are divided into a script loaded into the host application and an HTML page that is placed in an iframe. Registration type: The plugin user interface communicates with the host application through messages. Messages types: For more details, please refer to the examples.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"mzxbox-template-front","meta":{"footnotes":""},"class_list":["post-106","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mzxbox.ru\/index.php?rest_route=\/wp\/v2\/pages\/106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mzxbox.ru\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mzxbox.ru\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mzxbox.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mzxbox.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=106"}],"version-history":[{"count":5,"href":"https:\/\/mzxbox.ru\/index.php?rest_route=\/wp\/v2\/pages\/106\/revisions"}],"predecessor-version":[{"id":160,"href":"https:\/\/mzxbox.ru\/index.php?rest_route=\/wp\/v2\/pages\/106\/revisions\/160"}],"wp:attachment":[{"href":"https:\/\/mzxbox.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}