2014年11月8日土曜日

Goldberg Variations on VGS

唐突かつ当たり前に始めたGoldberg Variations on VGSについて、唐突かつ当たり前に始めすぎた感があるので、説明しておきます。
Android: https://play.google.com/store/apps/details?id=com.suzukiplan.BWV988
iPhone: https://itunes.apple.com/jp/app/goldberg-variations-on-vgs/id936643076?l=en&mt=8

Goldberg Variations (ゴールドベルク変奏曲)は、J.S.Bach作曲(BWV988 ト長調/ト短調)の音楽で、2段式のチェンバロ用の練習曲として書かれたものです。バッハがチェンバロ演奏の手解きをしたヨハン・ゴットリープ・ゴルトベルク少年(当時14歳)が、不眠症に悩むカイザーリンク伯爵のためにこの曲を演奏したという逸話からこのタイトルが付いたようですが、ぶっちゃけかなり弾くのが難しいので、真偽のほどは定かではありません。そもそも、私なら逆にギンギンになって眠れない気がします。

原本の楽譜に記載されている表題は、「Clavier Ubung bestehend in einer ARIA mit verschiedenen Veraenderungen vors Clavicimbal mit 2 Manualen」。2段式のチェンバロ用のアリアとその変奏みたいな感じの意味です。Goldbergとは何だったのか・・・

グレン・グールドの録音が特に有名で、1956年にリリースされたデビュー盤と、晩年(1981年)にリリースされたものの2種類があります。

で、そのゴールドベルク変奏曲をVGSでプレイというのが今回のアプリの趣旨です。

VGSのMMLには、一般的なMMLには無い「%」というオペランドがありますが、これは、音符の長さの何%目でKEY-OFFイベントを投げるかを指示するものです。実はこれはかなり重要な機能です。VGSの音源(エミュレータ)本体の機能ではなく、MMLコンパイラの機能ですが。この機能の重要性を理解するには、チェンバロとピアノの違いを理解する必要があります。

チェンバロとピアノの楽器としての最大の違いは「強弱の表現」の有無です。チェンバロはキーを押すと絃を弾いて音を鳴らすのに対して、ピアノはキーを押すとハンマーが絃を叩いて音を鳴らします。チェンバロは機械的な仕組み上、ギターのような強弱表現ができませんが、ピアノはキーを押した時の運動がそのままハンマーに伝わるため繊細かつダイナミックな強弱表現が容易に可能です。

ピアノの音の強弱による表現の幅は絶大なものです。それ故に、そこに頼り切ってしまうことでモチーフの本来あるべき姿が濁ってしまうデメリットがあると私は考えています。これをデメリットと捉えるか否かは、演奏者の性質(何処に重点を置いているか)によりけりですが。私の場合、強弱表現が無いことによりモチーフの本来あるべき姿が露わになることに異常な性的興奮のようなものを覚える性癖があります。グールドの演奏のスゴイところは、モチーフを明確に示すチェンバロ的な演奏をしつつ、ピアノ的な要素も利用して表現しているところではないかと思います。これだけでご飯3杯はイケる感じです。

VGSのMMLは%オペランドにより、チェンバロ的な演奏をすることも「比較的容易に」可能です。MIDIでもイベント処理機構としては同じ仕組みだから出来なくはないですが、GUIのシーケンサ(※)だと入力がかなり面倒だからMMLの(というよりMMLしかない)VGSは、チェンバロ的な演奏をする為に生まれた楽器だといっても過言ではありません。そんなことをいうとチェンバロ厨に怒られてしまうかもしれませんが。一応強弱表現もできるのでグールド的な演奏もできます(が、今回は強弱表現は一切入れません)。

※MIDIは汎用性が高すぎるのでイベント数が多すぎて、MMLで制御するのに向かないからMIDIシーケンサはだいたいGUIです。私が知る限り唯一の例外はPC-98版のレコンポーザぐらい。Windows(95)版レコポは、そのレコポの最大の強みがキレイサッパリ失われていましたが…そして、レコポ開発元のカモンミュージックももう潰れてしまいましたが…(Singer SongwriterのPro版とかにはそれっぽい機能があるらしいけど、ノータッチです)

注意深く聴いてみると、同じ8分音符でもモチーフの切れ目(やスタッカート表現)で細かく%が変わっていることに気付くかもしれません。実際、かなり細かい音符区切りで%の値を変化させることで、モチーフの本来の姿を表現しています。

