CygwinでSugar制約ソルバーを動かす

Sugar制約ソルバーSugar: a SAT-based Constraint Solverは、パズルをSugar制約ソルバーで解くみたいな感じでパズルをSATのデータに変換してSATソルバーに丸投げして解かせる感じのソフトウェアです。たぶん動作環境としてはLinuxしか想定していなくてCygwinWindows)で動かしたらハマったのでその対処法です。だいぶ昔にやったのを思い出して記事にしたので、もう今はWSLを使えばいいのかもしれませんが…。

1.Cygwinを導入する

パッケージをあとから入れるとautorebaseでめっちゃ時間がかかったりするらしい(僕は、ちょっと時間がかかりました) アンチウイルスを切ると治ることもあるらしい

(最新のminisatをビルドするなら、g++とmakeを入れておく)

(Sugarに必要なのでperlも入れる(もともと入ってる?))

2.Sugarを入れる

 前述の公式サイトからダウンロードする。2.3.4からダウンロード方法が変わっており、以前のzipファイルと同じものはbuild · master · cspsat / prog-sugar · GitLabにある。jarファイルが本体で、sugarというperlスクリプト(以下、スクリプトと呼ぶ)が前処理・後処理をやっている。通常はこのスクリプトのほうを使えばいいはず。

なお、2.3.3まではJRE 8でも動いていたが2.3.4だとencodeに関するエラー

ERROR Exception java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;

が出た。最新版のJDK(ver15)を入れたら治った。

3.(minisatをビルドする)

MiniSat Pageここからダウンロードできる。最新版じゃなくてよければMiniSat_v1.14_cygwinをダウンロードし、この節を読み飛ばしてよい。ビルドする気があるなら、minisat-2.2.0.tar.gzをダウンロードする。

READMEを参考にしながらビルドする。基本的には

cd core

export MROOT=..

make r

でいける。ただ、friend関数がなんとかみたいなエラーが出るので、言われた通り(?)コンパイルオプションに-fpermissiveを追加する。すなわちmtl/template.mkをいじって

CFLAGS ?= -Wall -Wno-parentheses -fpermissive

と変更する。するとうまくいきそうになるがこんどはldでmemUsedPeak()が見つからないというようなことを言われるのでutils/System.ccの最後の#endifの直前に

double Minisat::memUsedPeak() { return 0; }

という行を入れる。これで通るはず。なお上記2か所については調べたらすでにgithubにissueが投稿されていてプルリクエストもマージされているようだったがそちらをビルドしたらまたエラーが出たのでやめた(正式リリースされてないので当然か)。

なお、READMEに書いてある通りにmake rではなくmake rsとすると、static(といってもcygwin1.dllはないと動かない)なものができる。cygwin上で使うならmake rでいいはず。

minisatじゃなくて他のを使ってもいいと思う。スクリプトの中を見ると、minisatとかglucoseとかlingelingとかいくつか書いてあるので少なくともそれらには対応していることがわかる。lingelingも以前やってみたことがある気がするが忘れた。

4.スクリプトをいじる

このままsugarを実行するとno SAT fileと出てくる。これをどうにかする必要がある。

まずデバッグのためにsugarの実行時に-vvというvery verboseな出力を出してくれるオプションを付けると(例: bin/sugar examples/nqueens-8.csp -vv)、java.lang.ClassNotFoundExceptionが出ていることがわかる。しかし文字化けしていて不便なので、スクリプトの最初のほうの

my $java = "java";

my $java = "java -Duser.language=ja -Dfile.encoding=UTF-8";

に変えると、文字化けがなくなる(やはり"エラー: メイン・クラスjp.kobe_u.sugar.SugarMainを検出およびロードできませんでした"と出ている)。

要するにjava.exeがjarファイルを見つけられないということなので、さっきの次の行にある

my $jar = "/usr/local/lib/sugar/sugar-$version.jar";

の通り、cygwinのインストールディレクトリの中の/usr/local/lib/sugar/にjarファイルを入れる。

あるいは、最初のほう(useがいくつかあるところ)に

use FindBin;

と書いてから

my $jar = "$FindBin::Bin/sugar-$version.jar";

としてもよい。FindBinは、スクリプトファイル自体がある場所を教えてくれるやつで、sugarをダウンロードした状態のままならbinフォルダの中にスクリプトといっしょにjarも入ってるのでこれで動く。

ただ、Cygwinと(Windows上の)Javaの相性の問題で、このままではまだ動かない。スクリプトjavaが関わる場所を見ると

