2018年11月27日

wxLuaApp でデスクトップアプリを作ってみた

 GitHub - wxLuaApp の件。デスクトップアプリを作ってみた。けっこう調子良くサクサク書ける。

 高速フーリエ変換が必要だったので、Lua のライブラリを探した。実は、ベンチマークプログラムの SciMark for Lua の FFT が十分実用的だった。LuaJIT のウェブサイトの "Performance" ページでベンチマークに使われているもの。たったこれだけ。16384 点のフーリエ変換がほぼノータイムで完了する。

function fft_bitreverse(v, n)
  local j = 0
  for i=0,2*n-4,2 do
    if i < j then
      v[i+1], v[i+2], v[j+1], v[j+2] = v[j+1], v[j+2], v[i+1], v[i+2]
    end
    local k = n
    while k <= j do j = j - k; k = k / 2 end
    j = j + k
  end
end

function fft_transform(v, n, dir)
  if n <= 1 then return end
  fft_bitreverse(v, n)
  local dual = 1
  repeat
    local dual2 = 2*dual
    for i=1,2*n-1,2*dual2 do
      local j = i+dual2
      local ir, ii = v[i], v[i+1]
      local jr, ji = v[j], v[j+1]
      v[j], v[j+1] = ir - jr, ii - ji
      v[i], v[i+1] = ir + jr, ii + ji
    end
    local theta = dir * math.pi / dual
    local s, s2 = math.sin(theta), 2.0 * math.sin(theta * 0.5)^2
    local wr, wi = 1.0, 0.0
    for a=3,dual2-1,2 do
      wr, wi = wr - s*wi - s2*wr, wi + s*wr - s2*wi
      for i=a,a+2*(n-dual2),2*dual2 do
        local j = i+dual2
        local jr, ji = v[j], v[j+1]
        local dr, di = wr*jr - wi*ji, wr*ji + wi*jr
        local ir, ii = v[i], v[i+1]
        v[j], v[j+1] = ir - dr, ii - di
        v[i], v[i+1] = ir + dr, ii + di
      end
    end
    dual = dual2
  until dual >= n
end

 その後のグラフ表示も上の動画の通りで、何の問題もない。ああもちろん、16384 点のグラフを全部真面目に描画したら重くて大変なので、画面解像度に合わせて間引きはしています。LuaJIT 楽しい。

 メモリは結構食っているようです。上の状態で、25 MB ぐらい占有している。double 型 16384×2 点を Lua の数値型で保持しているわけだから、オーバーヘッドはまあ大きいだろうな。ffi.new(double[]) みたいにすれば少し節約できるかもしれないけど、そこまでしなくてもいいかなと思う。二次元データを使うようになったら考えたほうがいいかも。

posted by toshinagata at 23:25| 日記

2018年11月24日

ナツミカン色づき始める

 今年もナツミカンが色づき始めた。30個ぐらい実ってるかな。

20181124-2.jpg

 最近雨がほとんど降ってないので、実の表面が汚れていて、カビみたいなのがつき始めているものもある。このまま放置するとたぶん腐ってしまうので、水をかけて洗ってみた。太陽の光が水滴に反射してきれいだったので、写真を撮ってみたんだけど、腕前の関係で大してきれいには見えておりません(苦笑)

20181124-1.jpg

 今年の春に収穫した実は、味は悪くなかったのだが、果汁が少なくてスカスカだった。今年の夏はなるべく潤沢に水をやったつもりだけど、出来はどうだろうか。

タグ:園芸
posted by toshinagata at 13:47| 日記

2018年11月17日

映画「ボヘミアン・ラプソディ」

 見てきました。素晴らしかった…(以下、ネタバレがあります)

 最初にクイーンが結成されるシーンからして鳥肌ものだった。フレディがブライアンとロジャーの前でアカペラで歌い出し、それに2人がコーラスをかぶせる。あの歌声はフレディ本人? それはわからないけど、インパクト十分の登場。

 「ボヘミアン・ラプソディ」が生まれる経緯は特に念入りに描かれる。その前のいくつかのシーンで、まるで予告するように、「バラード」部分のピアノのフレーズが断片的に流れる。

20181117-1.png

 そして、「テープがすり切れるまで重ねた」と伝えられる「オペラ」部分の録音。どんどんエスカレートするフレディのリクエストに、劇場では思わず笑い声が漏れていた。何かを作り出すって、こういう風に、端から見ると滑稽に見えたりするものなんだよね。映画では「オペラ」部分のフルコーラスは流れないけど、公式 Twitter がこんな動画を流しているので紹介。歌詞がきっちり追えるので面白さが増します。

 セクシュアリティに関わるいくつもの辛いエピソードを経て、ラスト21分の「ライブ・エイド」のシーンに至る。もう言葉が出ない。ストーリーのドラマチックな盛り上がりは史実とは違うらしいけど、そんなことはどうでもいい、と思わせる。最高の音楽と、最高の演出。クイーンの音楽をもっともっと聴きたくなる、そんな体験でした。

タグ:映画 音楽
posted by toshinagata at 09:54| 日記
email.png
Powered by さくらのブログ