C言語復習
C言語の復習としていちからコードを書き直していきたいと思います.
使用する環境は
Windows 10 pro (version 1909)
Windows Subsystem for Linux (Ubuntu 18.04 LTS)
GNU Compiler Celection 7.4.0 (Ubuntu 18.04.1)
を使っていきたいと思います.
/* ---------- 余談 ---------- */
コントロールパネル>プログラム>Windowsの機能の有効化または無効化>Windows Subsystem for Linux
にチェックを入れた後
設定>更新とセキュリティ>開発者向け>開発者モード
を有効にすることで使用することが出来ます!
WindowsStoreでUbuntu16.04 LTSやUbuntu 18.04 LTS,Kali Linuxなど様々なディストリビューションが配布されているので色々使ってみるのもありかもしれないです!
mimiumを使ってみた 2
前回はmimiumを使うための実行環境を整えただけだったので
今回は実際にコードを叩いて
色々試していきたいと思います!
最初に使用する関数についてです.
標準でターミナルに出力する関数は
関数名 | 実行時の動作 |
---|---|
数値を表示する | |
println | 数値を表示した後に改行 |
となっているみたいです.
そのほかに数式で使える関数として
関数名 | 実行時の動作 |
---|---|
sin | 三角関数 sin |
cos | 三角関数 cos |
tan | 三角関数 tan |
asin | 逆三角関数 arcsin |
acos | 逆三角関数 arccos |
atan | 逆三角関数 arctan |
atan2 | x,y座標の偏角を計算 |
sinh | 双曲線関数 sinh |
cosh | 双曲線関数 cosh |
tanh | 双曲線関数 tanh |
log | 底が2のlog |
log10 | 底が10のlog |
pow | 累乗 |
sqrt | 平方根 |
abs | 絶対値 |
ceil | 天井関数,端数処理 |
floor | 床関数,端数処理 |
trunc | 切り落とし関数,端数処理 |
round | 四捨五入 |
fmod | 実数の剰余 |
remainder | 不動小数点の剰余 |
min | 最小値 |
max | 最大値 |
(2020/02/19現在)
となっているみたいです.
この数式の中にsinがあるので実際にsin波を鳴らしてみたいと思います!
fn dsp(time:float){ return sin(time) }
これでsin波を再生することができるみたいです.
※実際に音が出るので音量に注意してください!
dspという関数の中でreturnしたものを実際に音として再生できます.
次に自分の手持ち音源を再生するプログラムを書いていきます!
ffile = "waveファイルがあるディレクトリのパス" wav = loadwav(file) fn dsp(time:float){ return wav[time] }
ファイルのパスをloadwavに渡してあげるだけで簡単に再生できます.
terminalには
Info: Audio Device : Apple Inc.: External Headphones, Sampling Rate : 48000, Output Channels : 2
と出力されていて,再生デバイスがステレオかモノラルかサンプリングレートはいくつであるかを認識しています.
ちなみにですが,手持ちのmp3音源とflac音源を試しに再生してみたらflacは再生できました!
音楽を再生できるようになったので今度は実際に信号処理をしていきたいと思います.
mimiumを使ってみた
mimiumという言語についてTwitterのタイムラインで見かけたので
お試しということで実行できるところまで環境を整えてみました.
久しぶりにCmakeを使ったことで結構ハマってしまったところがあったので
メモ書き程度に残しておこうと思います.
mimium (MInimal Musical medIUM)
私が使った環境は
macOS Catalina Version 10.15.3 (2020/02/18現在)
terminal : bash
を使っています.
使用したツールは
clang : 11.0.0
clang++ : 11.0.0
cmake : 3.16.4
LLVM : 9.0.1
Bison : 3.5.2
Flex : 2.6.4
Libsndfile : 1.0.28
(2020/02/18現在)
を使用しました.
clang,cmake,LLVM,Bison,Flex,Libsndfileの全てを
Homebrewでインストールしたのち
それぞれをexportコマンドを用いてリンクしました.
export LLVM_DIR=/usr/local/Cellar/llvm/9.0.1/
export FLEX_EXECUTABLE=/usr/local/Cellar/flex/2.6.4_1/bin/
export FLEX_INCLUDE_DIR=/usr/local/Cellar/flex/2.6.4_1/include/
export BISON_EXECUTABLE=/usr/local/Cellar/bison/3.5.2/
※各フォルダについてる数字はバージョンなので,brew info XXXで
確認したのちexportコマンドを叩いた方がよいです!
リンクが終わったら,
mimiumをgithubからダウンロードしてきて,
tar zxvf mimium-0.0.0.tar.gz
※私がダウンロードしてきたときはtar.gzでしたが違う可能性もあるので
圧縮されてる方法に合わせて解凍してください.
解凍が終わったら,
cd mimium-0.0.0
mkdir build && cd build
cmake ..
cmakeを行ったことでbuildの中にmakefileが作成されたと思います.
あとは,
make
make install
これでmimiumが使えるようになります!
mimiumでは拡張子が.mmmみたいでちょっと可愛いですね!
お試しで動作するのか
/mimium/test/
mimium dsptest.mmm
で実行してみると動作しました!
音響系のプログラミングが簡単になるのは嬉しいことですね〜♪
次はmimiumを実際に使ったコーディングについて
記事をかけたらと思います!