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 Subsystem for Linux

 

コントロールパネル>プログラム>Windowsの機能の有効化または無効化>Windows Subsystem for Linux

にチェックを入れた後

 

設定>更新とセキュリティ>開発者向け>開発者モード

を有効にすることで使用することが出来ます!

 

WindowsStoreでUbuntu16.04 LTSやUbuntu 18.04 LTS,Kali Linuxなど様々なディストリビューションが配布されているので色々使ってみるのもありかもしれないです!

 

 

mimiumを使ってみた 2

前回はmimiumを使うための実行環境を整えただけだったので

今回は実際にコードを叩いて

色々試していきたいと思います!

 

最初に使用する関数についてです.

標準でターミナルに出力する関数は

関数名 実行時の動作
print 数値を表示する
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)

github.com

 

私が使った環境は

 

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を実際に使ったコーディングについて

記事をかけたらと思います!

はじめまして!

はじめまして!

ブログだけ作成しておいてほとんど更新してなかったので

本格的にブログ更新を行なっていきたいと思います!

 

本ブログでは自分の勉強用として

プログラミングやアルゴリズムなどの

技術的なことについてメモがわりに書いていきたいと思ってます!