{"id":1053,"date":"2021-10-17T12:39:51","date_gmt":"2021-10-17T03:39:51","guid":{"rendered":"https:\/\/machiaworx.net\/?p=1053"},"modified":"2021-10-17T12:51:27","modified_gmt":"2021-10-17T03:51:27","slug":"bela%e3%81%a7%e8%89%b2%e3%80%85%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82%ef%bc%88%ef%bc%92%ef%bc%89","status":"publish","type":"post","link":"https:\/\/machiaworx.net\/?p=1053","title":{"rendered":"Bela\u3067\u8272\u3005\u4f5c\u3063\u3066\u307f\u308b\u3002\uff08\uff12\uff09"},"content":{"rendered":"<h3>\u4eca\u65e5\u5b9f\u88c5\u3057\u305f\u3084\u3064\uff08\u6210\u679c\uff09<\/h3>\n<ul>\n<li>\u30b9\u30a4\u30c3\u30c1\u306b\u3088\u3063\u3066\u30b5\u30a4\u30f3\u6ce2\u306eON\u30fbOFF\u3092\u5207\u308a\u66ff\u3048\u308b\u3002<\/li>\n<li>LED\u3082\u540c\u671f\u3055\u305b\u308b<\/li>\n<li>\u53ef\u5909\u62b5\u6297\u3067\u97f3\u91cf\u3092\u5909\u66f4\u3059\u308b<\/li>\n<\/ul>\n<h3>\u6240\u898b<\/h3>\n<ul>\n<li>\u56de\u8def\u3092\u4f5c\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u304d\u3066\u308b\u3002<br \/>\n\u3053\u308c\u306f\u4ed5\u7d44\u307f\u304b\u3089\u3069\u3053\u306b\u96fb\u6c17\u304c\u6d41\u308c\u308b\u304b\u3092\u628a\u63e1\u3057\u3066\u3044\u308b\u304b\u3089\u306b\u307b\u304b\u306a\u3089\u306a\u3044<\/li>\n<li>\u305f\u3060\u3001\u62b5\u6297\u306e\u5b9a\u7fa9\u65b9\u6cd5\u304c\u3044\u307e\u3044\u3061\u308f\u304b\u3089\u306a\u3044\u3068\u3053\u308d\u304c\u3042\u308b\u306e\u3067\u3001<br \/>\n\u3053\u308c\u306f\u5225\u9014\u78ba\u8a8d\u3092\u884c\u3046\u3002<\/li>\n<li>\u307e\u305f\u3001\u30d4\u30f3\u306e\u5165\u51fa\u529b\u306b\u3064\u3044\u3066\u77e5\u898b\u304c\u6df1\u307e\u3063\u3066\u3044\u308b\u3002<br \/>\n\u30a2\u30ca\u30ed\u30b0\/\u30c7\u30b8\u30bf\u30eb\u306e\u5165\u51fa\u529b\u306b\u3064\u3044\u3066\u9069\u5207\u306a\u9078\u629e\u304c\u3067\u304d\u3064\u3064\u3042\u308b\u3002<\/li>\n<\/ul>\n<h3>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/h3>\n<p>\u4eca\u56de\u306f\u5358\u306b\u30c4\u30de\u30df\u3067\u97f3\u91cf\u3092\u66f4\u65b0\u3059\u308b\u30b3\u30fc\u30c9\u3002<br \/>\n\u96fb\u6e90\u30fb\u30a2\u30ca\u30ed\u30b0\u30d4\u30f3\u30fbGND\uff0b\u53ef\u5909\u62b5\u6297\u304c\u3042\u308c\u3070\u3059\u3050\u3067\u304d\u308b\u304a\u624b\u8efd\u306a\u69cb\u6210\u3002<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n#include &lt;Bela.h&gt;\r\n#include &lt;cmath&gt;\r\n\r\n\/\/\u6539\u9020\uff1a\r\n\/\/\u53c2\u7167\u5143\uff1ahttp:\/\/docs.bela.io\/analog-input_2render_8cpp-example.html#a7\r\n\r\n\/\/\u30b5\u30a4\u30f3\u6ce2\u3092\u51fa\u529b\u3059\u308b\u305f\u3081\u306e\u4f4d\u76f8\u3002\r\nfloat gPhase;\r\n\r\n\/\/\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u30ec\u30fc\u30c8\u3067\u5272\u308b\u5024\u3002\r\nfloat gInverseSampleRate;\r\n\r\n\/\/\u30a2\u30ca\u30ed\u30b0\u30d5\u30ec\u30fc\u30e01\u30d5\u30ec\u3042\u305f\u308a\u306e\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30ec\u30fc\u30e0\u5024\u3002\r\nint gAudioFramesPerAnalogFrame = 0;\r\n\r\n\/\/ \u30a2\u30ca\u30ed\u30b0\u30d4\u30f3\u306e\u756a\u53f7\u3092\u5b9a\u7fa9\u3057\u3066\u304a\u304f\u3002\r\nint gSensorInputAmplitude = 0;\r\n\r\nbool setup(BelaContext *context, void *userData)\r\n{\r\n    \/\/ \u30a2\u30ca\u30ed\u30b0\u30c1\u30e3\u30f3\u30cd\u30eb\u304c\u5229\u7528\u53ef\u80fd\u3060\u3063\u305f\u3089OK\u3001\u5229\u7528\u4e0d\u53ef\u3060\u3063\u305f\u3089\u5f37\u5236\u7d42\u4e86\r\n    if(context-&gt;analogFrames == 0 || context-&gt;analogFrames &gt; context-&gt;audioFrames)\r\n    {\r\n        rt_printf(&quot;Error: this example needs analog enabled, with 4 or 8 channels\\n&quot;);\r\n        return false;\r\n    }\r\n    \/\/ \u30a2\u30ca\u30ed\u30b0\u30d5\u30ec\u30fc\u30e0\u3042\u305f\u308a\u306e\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30ec\u30fc\u30e0\u6570\u3092\u4e88\u3081\u7b97\u51fa\u3057\u3066\u304a\u304f\u3002\r\n    if(context-&gt;analogFrames)\r\n        gAudioFramesPerAnalogFrame = context-&gt;audioFrames \/ context-&gt;analogFrames;\r\n\r\n    \/\/\u8a08\u7b97\u3092\u639b\u3051\u7b97\u306b\u5bc4\u305b\u308b\u305f\u3081\u3001\u6700\u521d\u304b\u3089\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u30ec\u30fc\u30c8\u306e\u9006\u6570\u3092\u6c42\u3081\u3066\u304a\u304f\u3002\r\n    gInverseSampleRate = 1.0 \/ context-&gt;audioSampleRate;\r\n\r\n    \/\/\u521d\u671f\u5b9a\u7fa9\u3002\r\n    gPhase = 0.0;\r\n\r\n    return true;\r\n}\r\n\r\nvoid render(BelaContext *context, void *userData)\r\n{\r\n    \/\/\u5468\u6ce2\u6570\u3002\r\n    float frequency;\r\n\r\n    \/\/\u97f3\u91cf\r\n    float amplitude;\r\n\r\n    \/\/\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30ec\u30fc\u30e0\u306e\u8aad\u8fbc\u3092\u884c\u3046\u3002\r\n    for(unsigned int n = 0; n &lt; context-&gt;audioFrames; n++)\r\n    {\r\n        if(gAudioFramesPerAnalogFrame &amp;&amp; !(n % gAudioFramesPerAnalogFrame))\r\n        {\r\n            \/\/\u30a2\u30ca\u30ed\u30b0\u5165\u529b\u3092\u8aad\u307f\u53d6\u3063\u3066\u3001\r\n            \/\/\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u30ec\u30fc\u30c8\u306e\u5024\uff0844100\/22050\uff09\u3067\u51e6\u7406\u3059\u308b\u3002\r\n\r\n            \/\/\u5468\u6ce2\u6570\u5b9a\u7fa9\r\n            frequency = 440.0f;\r\n\r\n            \/\/\u97f3\u91cf\u3001\u30d4\u30f3\u304b\u3089\u96fb\u5727\u306e\u5024\u3092\u8aad\u307f\u53d6\u308b\r\n            \/\/\u30d5\u30ec\u30fc\u30e0\u6570\u306b\u3064\u3044\u3066\u306f\u3001\u300canalog input\u300d\u306e\u30d5\u30ec\u30fc\u30e0\u6570\u306a\u306e\u3067\u8a08\u7b97\u3067\u7b97\u51fa\u3059\u308b\u3053\u3068\u306b\u306a\u308b\u3002\r\n            \/\/\uff08\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30ec\u30fc\u30e0\u3068\u540c\u3058\u304f\u3089\u3044\u306b\u51e6\u7406\u3055\u308c\u308b\u30a2\u30ca\u30ed\u30b0\u30d5\u30ec\u30fc\u30e0\u6570\uff09\r\n            amplitude = analogRead(context, n\/gAudioFramesPerAnalogFrame, gSensorInputAmplitude);\r\n        }\r\n\r\n        \/\/\u30b5\u30a4\u30f3\u6ce2\u306e\u51fa\u529b\r\n        float out = amplitude * sinf(gPhase);\r\n\r\n        \/\/2ch\u306b\u30aa\u30fc\u30c7\u30a3\u30aa\u51fa\u529b\u3092\u884c\u3046\u3002\uff08\u3082\u3057\u304f\u306f\u3082\u3063\u3068\u3044\u3063\u3071\u3044\uff09\r\n        for(unsigned int channel = 0; channel &lt; context-&gt;audioOutChannels; channel++)\r\n        {\r\n            \/\/\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30ec\u30fc\u30e0\u306b\u66f8\u304d\u8fbc\u307f\u3092\u884c\u3046\r\n            audioWrite(context, n, channel, out);\r\n        }\r\n\r\n        \/\/ \u4f4d\u76f8\u306e\u66f4\u65b0\u3092\u884c\u3046\u3002\r\n        gPhase += 2.0f * (float)M_PI * frequency * gInverseSampleRate;\r\n\r\n        \/\/360\u5ea6\u4ee5\u4e0a\u306b\u306a\u3063\u305f\u3089\u30010-360\u5ea6\u306e\u7bc4\u56f2\u306b\u53ce\u3081\u308b\r\n        if(gPhase &gt; M_PI)\r\n            gPhase -= 2.0f * (float)M_PI;\r\n    }\r\n}\r\n\r\nvoid cleanup(BelaContext *context, void *userData)\r\n{\r\n    \/\/\u51e6\u7406\u306a\u3057\u3002\r\n}\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4eca\u65e5\u5b9f\u88c5\u3057\u305f\u3084\u3064\uff08\u6210\u679c\uff09 \u30b9\u30a4\u30c3\u30c1\u306b\u3088\u3063\u3066\u30b5\u30a4\u30f3\u6ce2\u306eON\u30fbOFF\u3092\u5207\u308a\u66ff\u3048\u308b\u3002 LED\u3082\u540c\u671f\u3055\u305b\u308b \u53ef\u5909\u62b5\u6297\u3067\u97f3\u91cf\u3092\u5909\u66f4\u3059\u308b \u6240\u898b \u56de\u8def\u3092\u4f5c\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u304d\u3066\u308b\u3002 \u3053\u308c\u306f\u4ed5\u7d44\u307f\u304b\u3089\u3069\u3053\u306b\u96fb\u6c17\u304c\u6d41\u308c\u308b\u304b\u3092\u628a\u63e1\u3057\u3066\u3044\u308b\u304b\u3089&hellip; <span class=\"clear\"><\/span><a href=\"https:\/\/machiaworx.net\/?p=1053\" class=\"more-link read-more\" rel=\"bookmark\"><span class=\"screen-reader-text\">Bela\u3067\u8272\u3005\u4f5c\u3063\u3066\u307f\u308b\u3002\uff08\uff12\uff09<\/span><i class=\"fa fa-arrow-right\"><\/i> \u306e\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,9,4,7],"tags":[],"class_list":["post-1053","post","type-post","status-publish","format-standard","hentry","category-synth-dev","category-zatta","category-pgm","category-kizai"],"_links":{"self":[{"href":"https:\/\/machiaworx.net\/index.php?rest_route=\/wp\/v2\/posts\/1053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/machiaworx.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/machiaworx.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/machiaworx.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/machiaworx.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1053"}],"version-history":[{"count":5,"href":"https:\/\/machiaworx.net\/index.php?rest_route=\/wp\/v2\/posts\/1053\/revisions"}],"predecessor-version":[{"id":1058,"href":"https:\/\/machiaworx.net\/index.php?rest_route=\/wp\/v2\/posts\/1053\/revisions\/1058"}],"wp:attachment":[{"href":"https:\/\/machiaworx.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/machiaworx.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/machiaworx.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}