Hann窓の実装

信号処理でよく出てくるHann窓(別名raised cosine)をCommon Lispで実装しました。例えば64点の窓が欲しいときにはx = [0...63]/63とやってあげて、w(x) = 0.5 - 0.5 cos(2πx)に突っ込んであげればOKです。簡単ですね。 (defun hann (n) "Hann window of le…

本日の給油(スーパーカブ110プロ/JA07)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-11-04 12711.0 2.44 156.97 60.37 2.60 2022-01-03 12814.3 2.18 153.21 47.39 3.23 2022-02-23 12910.1 2.55 158.04 37.57 4.21 2022-03-06 13058.0 2.83 160.07 52.26…

本日の給油(CRF1100Lアフリカツイン/2BL-SD10)

youtu.be 給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-10-30 267 13.46 162 16.27 9.96 2021-11-06 507 15.29 157 15.70 10.00 2021-11-14 737 13.01 157 17.68 8.88 2021-11-27 924 13.07 157 14.31 10.97 2021-12…

スーパーカブ用にヘルメット購入

いまスーパーカブ用に使っているヘルメットは2016年に買ったもので、だいぶへたってきています。 marui.hatenablog.com カブも10年目の定期点検を終えたところでもあるので、新しいヘルメットを購入することにしました。今回も「白バイっぽいもの」というの…

行列の転置(Common Lisp)

Common Lispで音を扱うときに、どのようなデータ構造で保持しておくのが良いのか少し考えました。 Matlabと同様にサンプル数×チャンネル数という2次元配列で保持することもできますし、例えば、1チャンネル分のサンプル列をvectorとしておき、それを複数あつ…

TSP信号の生成(Julia)

先週、Common Lisp版のOATSP信号を作りました。 marui.hatenablog.com Julia版もあると便利かと思ってサクッと実装してみました(OATSPの説明などは上記のページを見てください)。一つの関数で測定信号と逆信号を作れると便利なので、まとめてしまっていま…

TSP信号の生成(Common Lisp)

インパルス応答 OATSPの数式 Common Lispで試す 時間領域にもっていく 関数にした インパルス応答 頭部伝達関数を測定したり、スピーカーの応答を測ったり、室内音響指標の計算に使ったり……インパルス応答が測定できると色々と便利です。すでにMatlab、R、Ju…

Common Lispで音の振幅スペクトルの計算

先月末「Common LispでFFTライブラリを使ってみる - 丸井綜研」を書きました。このエントリの最後に「関数化した上でWAVファイルを読み込んで分析してみたい」と書いていたので、今日はそれをやってみました。 WAVファイルを読み込むのには「Common Lispで音…

Common Lispで畳み込み演算

先日Common LispでFFTが使えるようになったので、それを使って畳み込みをします。畳み込みには環状畳み込み(円状畳み込みや循環畳み込みとも呼びます)と線形畳み込みの2種類がありますので、両方とも作ってみようと思います。 ちょっとした道具 実際の畳み…

Common Lispで音ファイルを読み込む

Lispで音をやろうと思ってもなかなか情報が出てこないのですが、OpenMusicのような大規模なシステムもCommon Lispで書かれているので無理なことはないはず。Google検索してみると、masatoiさんが音声合成関係の記事をいくつか書かれていたり、t-sinさんが発…

エンジンの形式

ボクサーとかVツインとかいろいろあるので、エンジンの形式についてWikipediaへのリンクをまとめてみました。エンジン形式の説明についてはJIS B 0108-1「往復動内燃機関−用語−第1部:機関設計及び運転用語」に掲載されている説明を引用しました。 直列エン…

本日の給油(スーパーカブ110プロ/JA07)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-09-25 12563.7 2.81 148.04 52.10 2.84 2021-11-04 12711.0 2.44 156.97 60.37 2.60 2022-01-03 12814.3 2.18 153.21 47.39 3.23 2022-02-23 12910.1 2.55 158.04 37.57…

Common LispでFFTライブラリを使ってみる

Common Lispを使っていろいろと車輪の再実装を続けています。今回はフーリエ変換ライブラリを試してみます。Common Lispにはフーリエ変換のライブラリは入っていないので、Quicklispでfftをキーワードに探していきます。すると以下の4つがヒットしました。 C…

本日の給油(CRF1100Lアフリカツイン/2BL-SD10)

youtu.be 給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-10-24 10 9.69 155 - - 2021-10-24 48 7.62 155 - - 2021-10-30 267 13.46 162 16.27 9.96 2021-11-06 507 15.29 157 15.70 10.00 2021-11-14 737 13.01 157 1…

1/3オクターブ周波数のリストを得る

目次 標準数とは Common Lispでの実装 実行例 似たようなことをJuliaでやってみると…… 標準数とは 1/3オクターヴ幅での周波数リストが欲しい時があります。20, 31.5, 40, 50, 63, 80, 100, 125, 160, 200, 250, 315 Hz... というやつです。実はこのリスト、…

周波数から音名を得る (Common Lisp)

Common Lispの勉強をしていて、簡単なプログラムを再実装しています。数年前にJuliaで書いた「周波数を与えると音名・セント値が返ってくる関数」をLispに移植してみました。Julia版は以下の記事に書いてあります。 marui.hatenablog.com やっていることはJu…

本日の給油(CRF1100Lアフリカツイン/2BL-SD10)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-10-24 10 9.69 155 - - 2021-10-24 48 7.62 155 - - 2021-10-30 267 13.46 162 16.27 9.96 2021-11-06 507 15.29 157 15.70 10.00 2021-11-14 737 13.01 157 17.68 8.88…

本日の給油(スーパーカブ110プロ/JA07)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-07-31 12417.3 2.62 148.09 48.40 3.06 2021-09-25 12563.7 2.81 148.04 52.10 2.84 2021-11-04 12711.0 2.44 156.97 60.37 2.60 2022-01-03 12814.3 2.18 153.21 47.39…

sfplay~のディスクバッファサイズ設定

Max 8の[mc.sfplay~]を使って、29チャンネルのWAVファイルを3つ同時再生するというパッチを作っていたのですが、普通に組んだら、どうしても最初の1秒くらいしか再生されません。詳しい人に質問したら、8チャンネルを超えるファイルを再生するときには[mc.sf…

本日の給油(CRF1100Lアフリカツイン/2BL-SD10)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-10-24 10 9.69 155.01 - - 2021-10-24 48 7.62 154.99 - - 2021-10-30 267 13.46 162.04 16.27 9.96 2021-11-06 507 15.29 157.03 15.70 10.00 2021-11-14 737 13.01 15…

Common Lispで統計関数を車輪の再発明(再訪)

だいぶ前に書いたCommon Lispのプログラムを発掘しました。 marui.hatenablog.com まだapplyやmapcarを知らなかったので、再帰だけを使って計算していました。たとえばベクトル(というか数値の入ったリスト)の和を計算するのにも、以下のように再帰を使っ…

本日の給油(CRF1100Lアフリカツイン/2BL-SD10)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-10-24 10 9.69 155.01 - - 2021-10-24 48 7.62 154.99 - - 2021-10-30 267 13.46 162.04 16.27 9.96 2021-11-06 507 15.29 157.03 15.70 10.00 2021-11-14 737 13.01 15…

本日の給油(スーパーカブ110プロ/JA07)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-03-12 12042.2 3.08 133.77 45.88 2.92 2021-05-03 12177.4 2.46 139.84 54.96 2.54 2021-06-06 12290.5 1.99 142.21 56.83 2.50 2021-07-31 12417.3 2.62 148.09 48.40…

線形混合モデルを(Juliaで)理解したい

以前「線形混合モデルを理解したい」という記事を読んで、Rで線形混合モデルを試したことがあるのですが、今回は、Juliaで同じことをやってみたときにハマったところを書き残しておきます。 やりたかったことは、前述の記事からもってきた以下のようなコード…

本日の給油(スーパーカブ110プロ/JA07)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-03-12 12042.2 3.08 133.77 45.88 2.92 2021-05-03 12177.4 2.46 139.84 54.96 2.54 2021-06-06 12290.5 1.99 142.21 56.83 2.50 2021-07-31 12417.3 2.62 148.09 48.40…

SLIMEの設定をちょっと変えた

最近、自宅のWindowsマシンでCommon Lispの勉強をしています。IDEはEmacsとSLIMEを使っているのですが、ところどころ手になじまない部分があるので、ちょことだけカスタマイズしてみました。 ;; SLIME環境の設定 (unless (package-installed-p 'slime) (pack…

Apple M1でJuliaコードのディスアセンブル(Julia 1.7)

marui.hatenablog.com 上記のJuliaでディスアセンブルをしたときはIntelチップだったので、M1(ARMチップ)でやったらどうなるかを試してみました。 julia> versioninfo() Julia Version 1.7.2 Commit bf53498635 (2022-02-06 15:21 UTC) Platform Info: OS:…

本日の給油(CRF1100Lアフリカツイン/2BL-SD10)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-10-24 10 9.69 155.01 - - 2021-10-24 48 7.62 154.99 - - 2021-10-30 267 13.46 162.04 16.27 9.96 2021-11-06 507 15.29 157.03 15.70 10.00 2021-11-14 737 13.01 15…

Windows用のEmacs設定ファイル

自宅ではWindowsも使うようになったので、現時点のEmacsの設定ファイルを置いておきます。後で再インストールが必要になった時のための自分用メモです。Windows 10 Home(21H2)、本家GNU Emacs 27.2で使っているものです。 どのエディタを使うかは宗教戦争…

本日の給油(CRF1100Lアフリカツイン/2BL-SD10)

給油日 オドメーター (km) 給油量 (L) 単価 (円/L) 燃費 (km/L) 距離単価 (円/km) 2021-10-24 10 9.69 155.01 - - 2021-10-24 48 7.62 154.99 - - 2021-10-30 267 13.46 162.04 16.27 9.96 2021-11-06 507 15.29 157.03 15.70 10.00 2021-11-14 737 13.01 15…