sub java {

が見つかる。まず、この中身の6行目くらいにある

$cmd .= " -cp '$jar' $class";

を、

$cmd .= " -cp `cygpath -w $jar` $class";

に変更する(シングルクォート ' ではなくバッククォート ` になっていることに注意)。これだけでもさっきと結果が変わっているはず。cygpathはcygwin用のパスをWindows用に変換したりその逆をしたりしてくれるコマンド。これによりjava.exeがjarを見つけられるようになる。ためしに実行してみると

ERROR Exception \tmp\sugarXXXX.cnf (指定されたパスが見つかりません。)

などと出ている。これもjavaが入出力用のファイルを見つけられていないからである。そこで、sub javaに渡されている$argsの中身を直さなければならない。javaを呼び出している箇所を(&javaで検索して)調べるとconvertとtranslateとencodeとdecodeの四か所ある。なので、それぞれの中で$argにファイル名を格納している場所を同様に変更すればよい。通常の用途ならencodeとdecodeだけ変更すればよいはず。すなわちencodeについては、sub encodeの中の

$arg .= " -encode '$csp_file' '$sat_file' '$map_file'";

$arg .= " -encode `cygpath -w $csp_file` `cygpath -w $sat_file` `cygpath -w $map_file`";

と変更し、decodeについてはsub decodeの中の

$arg .= " -decode '$out_file' '$map_file'";

$arg .= " -decode `cygpath -w $out_file` `cygpath -w $map_file`";

と変更する。

そうすると今出てるエラーはsatソルバー(最初のほうのmy $solver0 = "xxx";に書いてあるもの)が見つからないというものになっているはず。そこで3.で得たminisatの実行ファイルをminisat.exeという名前に変えてcygwinのusr/local/binとかに入れ、

my $solver0 = "minisat";

に変える。あるいは先ほどのようにスクリプトと同じフォルダにminisatを入れて

my $solver0 = "$FindBin::Bin/minisat";

としてもよい。これで動くはず。動かなかったらコメントとかで教えてください。

なお、パスの変換とかをしてる関係で、入出力に関連するファイル・フォルダに半角スペースが入っていると動かない可能性が高いので注意。

定理証明支援系Leanのインストールと初期設定(Linux)

Leanのドキュメントは原則としてLean communityからたどれます。Lean自体のホームページからインストール方法を探そうとするとここに飛ばされます。

僕が使っているLinuxDebian/Ubuntuですが、せっかくなのでGeneric Linuxのほうをやってみます(Debian/Ubuntuのほうに掲載されているシェルスクリプトを読んでみてもGeneric Linuxと同じようなことをやっている)。

というわけで

curl https://raw.githubusercontent.com/Kha/elan/master/elan-init.sh -sSf | sh

を実行します。
   default toolchain: stable
modify PATH variable: yes

でよいか聞かれます。普通はこれでいいと思うのでエンターを押して先に進みます。しばらくするとインストールが終わります。
再起動とかsource ~.profileするとちゃんとPATHに$HOME/.elan/binが入っているのがわかります。Leanの本体は$HOME/.elan/toolchains/stableにあります。
Leanのサイトに戻りましょう。VSCodeはいいと思うので(leanにパスが通っていれば問題なく動くと思います)、次はleanprojectをインストールします。まあこれも書いてあるとおりなんですが…ページ上のほうにpython3-pipとpython3-venvを入れろと書いてありますのでそれは事前にやっておきましょう。入ってなくても途中でやることにはなります。
で、これでインストール自体は終わりなのですが、ページの最後を見ると新規プロジェクトの作り方(leanprojectの使い方)へのリンクが載っています。プロジェクトを作ってからじゃないとVSCodeとかでも警告されるので、ここも読みましょう。ちなみにleanprojectを使うには事前にgitをインストールしておく必要があります。
どこかのフォルダでleanproject new my_projectとか入力すると、mathlibというleanの標準ライブラリ的なものがダウンロードされ、プロジェクトができます。(ダウンロードされない場合は先にleanproject get-mathlib-cacheをやっておくとうまくいくかも?

my_project/_target/deps/mathlib/srcを見ると線形代数・論理学などの様々な分野の定義・定理を含んだleanファイルがたくさんあるのがわかります。VSCodeでmy_projectフォルダを開き、公式サイトにしたがってtest.leanを作るついでにそっちも眺めてみるといいでしょう。
なお、リファレンスマニュアルのほうを読むとleanpkgコマンドを使うやりかたが最初に書いてあるのですが、leanpkg new my_projectとするとmathlibの入っていない必要最小限の新規プロジェクトができるように見えます。
leanpkgとleanprojectの違いなどはよくわからないのですが、Leanは全体的に情報が錯綜しているのでそこは諦めましょう。
以上で環境構築は終わりなので、Learning Leanに列挙されているドキュメントを読んで、Leanを使ってみましょう。普通はTheorem Proving in Leanから入ればいいかと思いますが、途中で出てくる論理学・型理論の知識にあまりにも馴染みがない人は他のものを試してみてもいいでしょう。Mathematics in LeanやLogic and Proofなどでしょうか。ただLogic and Proofあたりの知識は他の本とか読んだほうがいい気もします。
僕自身は、どれか一冊を読んで身につけたというよりは、色々な場所でちょっとずつ触れて挫折しながら本当に基礎的な部分だけはわかってきたという感じなので日本語の本のおすすめとかはあまりできないのですが…いちおう挙げておくと、『数学基礎論講義』(田中一之ほか)は、ゲーデル不完全性定理のちょっと前くらいまで読んだ気がします。あと『数理論理学』(戸次大介)も日本語が上手ですごいと思いました。ただ、カリーハワード同型とか型システムの話を定理証明の文脈で書いた日本語の本は(というか英語の本も)あんまり知らないです。Coqについての入門書『Coq/SSReflect/MathCompによる定理証明』が最近出たのでそれくらいでしょうか…カリーハワード同型やCalculus of Constructionについては、Lectures on the Curry-Howard Isomorphismを読むといいのかもしれません。僕はほんのちょっとだけ読んだことがあります。

いずれにしろTheorem Proving in Leanを読むのは具体例が貧弱だったりして結構大変でした。これからもっと読みやすいのができるといいなと思います。

世界の眺め方について

1.序文

「習うより慣れろ」という言葉がある。何かに熟達するには、慣れなければならない。

一般に我々は、毎日全く新しいことをするわけではなく、以前の経験に基づいて行動するものであるから、慣れることは人生における体験の原型であると言ってもよく、従って考察する価値がありそうだ。

 

2.差異と反復

慣れは、反復によって実現される。過去の記憶に、現在の体験を重ねていく。そこで我々が得るものは、差異である。反復し、ときには上手くいき、ときには意図しない結果になる。その違いを体得することにより、やがて我々は意図的に自らの行動を選択できるようになる。

違いを意識できてはじめて、”同じ”という意識がうまれる。我々はいつも”同じ”ことをできるようになるために様々な”違う”ことをする必要がある。それが試行錯誤の意味である。「失敗は成功の母」はどちらかといえば経験則的な意味合いだと思うが、”成功ではない”ことを体験しないと成功は見えてこないと解釈することも可能かもしれない。「人間の最大の罪は鈍感である」という言葉は、まず第一に差異に敏感であるべきことを説いたものであろう。

 

3.自己の認識

人間の幼児が自分の身体をそれと認識するのは1歳~2歳であるといわれる。それまでは自身とそれ以外という境界面を持たないのである。暗闇の中に長時間いると自分の体がどこまでなのかわからなくなるとかそういう実験もどこかで聞いたことがあるので、「自分」の存在という最も基本的な認識でさえもこの”差異”に関係していると言える…のか?

 

4.記憶

これ以上僕が差異の話に深入りしても意味ない気がするが最後に、さきほど出した”記憶”という言葉について。差異は過去と現在の比較で見いだされるので、記憶あってこそのものである。”継続は力なり”といわれるのは、継続できるような状況なら熟達できる可能性も高いという疑似相関的な面もあるが、記憶が新鮮なうちに次の体験を重ねることのメリットは全く無視できないものであろう。

 

5.思考と言語

以降は、”思考”という領域に限って熟達の方法を考える。

世界は本質的に複雑で、それを認識するには熟達した思考が必要とされる。複雑というのはつまり情報量が多いということである。大量の情報(≒意味)を創り出したければ、大量の差異がなければならない。このために(もちろん実際には目的ではなく結果なのであろうが)人間は、判別のしやすい図形の集合あるいは音の集合を生み出した。すなわち、言語である。

従って、思考は本質的に言語と不可分である。サピア=ウォーフの強い仮説、あるいは「語りえぬものについては、沈黙しなければならない」ほどのことを言いたいわけではないが、少なくとも言語について全く検討せずに思考に熟達することを検討するのは難しいと思う。

 

6.構造

世界には、単純な差異だけでなく、対立・矛盾・依存など様々な関係を含んだ構造が存在している。それを認識するために、しかるべき語彙・文法が存在している。この二者は不可分のものであり、ここでも必要以上に対照することはしない。意味をもつ各部分が、より複雑な構造的意味をもつ全体を構成している、ということが重要である。

 

7.理解-意味のサイズ

この章は比較的(特に、と言ってもいいかも)論理の展開・根拠が薄弱なので注意。

例えば「カラスは黒い」という文の意味を理解することを考える。この文はひと目見て容易に理解できるものに思えるが、ここで「では、果たして”カラス”や”黒い”はどういう意味なのか?」「この文を読んだまさにそのときにそれらの意味を理解していないと真に理解したとは言えないのではないか?」と考えたとする。そこで例えば、「都市部で多く見られ、よくゴミ捨て場を漁っている鳥は、その体表の物質が可視光の全ての波長を吸収しやすくなっている」などと言い換えたとしよう(ここまで書いて気付いたが、カラスの定義に黒いが入っているかもしれないとかそういう問題はさらに事態を難しくしてしまうので無視)。これで、果たして以前より文の意味をよく理解できるようになったと言えるだろうか?却って読み取りにくいものになってしまったのではないか。それは単に「漁る」「体表」の意味は何なのか、ということだけではない。仮にそこに不安がなかったとしてもこの文から受け取った意味は一見して以前より曖昧で心もとない(このワードチョイスが正しいかわからないが…)ものになってしまってはいないだろうか。

それは、構造が複雑だからである。なんとなく、読んだ時に意味が一つにまとまらない。「吸収しやすく」のあたりを読んでいても、「都市部で多く」のあたりと意味が”有機的に”つながっている感じがしない。

大抵の言語では、「ので」「that」などの接続詞・関係詞とかそういうものを使えば、いくらでも複雑な文を書ける。しかし、われわれが一つのまとまりとして意味を”理解”できたと感じるサイズはそれほど大きくない気がする。逆に言えば、接続詞を使わずに書ける文が、我々が真に”理解”できる意味のサイズの上限なのかもしれない。これは第4節で述べた”記憶”と関わっている気がするがそのあたりはよく知らない。

 

8.語彙-困難を分割するもの

5・6節では、複雑な世界を理解するためのものとして言語とその構造がある、と述べた。しかしこの漠然とした示唆があってもなお、世界を理解するのは困難な作業である。そこで、「困難は分割せよ」という指針を7節の例に照らし合わせてみると、次のようなことが言えると思う。

すなわち、「都市部で多く見られ、よくゴミ捨て場を漁っている鳥は、その体表の物質が可視光の全ての波長を吸収しやすくなっている」という文を一度に理解することの困難さは、「カラス」と「黒い」の意味をそれぞれ理解することの困難さ、そしてその上で「カラスは黒い」という文を理解することの困難さに、分割することができるのである。この利益をもたらしたのは「カラス」「黒い」という語である。それらの意味がはっきりと語のかたちで特定されているからこそ、我々は「カラスは黒い」という文だけを読んでひとまず納得感を得ることができる。

一般に「言語能力」や「語彙」が「頭の良い」人の特徴のように見なされるのは、世界を理解するというこの困難を分割するのにこれらが大いに役立っているからである。

 

9.抽象化と名付け

前節では、困難がいかに「分割されている」かという「状態」について述べたが、「カラス」「黒い」などの概念はア・プリオリに我々に備わっているわけではないので、困難をいかに「分割する」かというその「過程」が当然問題になる。

結論からいえば、その過程は一般に「抽象化」という言葉で表されるものだと思う。我々はここで再び「慣れ」という言葉を思い出す機会を得る。

すなわち、「カラス」「黒い」などの概念は「ア・プリオリ」ではない、言い換えれば何らかの「経験」(≒慣れ)によって獲得される。我々は一日一日と人生を反復するにつれ、家の近くでゴミを荒らす鳥と湖の上を滑る鳥との違いに気付く。あるいはアスファルト、夜空、筆で書いた文字、これらは何らかの共通した視覚的な特徴を持っていてそれはリンゴやイチゴとは違うということに気付く。そして何らかのタイミングでそれらはそれぞれ「カラス」「黒い」と表せることを知る。細かい違いを捨て(捨象)、ある側面・性質だけを抜き出す、これが抽象化である。

そして、この例だけから結論付けるのはいささか乱暴かとは思うが、抽象化は名前を付ける(あるいは知る)ことによって完成すると言っても大きく間違えてはいないとも思う。わざわざ細かい違いを捨ててまで取り出すほどの性質であれば名前は付いているはず、あるいはこれから付けるべきである。逆に、名前を知ることは、何となく感じていたその共通の特徴がそれほど本質的なものだったという自信をもたらすものでもある。抽象した意味が、言葉として世界の中にしっかりと根ざし、記憶に定着することによって、我々はそれを土台にして思考することに慣れ、新たな段階へと飛躍することができるのである。

 

10.例:プログラミングと数学

我々の思考を助ける言語のうち、自然言語でないものを二つ、手短に取り上げる。

プログラミングでは機能・変数などに名前を付けることが大事だとよく言われる。0と1の差異の認識に加えて記憶力でも人類を圧倒するコンピュータではあるが、それと関わるのが人類である以上、名付けによって世界観を明確にする必要はある。

また、「数学とは、異なるものに同じ名前を付ける技術である」という言葉も同じところを意図したものであろう。異なると思われていたものから同じ構造を取り出し、それに名前を付けることで数学の世界は発展していくのである。

この二つは、記法を極めて明確にしたおかげで、良く意味のわからないものでもとりあえず正確に扱えるという特殊な能力を持つに至った言語である。従ってこれらで書かれた文を理解するには、まずは文を構成する語の正確な理解、そして複雑な構造を意味がわかる(小さな意味に分割できる)まで保持する記憶力、その双方が通常の言語より重要になると思われる。これ以上のことはまたの機会に述べたい。

 

11.捨象の罠

抽象とはかくも有意義な行為であるが、それが伴う「捨象」という痛みもまた重大である。「AとはBみたいなものだ」という比喩によって、あるいは「理系って〇〇だよね」などと”大きな主語”の形で切り捨てられた違いの中には、決して無視できないものもあろう。

その意味で、言葉というものはそれだけで「私はこれらのものの違いは無視してまとめて一つのものとして認識し、そこで世界を分割したので、その向こう側には興味がありません」という宣言として機能する。もちろん、世界の全てを一人で知ることはできないからある程度そうなってしまうのは仕方ないが、物事の同一性に気付いてそれに満足するだけでは、「認知の歪み」という罠にはまってしまうかもしれない。

 

12.結び

この世界を眺め、世界について考えようとするにあたってまず必要なのは、日々の反復の中から、差異を見つけ出すことである。もっと良く考えたければ、そこにある差異がもたらす意味を言葉として記憶することが役に立つ。抽象化の過程で捨てられた差異にも注意しながら、その言葉の上で思考することに慣れていく。そのことが、次なる差異を見つけ出すことにもつながるのであろう。

【Minecraft】小型で簡単で高効率な焼き鳥製造機

Minecraftの記事もこれで5個目みたいです。

今回は

・小型(=26体超えで窒息ダメージが入る制限を回避)

・高効率(=溶岩によるロスト(ほぼ)無し)

・簡単(=溶岩出し入れ無し)

(・物理演算少なめで負荷が少ない)

(・ホッパートロッコ無し)

という目標を達成した焼き鳥製造機を開発したので公開します。

これを全て満たしているものは調べても出てこなかったので、かなりハイレベルだと自負しています。ではまず概観図です。

f:id:turgenev:20200428131147p:plain

基本的には、卵を産む親鳥を入れる場所、小鳥が産まれる場所、および成長した親を焼く場所の3つに分かれています。順に見ていきます。

f:id:turgenev:20200428131342p:plain

ここには現在親鳥80羽が入っています。原則的には1マスに26体以上のmobがいると窒息ダメージが入ってしまうのですが、ハシゴがあるマスにはそれが適用されない、というのが重要なポイントです。下のホッパーはもちろん卵を回収するためで、隣のディスペンサーに接続しています。なお、左側にあるディスペンサーは、親鳥を増やすときに卵を投げるのに使っていましたが、親鳥の数を変える必要が無ければもう使いません(壊すのが面倒なので放置しているだけです)。ちなみに親鳥の数を減らす方法は思いついていません…(弓矢をディスペンサーで撃ったらすり抜けました)。

f:id:turgenev:20200428150100p:plain

小鳥が溜まっているところ。ディスペンサーは先ほどのホッパーからつながっているもので、卵がここから投げられて小鳥がかえります。ちなみにクロック回路についてはわざわざ説明しません。卵が増えるペースより速ければどんなものでも構いません。

足元は丸石の壁で0.5マス上げています(無限増殖の記事でも使った手法です)。また、先ほどと同様ハシゴで窒息ダメージを回避しています。稼働が安定状態に入ると、ここにいる鶏の数は先ほどの親鳥の数のほぼ1/3になります。今の例では親鳥80羽だったので今ここには26羽いることになります(ちょうど窒息ダメージのボーダーくらいですね)。これが26より十分少なければ(親鳥が70羽以下くらいなら)このハシゴをなくして下付きハーフブロックにしても構いません(その場合丸石の壁も要りません)。

で、この小鳥は成長して大人になるとどうなるかというと、上の石ハーフに頭を突っ込んだような形になります。石ハーフには水を設置してあるので浮かんでいき、水流に流されていきます。ここまでがこの図の部分の説明です。

f:id:turgenev:20200428151430p:plain

最後に処理層です。水流に流されてきた鶏は、溶岩に当たって燃えます(図は燃える直前です)。なぜ当たるかというと、ハチミツブロックの当たり判定は1マスより少し小さいからです。なお(エンダー/トラップ)チェストも同じ当たり判定を持っているので使えます(が、fps低下の原因になるので個人的にはあまり使いたくないです)。石の壁でもいいですし、LecternやGrindstoneも正しく設置すれば使えますが、これらはやや当たり判定が小さいので発生したアイテム(=焼き鳥と羽根)が溶岩に突っ込んで燃えてしまう可能性がなんとなく上がる気がします。観測する限りハチミツブロックでのロストは0回ですが石の壁では数十回やって1回だけありました。

なお、図で鶏の頭上にあるgrindstone(これが1マスより少し小さいのは見ればわかりますね)もアイテムロスト対策のつもりなんですが、そもそもほとんどロストが無いので効果のほどはよくわかりません。面倒なら設置しなくても(あけておいても)構いません。代わりにガラスなどを置くのは鶏が溶岩に触れられなくなるのでダメです。あとハチミツブロックでもダメです。見た目に反して、底の当たり判定はきちんと1ブロック分あります。

そして、発生したアイテムは下のホッパーに吸い込まれていきます。貯蔵部分は適当に作ってください。実はこのホッパーが地味ですが今回一番大事なところで、上の段の2つのホッパーのどちらかが欠けているとせっかく発生した羽根と焼き鳥のどちらかが溶岩で燃えてしまいます。ホッパーは二種類のアイテムを同時に吸い込むことができないからです。これのせいで巷に出回っている焼き鳥装置は、①溶岩を流しっぱなしにしてアイテムロストはあきらめる(この場合焼き鳥の回収率は25%くらいになってしまう)②溶岩をディスペンサーで一瞬流す(回路が増える) のいずれかの方法を取っています。①は論外として(しかもその説明がない記事が多いのが腹立たしい)、②はまあいいんですが、このどちらでもないものがないものかと考えた結果、今回の「2つのホッパーどちらからでも回収できる場所にアイテムを発生させて燃える前に回収し終える」という方法を発見したというわけです。

なお効率ですが、卵を産む親鳥1羽1時間あたり焼き鳥がほぼ1個手に入ります。この例だと80羽なので1時間で80個程度ですね。

正確には1個ではなく1.09375になります。鶏は5~10分に1回卵を産むので、平均7.5分に1回と考えられます(Minecraftではこういうのは中央が一番高い三角形の分布で処理されているとどこかに書いてあった)。なので1時間に卵8個で、卵1個あたりに生まれる鶏の期待値は(実は1/256の確率で1つの卵から4羽生まれるらしいので1/16ではなく)35/256となります。というわけで一時間あたりに生まれるのは35/32羽で、これがそのまま焼き鳥の個数になるので35/32=1.09375個となります。ちなみに80羽で30分放置してみたんですが期待値が80*(35/32)*(30/60)=43.75で、結果が焼き鳥43個だったので、計算通りです。

以上、かなり理論的な説明が多くなりましたが、省スペースで大量の焼き鳥を生産したいという方はぜひご検討ください。

読みにくいのは承知していますので、わからない点などあればコメントしてください(書いていると何がわかりにくいかもわからなくなってくるので…)。

Youtube名演探訪シリーズ#3 - ショスタコーヴィチ/交響曲第4番の終楽章のコラール

このシリーズ第3回は初めての交響曲ショスタコーヴィチでは今のところ一番好きな4番だが全曲レビューは疲れるので、特に気に入っている3楽章終盤を聴き比べる。ティンパニ2台のクレッシェンドによる導入から始まり、C-E-G-G → H-D-G-G → A-C-G-Gis(!!) → G-H-G-Aという、ショスタコの不快味付け和声の真骨頂のような破壊的なコラールがトランペット4人で演奏される。5回出てくるが、最初と最後以外の3回はG-H-G-AではなくG-B-G-Aである(短調っぽい?)。何か大きな秩序が内側から崩壊していくような、この曲の初演の経緯を知って聴くととてもイイ気分になれる壮大なクライマックスである。4管で演奏人数134人は15曲中で最も多く、演奏も最難関といわれる。機会があればホールで聴きたい一曲。

基本的にはコラール部分のトランペットがどれだけ破壊的な雰囲気を出せているかを総合的に評価するが、それ以外の部分についても適宜コメントする。

 

シモノフ/ベルギー国立管

https://www.youtube.com/watch?v=xjsKdFPjZh8&t=18m34s

まずはイチオシの演奏を。ここまで4本のトランペットの音量バランス、発音、音程、音色などなどが完璧に揃っている演奏は貴重。フレーズ感も素晴らしく、超新星爆発のようなエネルギーをかんじる。。。オケは超一流ではなく、後半に行くにつれてミスもあるが、特に初回の破壊力は凄まじい。どっかの聴き比べサイトで絶賛されていたので通して聴く価値があると思う。

 

ゲルギエフ/キーロフ(マリインスキー)2001

https://www.youtube.com/watch?v=hVldwbGN34I

言わずと知れた有名どころ。ティンパニが速度を上げるタイミングが早いのが特徴。コラールについては、音程はそう悪くないが音量、音色などいまいち迫力に欠ける。3rdに比べて1stの音量が足りない。ちなみに同コンビの2013年録音の新盤も聴いたことがあるが(youtubeにはない)、こちらもズレていて迫力に欠ける。

 

ヤンソンス/バイエルン 2004

https://www.youtube.com/watch?v=uVO4Hfy77jg&t=56m42s

1stの音は綺麗だが線が細く、やや落ち着きすぎた雰囲気になってしまっている。Trb・Tubaが立派過ぎるのもあるかな。

 

V.ペトレンコ/ロイヤル・リヴァプール・フィル

https://www.youtube.com/watch?v=azcVQ8Hu_Rc&t=20m30s

遅め。というか重め。もう少し3rd、4thの音量が欲しい。

 

ネルソンス/ボストン響

https://www.youtube.com/watch?v=DzcoxMEJRmw&t=55m15s

1stが余裕ぶっこいてオシャレなアーティキュレーションとビブラートを入れるのでソヴィエトの雰囲気台無し。アメリカオケあるある。 

 

ハイティンク/ロンドン・フィル

https://www.youtube.com/watch?v=xE8TC9gZGR8&t=14m30s

音ちっちゃい。木管

 

ハイティンク/シカゴ響

https://www.youtube.com/watch?v=aUOYapWCXa8&t=1h1m9s

かなり遅い。このテンポであまりブレスを目立たせず4音吹ききるシカゴ響恐るべし。後半のトロンボーンも聴きもの。惜しむらくは1stの音量が2ndに比べてやや小さいところか。ピッコロに埋もれて聴こえる。響きの美しさがむしろ和音の汚さを際立たせる独特の効果を挙げていて、割と好きな演奏。 

 

サロネン/ロサンゼルス・フィル

https://www.youtube.com/watch?v=UQqPbXRMYEs&t=20m30s

音程とかバランスとかはまあまあだが、やや音が弱い。収録がウォルト・ディズニー・コンサートホールなのと、カップリングに世界初演があるのと、5回目の手前でめっちゃタメるのが好き。

 

チョン・ミュンフン/フィラデルフィア

https://www.youtube.com/watch?v=U_3NeUo_KSA&t=11m55s

速い。埋もれてよく聴こえない。却下。

 

ラトル/バーミンガム市響

https://www.youtube.com/watch?v=5ITWxTIGl_Q&t=55m0s

割と良い。シモノフの1回目ほどではないが平均的にレベルが高い。特に低音金管とのバランスが優れている。録音が割れててちょっと残念。

 

プレヴィン/シカゴ響

https://www.youtube.com/watch?v=ujWSdQAaqIE&t=18m32s

もうちょい音の切りのタイミングを揃えてほしいが、基本的には良い。余裕の表情という感じで、さすがシカゴ響。強いて言えば必死さが足りない。

 

プレトニョフ/ロシア国立響

https://www.youtube.com/watch?v=N-g9CJQY9MI&t=22m34s

他にもいくつかあるが、爆発の瞬間の音量よりその後がしぼんだ感じになるのはふさわしくないと思う。和音が汚くなり、上下の幅が広がるにつれて、音量は上がることはあっても下がってはならない。

 

ロジェストヴェンスキー/ソヴィエト国立文化省交響楽団

https://www.youtube.com/watch?v=CP-OJTOJHZU&t=56m55s

オケの名前が好き定期。ロシアンブラス万歳。ティンパニ万歳。録音悪いのもいい味出してる。コンドラシンのもだけどAが高くてBが低いのは仕様ですか?ヤバい音してますよ。

 

ロジェストヴェンスキー/フィルハーモニア管

https://www.youtube.com/watch?v=itGt09ULj-0&t=18m34s

チューニングが低い。なんか音量変化が色々とおかしい。マイクのせいかな。4本の音量バランスとか音色はいい線行ってると思うがこれではよくわからない。

 

ロストロポーヴィチ/ロシア国立響

https://www.youtube.com/watch?v=2KL_injDGug&t=20m8s

あまりロシアンブラス感はない。1st以外がもう少し欲しいが全体としてそこそこ良い。

 

コンドラシン/モスクワ・フィル

https://www.youtube.com/watch?v=SUv68X_yRSo&t=52m36s

初演者たち。これは初演ではない。ロシアンブラス万歳!!

 

コンドラシン/シュターツカペレ・ドレスデン

 https://www.youtube.com/watch?v=q44Kr13q5gs&t=18m21s

録音が悪いが、コンドラシン指揮、ドイツ初演ということでアツさは十分。

 

N.ヤルヴィ/ロイヤル・スコティッシュ・ナショナル管

https://www.youtube.com/watch?v=3_KWZutFM-U&t=55m06s

音程、音量バランスなどはかなり優れている。 ちょっとテンポがあっさりしている気もするが迫力十分。

 

バルシャイ/ケルン放送響

https://www.youtube.com/watch?v=bzg4DUhXW5c&t=55m3s

速め。ちょっと急いで聴こえるかなあ。やはり3rd、4thがもう一つ。

 

サラステ/シュターツカペレ・ドレスデン

https://www.youtube.com/watch?v=lyMWbw2oxbc&t=56m8s

埋もれ気味。特に爆発の瞬間がピリッとしない(よくあることだが)。

 

ノセダ/ロンドン響

https://www.youtube.com/watch?v=-TDYF1NdAtI&t=19m46s

音程は悪くないがプレトニョフと同じくだんだんしぼんでいく雰囲気があるのが微妙。

 

アシュケナージ/ロイヤルフィル

https://www.youtube.com/watch?v=5TOJWV6PiZc&t=12m30s

音の切りが目立つので特段の迫力はないが、まあまあ。

 

アシュケナージ/N響

https://www.youtube.com/watch?v=tKt8ZCgrpAs&t=12m58s

日本のオケとはいえ最近のN響なので音程は結構よくて綺麗。迫力はそんなにない。

 

セミヨン・ビシュコフ/ケルン放送響

https://www.youtube.com/watch?v=GykgOo40PLo&t=18m48s

ゆったりしたテンポ。安定した音程で最後まで伸ばしているし、バランスもかなり良い。おすすめ。

 

アンドレイ・ボレイコ/シュトゥットガルト放送響

https://www.youtube.com/watch?v=6Jj5F2dxQK0&t=20m9s

1stは上手いが、それ以外がもう一つ。音楽的にも何となくまとまりを欠く印象。

 

ギュンター・ヘルビヒ/ザールブリュッケン放送響

https://www.youtube.com/watch?v=0nxHL3MeTFs&t=19m49s

発音が揃わず、ピリッとしない。マイクが遠いのかもしれない。

 

インバル/ウィーン響

https://www.youtube.com/watch?v=CciWXbE5sj8&t=18m44s

1stに下がついてこれてない、よくある演奏。 

 

オレグ・カエターニ/ミラノ・ジュゼッペ・ヴェルディ交響楽団

https://www.youtube.com/watch?v=Ge6ODzp12JY&t=19m03s

クレッシェンドの箇所でバスドラが聴こえるのがまず不可解というか全体にバスドラが大きめ。いろいろとズレているし謎の金属音はするし、いろいろとおかしい。ショスタコーヴィチの15曲中、間違いなく録音難易度も最高であろう、と感じさせられる。

 

というわけで、おすすめはまず冒頭のシモノフだが、セミヨン・ビシュコフ、N.ヤルヴィあたりもほぼ不満はない。これから通して聴いていきたい。ソ連時代の演奏はなんだかんだいって金管が下手に埋もれたような演奏よりよほど雰囲気が出ている。サロネンの最後のタメはぜひ一度聴いてほしい。

【Minecraft】1.14以降で使える簡単で高効率なアイアンゴーレムトラップ(ゾンビ式)

あまり作り方まで入れて長い記事を書く意味を感じないので、スクショだけ何枚か貼って簡単な解説をします。質問があればコメントしてください。

効率はたぶん1時間当たりインゴット300弱くらい出るんじゃないかと思います。大体50秒おきに1体スポーンします。

f:id:turgenev:20200217212627p:plain

湧き層。上から見るとこんな感じです。アイアンゴーレムの湧き範囲が村人を中心に16x13x16らしいので他の建造物とはある程度離して作りましょう。あと、ほかの村とは64マス以上離してください。

解説が面倒なので処理層は作っていませんが、アイアンゴーレムがここから落ちていくので適当に溶岩とかで処理してください。高さは村人のいるところから20マス以上下に離してください(正確には16マスですが余裕をもって)。その距離がちゃんと空いていれば、処理中でも次のゴーレムはスポーンできるので、溶岩でなくマグマブロックなどでもよいでしょう。

なお、水流の両側の壁の先端が手前側に1マス張り出しているのは、これがないとゴーレムがその外側にズレて落ちていくことがあったからです。

湧き層の大きさは効率には全く関係ありませんが、なんとなく狭すぎると不安なのとデザインの都合上こうしました。

壁の上の空中に、2マス空けて同じ形で石を配置しているのは、もちろん壁の上にゴーレムが湧かなくするためです。その上のカーペットも湧き潰しです(ハーフブロックだとダメらしい)。2マス空いてるのは何となくプレイヤーが出入りしやすそうだと思ったからですが全部ブロックで埋めても良いです。

f:id:turgenev:20200217214242p:plain

f:id:turgenev:20200217214305p:plain

f:id:turgenev:20200217214311p:plain

中核部分です。いわゆるゾンビ式(パニック式)というやつです。ガラスは高さをわかりやすくするためで、本来は必要ありません。見ての通り、全てサバイバル初期~中期で容易に集められる資源で作れます。(なんとなくネザーレンガフェンスになっていますがここは木のフェンスでも石の壁でも全く構いません)。

村人は石工(Mason)です。無職の村人を3人連れてきて、石切台により石工に就職させます。人数は3人以上である必要があります。また3人より多くしても効率は上がりません。

ゾンビはデスポーンするといけないので、アイテムを持つゾンビを選別するか名札で名前を付けてください。誘導は慣れないと難しいかもしれませんがボートまで一本道にすればちゃんと乗ります(ハシゴを登らせるのはかなり難しいので素直に階段を作るのがおすすめ)。ボートの位置はブロックの中央です(どのブロックの中央なのかは見ればわかると思います)。少しずれていても大丈夫かと思いますが、視線の通り方が変わると上手く動作しなくなる可能性があります。

パニック式の要点は、村人をゾンビで脅かしながらも就寝と職業を定期的にさせることです。この装置では、上の5個のブロックによりゾンビとの視線が遮られることでそれが実現されています。また、村人が寝た瞬間にゾンビと視線が通るようになる(よって瞬時に起きる)のも重要なポイントで、石切台をコンポスターなど高さ1マスのものに変えると正しく動きません。

以上です。

良い演奏とは何か ― 『楽譜を読むチカラ』を読んで

はじめに

最近、楽譜を読むチカラという本を読みました。書名は一見すると楽曲分析に関する本のようですが、「楽譜を読む」ことと「演奏する」ことの間に存在する広大なギャップについて、体の動きや練習の心構えに至るまで豊富な例と共に論じた、今までありそうでなかったタイプの本でした。読んでいくうちに、音楽やその演奏に関して最近考えていたことが整理されていく感覚があったので、要約がてら自分なりに内容をまとめてみようと思います。この本以外で見かけた意見や個人的な意見も入っていますが、記事としての一貫性を重視したいのでいちいち分けて書きません。この本由来のものも含めて最終的には全て僕自身の意見でもあるということで受け取っていただければと思います。

良い演奏とは

いきなり本題ですが、「良い演奏」とは一体何なのか?議論しつくされた問いではあるでしょうが、究極的にはそれは「奏者の意図したとおりに為された演奏」ということになるだろう、というのが現時点での僕の考えです。一見当たり前で、何も述べていないようではありますが、ここには、もしかしたら人によっては見逃しているかもしれない重要な主張が二つ含まれています。つまり、良い演奏をするにあたっては、まず、どのようにその曲を演奏したいか、という何かしらの意図を奏者が持っていることが必要です。次に、演奏においてその意図が実際に表現されていることも必要になります。もちろん、全く何も意図していない演奏や、意図が何も表現されていない演奏というのはアマチュアでもそうそう無いでしょうから、これは程度の問題です。つまり、演奏に関する奏者の意図が確固たるものであればあるほど、そしてその意図が良く表現されていればいるほど、その演奏は良いものとなるでしょう。この二つはこのままでは切り離せるものではないのですが、この本にある「パラメータ」というものを考えてみると、少し見通しが良くなってきます。

パラメータ

この本で挙げられている「パラメータ」の例は、以下のようになります。

リズム、強弱、アーティキュレーション、音色、テンポ

これを見れば、「パラメータ」が何のことを言っているのかはすぐに納得されるかと思いますが、あえて言葉にするなら、「演奏を特徴づける様々な要素のうち、客観的な判断がしやすいもの」とでもなるでしょうか。この本で独立した章として扱われているのはこの5つであり、これらが最も重要であると書かれていますが、(和声の解釈としての)音程など、他にも考えられるでしょう。

最も大事なのは、「客観的に」というところです。良い演奏が正体不明の「才能」や「センス」のみによって生み出され、「力強い、色彩的な、ゆったりとした」などという漠然とした言葉でしか形容しえないということを、著者は強く否定しています。良い演奏には、それを示す客観的、物理的な特徴があるのです。したがって、各パラメータの違いを聴き分ける、あるいは演奏し分ける能力が優れた音楽家には必要不可欠であると著者は結論付けています。ちなみに上の5つのうち音色については、明るい音=倍音成分が多い音、暗い音=倍音成分が少ない音、という「客観的」な基準が示されています。

パラメータは日本語で言えば「媒介変数」、つまりこれが奏者の「意図」という漠然としたものから、「演奏」という物理的な音の波ができるまでを媒介しているのです。そこが今までの器楽教育あるいは楽曲分析の本では抜け落ちており、「ブラックボックス」になっていたと著者は書いていますが、本当にその通りだと思います。

パラメータと楽譜

具体的にパラメータを調整するのに必要なのが、そう、「楽譜を読むチカラ」です。楽譜にはもちろんパラメータに関する直接的な指示(クレッシェンド、リタルダンドなど)もありますが、それだけではありません。

例えば、バロックや古典派の作品では、同じフレーズが二度繰り返される場合は、楽譜に何も書いていなくてもしばしば2回目を小さくします。それは、その方が良い演奏になるからです。ではそれはなぜか?良い演奏とは、確固たる意図がありそれがよく表現された演奏のことでした。この場合の意図とは、「そこを繰り返しとして聴かせる」ことです。2回目で音量を落とすことによって、繰り返しがあることが客にも伝われば、その繰り返しの構造が頭に入ってくる、ということになります。ちなみにこの例に限らず、客を演奏に惹きつけるには絶えざるパラメータの「変化」が必要だ、ということは本で何度も強調されています。変化がない演奏を、蛍光灯のうなり音がすぐに聴こえなくなることに例えている箇所がありますが、こういった比喩の分かりやすさもこの本の魅力の一つでしょう。

やや話が逸れましたが、上記の論理には重要な抜けがあります。すなわち、なぜ「そこを繰り返しとして聴かせる」という意図を持つべきなのか、そして、なぜ「2回目で音量を下げる」という方法を選択するべきなのか、というところです。ここが、「楽譜」というものが作曲者と奏者の間に介在している音楽ならではの難しさであり、面白さなのですが、それはつまるところ、作曲者の意図がそうだから、ということになると思います。

今まで意図という言葉は奏者(演奏)について使ってきましたが、考えてみれば、「意図があり、それが実現されている」ことは、演奏のみならず全ての芸術において求められることであり、むしろこれが求められるものを我々は芸術と呼ぶのではないかという気すらします。

演奏が芸術ならば作曲も当然芸術なわけで、しかも両者が思い描く到達点は同じ「音楽」であるはずです。作曲家は楽譜を作っているのではなく音楽を作っているのです。であればその創作過程に存在した意図を、演奏にも内在させるべきでしょう。「べき」という言い方が過言だと感じられるならば、演奏者の意図は、作曲者の意図を反映したほうが、そうでない場合より優れたものになる場合が多い、というのは一般論として言えるのではないかと思うのですがどうでしょうか。

以上の議論に基づいて、バロックの楽譜の例において奏者が考えるべきことをまとめると、次のようになるでしょう。

文献によれば、バロック時代の作曲家は、2回目で音量を下げることで繰り返しを聴かせるという演奏方法に親しんでいたようだ。したがってこの箇所を作曲したときの作曲家は、そのような演奏がなされることを想定した上で最も良く繰り返しが聴こえるように意図していたと考えられる。したがってその意図に従った強弱をつけたほうが、私の演奏は良くなる可能性が高いはずである。

だから、当時の演奏様式を研究したり、曲の構造や背景を調べたりすることは、それ自体が演奏に必要不可欠であり従わない演奏が間違っている、というわけではなく、演奏における自分の意図を作り上げていくことを考えたときに助けになる場合が多い、ということなのだと思います。あくまで「場合が多い」だけであって、明らかに作曲家の意図に沿っていないことが異様な説得力を生む演奏もあるにはありますし、当時そうやっていたからと盲目的に従うのはそれはそれで演奏の意図を失わせることであるというのは注意する必要がありますが、厳然として存在する曲の構造を知りもせずに演奏に望むのはこれまた論外です。「自分自身が知らないことを演奏することはできません。」「答えは出てきません。問うことに意味があるのです。」という忠言を本から引用しておきましょう。

楽譜の限界

今まで述べたように、(優れた)楽譜には、音高と音価がわかるだけでは全く太刀打ちのできないような複雑な意図が大量に詰め込まれており、それを知ってパラメータに反映することで初めて優れた演奏ができるようになります。しかし、だからといってパラメータを決めるのに十分なだけの情報が楽譜や文献から必ず読み取れるかというと、決してそうではありません。

例えば、ショパンが、最初はフレーズに多くの指示をつけて奏者に理解されやすくしようとしたが、誤解や曲解が多かったので結局指示を極力少なくするようにした、というエピソードが本に載っています。楽譜の限界に気付いたということでしょう。そもそもクレッシェンド一つとっても、どのように大きくするかには無限の可能性があります。

ここで重要なのは、指示が減った分だけ奏者の負担が減るわけではないということです。作曲者は指示を「諦めた」というより、奏者が自分のイメージの空白の部分を埋めてくれるよう期待を込めて「託した」のです。むしろ埋めなければいけない分、負担は増したと考えるべきでしょう。前項では、作曲者の確固たる意図が奏者の意図に優越して存在し、それをどう取り入れるかというような書き方をしましたが、実際には作曲者の意図が全てのパラメータを定めるほど完璧かどうかは大いに疑問です。もちろん優れた作品であれば楽譜に明示してある強弱、テンポなどは明確な意図に基づいているはずなのですが、演奏家として一流とは限らない作曲家が演奏に関する意図を全てイメージするなど不可能だというのもまた事実です。知らないことを演奏できないのと同様、演奏できないことを書くことはできません。演奏者と作曲者それぞれの弱点を、楽譜という媒体によって補い、分業して音楽を作り上げる、というのが西洋音楽の真髄なのではないでしょうか。もし最初から作曲者のイメージが完全無欠ならば、自分の作品が他人により演奏されたのを聴いて感動した、というエピソードなどありえなかったはずです。

だから、奏者の方としても、「楽譜の意味を何とかして理解しなければ」「少しでも作曲者の求めていたイメージに近づかなければ」という隷属的な感情から楽譜を読むのではなくて、作曲者の意図は基本的に理解した上で、必要とあらば書かれていない強弱やアーティキュレーションの変化をつけ、今は亡き作曲家にも「私が求めていたのはこれだったのか!」と言わせるような音楽を創ろう、という心持ちで臨むべきなんだろうと思います。

パラメータの限界―身体と音楽

さて、今までは、楽譜をそのまま演奏するのではなく、楽譜を読むことでパラメータを定め、意図のある演奏にしよう、という流れで説明してきました。その過程で楽譜の限界にも触れたのですが、それより一歩進んだ所には、「パラメータの限界」というものも存在します。

演奏の良し悪しは一般的に思われているより客観的に評価できる、ということと同時に、それでもやはり客観的な言葉では表せない微妙な違いによって演奏の聴こえ方が変わる、と念を押すことをこの本は忘れていません。

演奏の違いがパラメータによる客観的表現を許さなくなるとき、それは身体で、あるいは直感で認識するしかなくなります。さらに、音楽を作り出すのは根本的には身体の運動なのであり、その意味で「テクニック」と「音楽性」は本質的に区別できないと著者は述べています。超絶技巧といわれるような難しいパッセージから、ゆったりと歌うところの体の揺らし方まで、最終的には演奏がそのまま体の動きとしてイメージされる状態になるべきなのです。その極限まで来れば、冒頭で述べた「意図」「意図を実際に表現すること」ももはや区別することはできなくなります。

良い演奏ができるまで―練習と実験

身体と音楽が「最終的には」不可分のものになると述べましたが、どのようにそこに到達すればいいのでしょうか。練習が必要だ、というのが当然の答えですが、練習の意味を具体的に考える段になってヒントになるのが、本書でことあるごとに出てくる「フィードバック」の考え方です。おそらくはサイバネティクス理論がベースなのでしょうが(サイバネティクスという単語は一度だけ登場する)、音楽練習に即して分かりやすく言えば、身体的な動き(=テクニック)に習熟することが音楽のイメージ力を改善し、逆に音楽のイメージをはっきりさせることでテクニック的に安定した演奏ができるようになる、ということです。そのどちらか一方向だけにとらわれることに著者は警鐘を鳴らします。「テクニック的に難しい部分の音楽的な意味を考えることが演奏の役に立つのです」とも述べられています。

つまり、メトロノームを使った練習や音階の練習は否定されるものではありませんが、それを各パラメータに応じて「部品として」組み合わせて演奏を作ろうとするだけでは不十分なのです。意図を持った曲を演奏するには、まずは自分のできる範囲のテクニック・音楽性から初めて、徐々に互いをレベルアップさせていくことが必要です。

著者はその過程で「実験」することの大切さを説いています。例えばフレージングの円滑さには全く気を遣わずに強弱を極端に付けてみるなど、一部のパラメータに焦点を絞ってみても良いのです。テンポを落としての練習も大事ですし、音階やロングトーンなどの「基礎練習」であっても、曲の中の音を想定して行えばそれは究極の実験となります。そして、何より大切なのが、実験の結果生まれる違いを(パラメータの限界を超えて)自分で聴き取り、時には実験を重ねることで、さまざまな音楽のイメージを身体に覚えさせることです。極端にできたことを中庸に戻すほうが、中庸にしかできないことを極端にするより一般的に容易です。極端な実験は、全てのパラメータに気を配らなければいけない実際の演奏にも必ず役立ちます。

模倣と指導

前項では、自分なりに音楽をイメージでき、実験をしてその結果を聴き取れるという前提で話しましたが、音楽を始めてすぐの頃はそれもままならないはずです。どんな人でも参考にした先人というのはいるはずですし、いるべきです。それは教師かもしれないし、気に入ったCDの演奏者かもしれませんが、とにかくその先人たちが今まで述べたような「良い演奏」をどのように創り上げてきたか知る必要があります。

その過程でまず役立つのはやはりパラメータです。先人たちの演奏を聴き、パラメータがどのように変化させられているか、つまり「違い」を認識することがここでも最重要です。それを楽譜と照らし合わせることで、楽譜の読み方、あるいは楽譜の限界の超え方が分かってくるでしょうし、いずれはパラメータの限界を超えた違いも聴き取れるようになります。そして、その演奏の全てを聴き取れた、と思ったときにはすでに演奏の意図も理解できているはずです。最終的には意図とは為された演奏そのものだからです。

また、著名な演奏家の録音を聴くと無意識に真似してしまうかもしれないという意見について著者は懐疑的です。人は聴いたものしか真似できないし、真似ができるくらいならその演奏を真似するかどうかの判断もできるはずだ、というわけです。ただし一つの演奏だけを聴くのは違いを聴き取る練習になりませんし、パラメータレベルの大きな変更を気付かず真似してしまう可能性はやはりあるので、様々な演奏を聴くべきです。「実験」的な極端な演奏を聴いてみるのも良いでしょう。

自分で聴くことは常に大切ですが、CDではなく指導者ならばその補助をすることができます。指導者が複数の弾き方をしてみて、どのようにパラメータを変えたか、それがどのような意図に基づいていたかを解説するのはとても有益ですし、生徒の演奏に指示を出すときもその意図を示し、実際に演奏させてみた後はどのように改善されたかという感覚を共有するべきです。

そこまでする時間的余裕が無く、端的にパラメータを指示するだけであっても、それが身体にイメージとして刻み込まれるだけで意味はあります。頭ごなしに「バロックだから2回目は小さくしなさい」と言うことが全く何も産み出さないとは思いません。しかしやむを得ずそのような状況になったのであれば、生徒はその指示に従うことで生まれた違いを突き止め、音楽性とともに身体に刻み込もうと自分なりに努力すべきなのでしょう。

おわりに

この文ではまず、良い演奏の条件を「意図を持っている」「それが表現されている」の2つと定め、楽譜やその先を見据えた奏者自身の考察から確固たる意図を創り上げる必要性を説明しました。その過程ではパラメータの限界をも超え、パラメータの調節を含めた全ての身体の運動は音楽のイメージそのものに一致します。その極限においては「意図を持っている」「それが表現されている」の2つを区別する意味もなくなります。

しかし初心者がそこに到達するにあたってはまずは客観的なパラメータの違いを聴き分け、演奏し分けられるようになることが大前提であり、それには指導者が「意図」や「違い」を丁寧に認識させ、生徒の方でも自助努力をしなければなりません。

その基本ができれば、あとは実験を繰り返すことで技術と音楽性の双方が向上し、最終的には作曲者をも唸らせるような、分業の真骨頂としての「音楽」も創れるようになるのではないでしょうか。

以上、長々と書いてきましたが、元の本にはパラメータを様々に変えたときの実際の効果などがもっと具体例に書かれているので、この記事を読んで興味を持った方には是非一読をお勧めします。何より僕はヴァイオリンを趣味にしている一介の学生に過ぎず、その語る内容を鵜呑みにすべきほどの傑出した人間ではありません。とはいえ、かれこれ17年ほど続けてきた楽器と、中高時代からの音楽鑑賞の趣味と、何よりこの本から得た洞察については一定の自信と矜恃を持つものでありますから、読者の皆様がこの記事の一片にでも共感してくださるならば望外の喜びです。ここまでお読み頂きありがとうございました。