引き続きJuliaネタです。前回は、Bristow-JohnsonのパラメトリックEQを自作のfreqz関数で可視化してみました。
ただ、プログラミング言語を使う際には長いものには巻かれておいたほうが良いので、Juliaのエコシステムで言及されているJuliaDSPに対応したものに更新したいと思います。フィルタ設計などで特に使うのはDSP.jlです。
続きを読むAbleton/Cycling'74のMaxでは、いくつかの(Max以外の)プログラミング言語を使えるようになっています。Cycling'74が公式にサポートしているものにはJava、JavaScript、Luaがあり、エクスターナルを書くことを考えるとC/C++もあります。Max専用のDSLとしてGenExprもありますね。
Mac向けのMaxでは、Appleが用意していたJava 6だけがサポートされていて、Oracle版のJava 7以降はMaxでは使えないという状況が続いていました。Ableton/Cycling'74のユーザーフォーラムにも「Is installing Apple Java SE 6 unavoidable to use Max for Live on Mavericks?」などのスレッドが立っていて、セキュリティの心配があるJava 6を使わないといけないことへのJavaユーザの不満が綴られています。(Windowsではこの問題はなかったようで、新しいJavaへの対応は進んでいたようです)
そのスレッドに数ヶ月前、「Max 7.3ではOracle Javaの新版をサポートしたみたいだよ」とリンク(https://cycling74.s3.amazonaws.com/support/java_install.html)が張られました。Max 7.2.5とMax 7.3.0のリリースノートを読み比べると、Java対応に関しての記述が変更されています。このリンク先をザックリまとめると、
となっています。ただ、文書内のJavaバージョンは「jdk1.8.0_91」となっていて、macOS 10.13 High SierraならびにJava 9の登場前のドキュメントっぽいです。
ためしに、今日時点で入手できるJava 8の最新版JDK 8u151をmacOS 10.13にインストールして試してみました。
$ java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
で、/Application/Max.appについて「情報を見る」で「32ビットモードで開く」をオフにします。(下記スクリーンショットではオンになっています)
すると、ちゃんとmxj~のヘルプも動いてくれるようになりました。
ただ、64ビットモードにするといくつかのオブジェクトが動作しなくなる問題があります。また、Java 8で自作エクスターナルを作ったとしても、他の人に使ってもらうためにはJava 6への下位互換性を考慮して「javac -target」の指定をする必要がありそうです。
なお、Max 7のオンラインドキュメントにはmxjとmxj~のリファレンスが見つからない状態になっていますし、ローカルにインストールされているチュートリアルやドキュメントはMax 4時代から更新がなさそうで、今後のJava対応に関しては悲観的ではあります。ちなみにJava関連の一式は /Applications/Max.app/Contents/Resources/C74/packages/max-mxj にインストールされています。
給油日 | オドメーター (km) | 給油量 (L) | 単価 (円/L) | 燃費 (km/L) | 距離単価 (円/km) |
---|---|---|---|---|---|
2017-03-18 | 8559.6 | 2.76 | 125.72 | 45.94 | 2.74 |
2017-04-29 | 8703.9 | 2.77 | 127.80 | 52.09 | 2.45 |
2017-04-29 | 8905.9 | 3.21 | 128.97 | 62.93 | 2.05 |
2017-04-30 | 9032.5 | 2.20 | 131.82 | 57.55 | 2.29 |
2017-05-01 | 9190.3 | 2.70 | 127.04 | 58.44 | 2.17 |
2017-05-01 | 9325.7 | 2.52 | 128.97 | 53.73 | 2.40 |
2017-05-01 | 9469.7 | 2.17 | 129.03 | 66.36 | 1.94 |
2017-05-02 | 9625.3 | 3.71 | 133.96 | 41.94 | 3.19 |
2017-05-02 | 9787.8 | 2.81 | 125.98 | 57.83 | 2.18 |
2017-09-15 | 10004.7 | 3.09 | 123.96 | 53.03 | 2.34 |
2017-10-04 | 10152.2 | 2.08 | 125.96 | 70.91 | 1.78 |
2017-10-18 | 10314.9 | 3.42 | 125.73 | 47.57 | 2.64 |
環境にできるだけ依存せずにグラフを描いたりしたいとなるとHTML5かなぁと思い、はじめてのJavaScript。まだ配列の使い方を調べていないので、sinもcosも直に計算&描画してます。
使ったHTMLファイルは以下。
続きを読む給油日 | オドメーター (km) | 給油量 (L) | 単価 (円/L) | 燃費 (km/L) | 距離単価 (円/km) |
---|---|---|---|---|---|
2017-03-18 | 8559.6 | 2.76 | 125.72 | 45.94 | 2.74 |
2017-04-29 | 8703.9 | 2.77 | 127.80 | 52.09 | 2.45 |
2017-04-29 | 8905.9 | 3.21 | 128.97 | 62.93 | 2.05 |
2017-04-30 | 9032.5 | 2.20 | 131.82 | 57.55 | 2.29 |
2017-05-01 | 9190.3 | 2.70 | 127.04 | 58.44 | 2.17 |
2017-05-01 | 9325.7 | 2.52 | 128.97 | 53.73 | 2.40 |
2017-05-01 | 9469.7 | 2.17 | 129.03 | 66.36 | 1.94 |
2017-05-02 | 9625.3 | 3.71 | 133.96 | 41.94 | 3.19 |
2017-05-02 | 9787.8 | 2.81 | 125.98 | 57.83 | 2.18 |
2017-09-15 | 10004.7 | 3.09 | 123.96 | 53.03 | 2.34 |
2017-10-04 | 10152.2 | 2.08 | 125.96 | 70.91 | 1.78 |
燃費が良すぎて何かがおかしい気がする。長距離巡航だったけど、それにしても……。