実際のMMLは下記のような感じです。(下記はVariation 4です)
$Init r1024 l16 \s220 \e4420 @2 %75 v14

#-----------------------------------------------------------------------------
Ch0 t95 m8 (Init)
Ch1        (Init)
Ch2        (Init)
Ch3        (Init)
Ch4        (Init)
Ch5        (Init)

#-----------------------------------------------------------------------------
Ch0 o4
Ch0 r8%30b8%50g8 %30>d8<%40a8>%50d8 %80g2f+8^8
Ch0 r2.r8<%30a8>%60c8.%30e8%60g8%30c+8 %70a4%30d8%80g4.%40f+8%60e4
Ch0 %30d8%60c4%50d8%60c+4%80d8^8<

Ch0 r8%30b8%50g8 %30>d8<%40a8>%50d8 %80g2f+8^8
Ch0 r2.r8<%30a8>%60c8.%30e8%60g8%30c+8 %70a4%30d8%80g4.%40f+8%60e4
Ch0 %30d8%60c4%50d8%60c+4%80d8^8

Ch0 r8%30f+8d8%50g8 %80b4.%40agf+ed+e%80f+4.
Ch0 %30e8%50g8%30c+8%40d+8%80e4 %60d+c+r8c8%40e8<%50a8 %30b8>%40d8<%50g8>%70c4.%30d8c8
Ch0 %40c%80d4^16%40c dcd8<%40g8%60f+4%90g8r8

#-----------------------------------------------------------------------------
Ch1 o4
Ch1 r2%30d8%40f+8<%30b8>%40g8%60>c8<%40bg%80a8^8
Ch1 r2%30c8%40e8<%50a8>%80d4.g8^8
Ch1 r2.r8>%30c+8%40e8%60%40g8%60>c8<%40bg%80a8^8
Ch1 r2%30c8%40e8<%50a8>%80d4.g8^8
Ch1 r2.r8>%30c+8%40e8%60%30d8%50c8%70c8d8%80c8.%80d4r8
~ 中略 ~

Ch2 r8%80d8%30f+8%80e8 r4c+8%30e8
Ch2 %80%80d4r8
Ch2 r8%80d8%30f+8%80e8 r4c+8%30e8
Ch2 %80d8%30g8e8%80c4.%40c+8<%80b4.g8%30b8
Ch2 e8%40agf+g>%80d4.c8%30c8<%80f+8%30g8a8%80g4r8

#-----------------------------------------------------------------------------
Ch3 o3
Ch3 %80g4.f+4.e4.r8%30d8f+8
Ch3 <%80b4.>c4.d4.r8%30d8
Ch3 g4.f+4.e8%30g8c+8 %80a8>%30c+8
Ch3 <%80f+4.%30g8<%80g4.%30f+8a8%80d8.%40>def+

Ch3 %80g4.f+4.e4.r8%30d8f+8
Ch3 <%80b4.>c4.d4.r8%30d8
Ch3 g4.f+4.e8%30g8c+8 %80a8>%30c+8
Ch3 <%80f+4.%30g8<%80g4.%30f+8a8%80d8.%40>ab>c+

Ch3 %80d4%30c8<%80b4%30g8>c8<%80f+8 %30a8b8%80d+8%30e8%80g8 %30e8a8%80f+8 %30e8a8r8e4%30d8
Ch3 %80c2c8<%80f+8 %30d8f+8
Ch3 %80g8%30b8g8>%80c2%30d8<%80g4r8

ゴールドベルク変奏曲のモチーフをアナリーゼした結果を実際に示しつつ表現してみようというのが、今回のアプリの目的です。そういう趣旨なので、敢えてループは演奏していません。一部例外はありますが。なお、カノンだけはループするのが通例(グールドもカノンの前半はループしている※)ですが、通例を守る必要はないと思うので無視しています。

※追記:そういえば、グールドがカノン(前半)をループしているのは1981年盤で、1956年盤では無視していましたね。今回のSUZUKI PLAN盤はその中間かな。(ループしたいバリエーションではループ)

まぁ、このアプリは東方VGSの時のようにヒットすることは無いと思います。

ヒットすることは無いと思うから、マネタイズについても色々やる予定です。
ちなみに、iOS版もリリースします。(現在、審査待ち)
iOS版もリリースされました。

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...