【Raspberry Pi 4B】インタラクティブサウンドアートプログラム開発#004:SuperColliderコードをGUIを使わずに実行する
【このシリーズの目的】
インタラクティブサウンドアートのためのプログラムを、Raspberry Pi 4B単独で走るようにしたい。
すでに完成させたものはあるのだが、Raspberry Pi、ラップトップ、スマートフォンの3つを同時稼働させるという煩雑なものになってしまっているので、それをRaspberry Piに統合したい。
想定しているプログラミング言語はC/C++である。
【この記事で実践したいこと】
何を:SuperColliderで音を出すテストを、GUIを使わずに実行したい。
どこで:ヘッドレスRaspberry Pi 4Bで動作
【前提知識】
Ubuntu/Debian系Linuxの基本コマンド、SuperColliderの基本文法
※Raspberry Pi に Raspberry Pi OS が搭載されていることと、そこでC/C++スクリプトをビルド&ランすることを前提としている。
◀ 前 #003:USB音響機器の動作を確認する
▶ 次 #005:(まだ)
- Raspberry PiにSuperColliderをインストールする
- i-1 必要な前提パッケージを確認する
- 必須パッケージ
- 推奨パッケージ
- i-2 前提パッケージをインストールする
- i-3 SuperColliderをインストールする
- 1. ソースコードを入手する
- 2. CMakeでビルドの設定を行う
- 3. ビルドおよびインストールを行う
- 4. JACKをセットアップする
- 5. ユーザをaudioグループに追加する
- 6. 再起動する
- i-1 必要な前提パッケージを確認する
- SuperColliderコードを実行する
- ii-1 SuperColliderコードを作成する
- ii-2 コマンドラインからSuperColliderコードを実行する
- 参考文献
【Raspberry Pi 4B】インタラクティブサウンドアートプログラム開発#003:USB音響機器の動作を確認する
【このシリーズの目的】
インタラクティブサウンドアートのためのプログラムを、Raspberry Pi 4B単独で走るようにしたい。
すでに完成させたものはあるのだが、Raspberry Pi、ラップトップ、スマートフォンの3つを同時稼働させるという煩雑なものになってしまっているので、それをRaspberry Piに統合したい。
想定しているプログラミング言語はC/C++である。
【この記事で実践したいこと】
何を:USB音響機器 (今回は Focusrite Scarlett 4i4 (gen.3)) をRaspberry Piに接続し、音の入出力やコントロールの動作を確認したい。
どこで:ヘッドレスRaspberry Pi 4Bで動作
【前提知識】
Ubuntu/Debian系Linuxの基本コマンド
※Raspberry Pi に Raspberry Pi OS が搭載されていることと、そこでC/C++スクリプトをビルド&ランすることを前提としている。
◀ 前 #002:音声処理APIを選んでインストールする
▶ 次 #004:SuperColliderコードをGUIを使わずに実行する
- 音響機器がRaspberry Piで使えるか確認する
- 音響機器をRaspberry Piで制御できるようにする
- ii-1 USB音響機器の設定ファイルを作成する
- ii-2 Raspberry Piを再起動する
- ii-3 ハードウェアの制御を確認する
- 余談:Scarlettを最優先に読み込むようにしたかった
- 参考文献
【Raspberry Pi 4B】インタラクティブサウンドアートプログラム開発#002:音声処理APIを選んでインストールする
【このシリーズの目的】
インタラクティブサウンドアートのためのプログラムを、Raspberry Pi 4B単独で走るようにしたい。
すでに完成させたものはあるのだが、Raspberry Pi、ラップトップ、スマートフォンの3つを同時稼働させるという煩雑なものになってしまっているので、それをRaspberry Piに統合したい。
想定しているプログラミング言語はC/C++である。
【この記事で実践したいこと】
何を:目的に合った音声処理APIを選び、使える状態にしたい。
どこで:ヘッドレスRaspberry Pi 4Bで動作
【前提知識】
Ubuntu/Debian系Linuxの基本コマンド
※Raspberry Pi に Raspberry Pi OS が搭載されていることと、そこでC/C++スクリプトをビルド&ランすることを前提としている。
◀ 前 #001:モジュールや周辺機器を決める
▶ 次 #003:USB音響機器の動作を確認する
- 音声処理APIを選ぶ
- libsoundioをインストールする
- 2-i パッケージを確認してインストールする
- 結論
- 説明
- 2-ii 前提パッケージをインストールする
- 結論
- 説明
- 2-i パッケージを確認してインストールする
【Raspberry Pi 4B】インタラクティブサウンドアートプログラム開発#001:モジュールや周辺機器を決める
【このシリーズの目的】
インタラクティブサウンドアートのためのプログラムを、Raspberry Pi 4B単独で走るようにしたい。
すでに完成させたものはあるのだが、Raspberry Pi、ラップトップ、スマートフォンの3つを同時稼働させるという煩雑なものになってしまっているので、それをRaspberry Piに統合したい。
想定しているプログラミング言語はC/C++である。
【この記事で実践したいこと】
何を:必要なセンサモジュールや周辺機器を選択したい。
どこで:ヘッドレスRaspberry Pi 4Bで動作
- センサを決める
- 1-i 基本要件を決める
- 1-ii センサの種類を決める
- 音響機器を決める
- 外部電源が無くなっても動作するようにする (将来的に)
【JavaScript】非同期処理と async/await をある程度理解する
【実践したいこと】
細かい事までわかろうとするとキリがないのでそこまで深掘りしないとしても、async/await をよくわからないまま何となく使う状況からは脱却したい。
ここでは async/await についてすべて解説しているのではなく、自分が実際に async/await を使うときにはっきりさせたかった部分だけが書かれている。
【前提知識】
Promise
- 非同期処理とは
- async/await とは
- async
- await
- 参考文献
【JavaScript】ブラウザのコンソールにログやエラーが表示されないようにしたいとき
【実践したいこと】
何を:console.log などが実行されても、ブラウザのコンソールに何も表示させないようにしたい。
どこで:Webページ上
何のために使うのかはわからないが、実例を見たのでメモしておく。
【ソース】
▾main.js
console.log = function() {}; console.error = function() {};
または
console.log = () => {}; console.error = () => {};
参考文献
【Web Audio API】ブラウザが Web Audio API に対応しているかチェックしたいとき
【実践したいこと】
何を:ユーザが使っているブラウザが Web Audio API に対応しているかチェックし、対応していなければ警告文をコンソールに表示させるまで
どこで:Webページ上
【ソース】
▾index.html
<!DOCTYPE html> <html> <body> <script src="main.js"></script> </body> </html>
▾main.js
try { window.AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.msAudioContext || window.oAudioContext; } catch (e) { console.error("Your browser does not support Web Audio API."); }