スーパーカブ110プロ(JA07)の4年目の定期点検。春頃から、以前と音が変わったかなーと思ったまま乗り続けていたところ、それがチェーンにけっこうなダメージを与えていたらしいとのこと。今年は調整で何とかしてもらい、来年の点検時にはスプロケット込みで交換の可能性が出てきました。ぐむむむ。
これまでの走行距離はだいたい8000 km。来年の今頃は10,000 kmくらいか。1万キロでチェーン交換なんて聞いたことないよー(自業自得)
給油日 | オドメーター (km) | 給油量 (L) | 単価 (円/L) | 燃費 (km/L) | 距離単価 (円/km) |
---|---|---|---|---|---|
2016-02-13 | 6714.7 | 2.96 | 108.78 | 49.26 | 2.21 |
2016-04-03 | 6847.3 | 2.57 | 108.95 | 51.60 | 2.11 |
2016-04-10 | 7025.7 | 3.42 | 111.99 | 52.16 | 2.15 |
2016-05-18 | 7113.8 | 1.68 | 108.93 | 52.44 | 2.08 |
2016-06-01 | 7286.3 | 3.28 | 114.94 | 52.59 | 2.19 |
2016-06-15 | 7464.2 | 2.65 | 118.11 | 67.13 | 1.76 |
2016-07-24 | 7579.7 | 2.54 | 107.87 | 45.47 | 2.37 |
2016-09-09 | 7740.9 | 2.87 | 127.87 | 56.17 | 2.28 |
急にガソリン価格が上がったなー。
先日Pure Dataのexternを書きました。
これを、Maxでも動かせるようにしようと思って、Max SDKのドキュメントを読み始めました。ただMaxにはgen~
もありますしJavaも使えるので、まずはgen~
で試してみようと思い立ってから1時間強……同じものが書けてしまいました。
キモはcodebox
の中でGenExprを使うところにあります。codebox
中では複数行のGenExprが書け、しかも条件分岐や繰り返しなどの制御構文を使うことができます。僕のプログラムではfor
ループが使えることが必須だったので、助かりました。
もともとはClojureのことが読みたくてBruce A. Tateの「Seven Languages in Seven Weeks(訳書)」を買ったのですが、読んでいくとErlangが気になりはじめました(ほぼ同時期に発掘して読んだMatz氏のブログ記事もErlangに言及していたので)。その後、2013年ごろにベータ版が公開されたDave Thomasの「Programming Elixir(訳書)」でElixirを知りました。
とうとうElixir本の日本語訳が出版されることになりました。Elixir本の日本語訳*1の出版を勝手に祝して、以下のようなブログ記事の日本語訳をしてみました。
続きを読む先日つくった正弦波を生成するsingen~を拡張して、もう少し複雑なexternにしていきます。正弦波の生成ができたので、それらを複数重ねて音作りをする加算合成シンセにしてみましょう。
とは言ってもいきなり難しいものは無理なので、下図のように基音の周波数、倍音の数、スペクトルのスロープ(傾き)の3つをコントロールできるものにします。一般的な加算合成法ではそれぞれの正弦波を独立してコントロールできるようにするのですが、今日のところは整数倍の成分の合成だけを考えます。つまり各倍音の周波数は基音の周波数によって決まり、独立したコントロールはできません。
これを数式で書くと以下のようになります。音合成の教科書などには必ずと言っていいほど載っている式で、スペクトルの傾きを0にするとすべての成分音のレベルが等しくなります。また、スペクトルの傾きを1にすると鋸歯波になります。(-1)k-1はなくてもいいのですが、時刻ゼロのときに振幅ゼロの鋸歯波の波形が得られるので入れています。
以下が完成したexternを使用しているイメージ。複数(multiple)の正弦波(sin)を生成(generate)するのでmulsingen~と命名しました。出力のあたりがごちゃごちゃしていますが、Pd-extendedのoutput~のようなことをしているだけです。
続きを読む
MacでPureDataのオーディオexternal objectを作ってみたメモ。日本語で書かれた情報が少なかったので、「無いよりはマシ」程度で書き残しておきます。いろいろと間違いがあると思います。指摘していただければ幸いです。
まず参考にしたのはPd-externals-HOWTOです。この文書では4つのexternを説明してくれます。
今回はこれらとは少し違う、「osc~」のような「周波数の数値入力に対して正弦波をオーディオ信号として出力するオブジェクト」を作ってみます。正弦波(sin波)を生成(generate)するので、名前は「singen~」とします。最終的にはこんな感じで使いたい。
続きを読む
MacでPure Dataの拡張オブジェクト(external object)をビルドする方法はいくつかあり、下記のMakefileを使うものなどが便利だったりします。(永野さん提案の、Xcodeを使う方法もあります)
参考:Pure Data の拡張オブジェクトを作る gcc on Mac OS X 版 - ruby trunk changes
ただ、Makefileを作るほどでもないんだよなー、というときもあります(ない?) 僕は上記ページを参考にした次のようなシェルスクリプトを使っています。
#!/bin/sh cc -g -DMACOSX -DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch -I. \ -o $1.pd_darwin_o -c $1.c cc -bundle -undefined suppress -flat_namespace -lm \ -o $1.pd_darwin $1.pd_darwin_o rm $1.pd_darwin_o
これをmakepdext.sh
のようなファイルに保存しておき、例えばpd-externals-HOWTOのhelloworld.c
があったとして、
$ ./makepdext.sh helloworld
とするとhelloworld.pd_darwin
ができあがります。やってることは永野さんのMakefileと同じですが、ちょろっとコンパイルしたいだけの時にどうぞ。