chrmlinux03 が 2024年01月31日11時20分24秒 に編集
ソース抜けてた(汗
本文の変更
# はじめに こんにちわっ リナちゃん X@chrmlinux03 です ++このページは SPRESENSE2023コンテストで作った製品を紹介するものです 最初に [開発まとめ](https://elchika.com/article/e96011d0-d280-49e2-a68c-dd3c183a204e/) をお読みいただければ幸いです++ # ベッドに入って眠れない日々があった TVを付けて寝てしまう事も多々あり でも静かな曲を聴きながら寝入る事もある って言うかガッツリ寝てるぢゃん💦 # フェーダー状のポテンショメータとの出会い @[twitter](https://twitter.com/chrmlinux03/status/1735176245401596220?s=20) お仕事(センサ屋)でミキサー卓のようなポテンショメータを貰った 👉[ポテンショメータ](https://amzn.to/3ujvfOC) 「おおっ」これは沢山あればミキサーっぽいのが創れる で、あればこれを複数まとめれば沢山の音がならせるぢゃん💕 @[twitter](https://twitter.com/chrmlinux03/status/1736671046542254524?s=20) # 液晶でフェーダー出せるぢゃん  数日後 液晶でフェーダーを作る事に成功 👉[タッチパネルにバーチャルフェーダーを載せたよ](https://elchika.com/article/36c97b49-8682-4ce7-b93b-fe012b5fe14b/) 今までの苦労は何だったのだろうか。。。。 まぁ他にも作りたいものはあるし(と言う現実逃避発動:逃げ)👉[tinyMixer](https://elchika.com/article/941cc548-c610-4856-80ca-da1df4d66655/) # さまざまな制約 @[twitter](https://twitter.com/chrmlinux03/status/1730910343164198975?s=20) @[twitter](https://twitter.com/chrmlinux03/status/1730122680081531075?s=20) @[twitter](https://twitter.com/chrmlinux03/status/1729421306956075276?s=20) @[twitter](https://twitter.com/chrmlinux03/status/1729412900639662122?s=20) @[twitter](https://twitter.com/chrmlinux03/status/1729411083243536864?s=20) @[twitter](https://twitter.com/chrmlinux03/status/1728718541497749837?s=20) @[twitter](https://twitter.com/chrmlinux03/status/1728641219956514816?s=20) @[twitter](https://twitter.com/chrmlinux03/status/1725448294862913718?s=20) # シン・プログラマだからなんとかする @[twitter](https://twitter.com/chrmlinux03/status/1538613564923322368?s=20) # Audio DSP はステレオ x 2(4Track)までの制約 前回のコンテストからAudioについてしばらく考えた事がある - どうやって音がなるのか?(まずはそこから💦) - 一体何音まで同時出力出来るのか? - ミキサー構造は一体どうなっているのか? - Audio0 / Audio1 って何?💦 何もわからないまま無駄に時間だけが経過する 何もわからないまま無駄に sample.ino だけが SSD を圧迫する ある日突然 自分の理論で音が鳴った ## 全てはここから始まった @[twitter](https://twitter.com/chrmlinux03/status/1557610395917221888?s=20) ## 記念すべき日 @[twitter](https://twitter.com/chrmlinux03/status/1735246091812217301?s=20) ## 何かを決意した @[twitter](https://twitter.com/chrmlinux03/status/1738152774905610744?s=20) # ヒントはここにあった @[twitter](https://twitter.com/chrmlinux03/status/1723989897227489445?s=20) @[twitter](https://twitter.com/chrmlinux03/status/1606875123214319616?s=20) # 用意するもの | 部品名 | 販売先 | 価格 |御提供品| | -------- | -------- | -------- |-------- | | 根性 | 誰にでも |プライスレス|ー| # ライブラリ等 何故これで音がなるか?に関しては以下を参照 👉[AudioDSPを絶妙にハックしたよ【実践編】](https://elchika.com/article/cb0997fe-93ab-410c-92d4-9f9e2935b678/) # 筐体 ## 最初に軽く打ち出し穴位置を修正  ## LEDリングも搭載  # 組み立て     
# コード ``` //============================================== // // soundSerenity.ino //---------------------------------------------- // date/author : 2024/01/20 @chrmlinux03 // update/author : 2024/01/28 @chrmlinux03 // //============================================== #define PLAYING_FILENAME "044K816.soundSerenity.raw" const uint8_t numTracks = PLAYING_FILENAME[4] - '0'; #include <spreTools.hpp> #include <spreAudioLib.hpp> #include <spreGraphics.hpp> #include <tinyTouch.hpp> #include <tinySlider.hpp> tinySlider sliders[numTracks]; #include <spreSliderSub.hpp> #include <spreNeo.hpp> SpreNeo neo; //============================================== // // setup // //============================================== void setup(void) { Serial.begin( 115200 ); int8_t rotation = ROT270; setupGraphics(rotation); setupTouch(_w, _h, rotation, false); debugAudio = false; setupAudio(AUDIO, CLOCK_NORMAL); addFile(PLAYING_FILENAME); setupSliders(numTracks, _w, _h - 24, 180, 6, 0); neo.begin(); neo.set(LEDKIND_BRESS, 255, 255, 255, 64); neo.start(); setupPlayer(AUDIO0); // setupPlayer(AUDIO1); } //============================================== // // loop // //============================================== void loop() { neo.update(); loopPlayer(AUDIO0); // loopPlayer(AUDIO1); spr.startWrite(); spr.clear(TFT_DARKSILVER); int tx, ty, tz; bool touched = isTouch(&tx, &ty, &tz); if (touched) { scanSliders(); readSliders(); } updateSliders(); static int cnt = 0; char ast[4] = "|/-\\"; spr.setTextColor(TFT_WHITE, TFT_BLACK); spr.setCursor(8, 8); spr.printf("[%c] %3d fps\n", ast[cnt], getfps()); cnt = (cnt + 1) % 4; spr.pushSprite(&lcd, 0, 0); spr.endWrite(); } ```
# 動かしてみた @[twitter](https://twitter.com/chrmlinux03/status/1752502396205609258?s=20) # 残務と今後の考察 現在 Audio0 のみを使用しているので 8Track これは Audio1 を使えば 16Track は行けるのではないか? って言うかそこまでいるのかという話である # さいごに ご清聴ありがとうございました まぢでライブラリが出来るまでが長かった💦 ++このページは SPRESENSE2023コンテストで作った製品を紹介するものです 最初に [開発まとめ](https://elchika.com/article/e96011d0-d280-49e2-a68c-dd3c183a204e/) をお読みいただければ幸いです++