の続き。ぼくが今やっているクラシック音楽のデータベース (もどき) の説明。
クラシック音楽 DB 自分が所有しているクラシック音楽 CD のデータベースを作りたい。そこで色々と模索してみた。その結果、データベース・ソフトは使いこなせない、テキスト・ファイルで管理するのが良い。ということに落ちついた。何故、データベース・ソフトが使えないかは後述 する。
大まかには、HMV のアルバム情報をテキスト・ファイルにコピペする。この方法の長所は、入力時間がとても短いこと。コピペなので短時間で済む。ちゃんとしたデータベースを作ると、この入力作業に押し潰される。
テキスト・ファイルの作り方 テキスト・ファイルの編集は、アウトライン機能に対応したテキスト・エディターを用いると良い。
一項目につき 1 アルバムもしくは 1 ボックスとする。
アルバムのテンプレートを示す:
* アルバム・タイトル (1CD)
アルバムの説明
・曲名 1
・曲名 2
補助情報
ボックスの場合のテンプレートを示す:
* ボックス・タイトル (20CD)
ボックスの説明
** CD1
・曲名 1
・曲名 2
** CD2
・曲名 1
・曲名 2
...
補助情報
これらの情報を手書きするのは大変。HMV の解説が詳しいので、CD を購入したらコピペする。
例えば、最近アンネ=ゾフィー・ムターの 40 枚組ボックスが発売される。これを例にテキスト・ファイルを書いてみる。
まず、HMV の概当ページ から情報をコピーする。
アンネ=ゾフィー・ムター/ザ・コンプリート・ミュージシャン
ASM35/ムター・デビュー35周年記念40枚組ボックス
ヨーロッパでは少し前から「ヴァイオリンの女王」と称えられてきたムターの演奏は、作品の隅々まで強い表現力で描き上げる思い切りの良いスタイルに特徴があり、ヴァイオリンという楽器本来の柔軟で自由な美質を徹底的に生かした様式には独自の魅力が備わっています。
(後略)
【収録情報】
Disc1
・モーツァルト:ヴァイオリン協奏曲第3番
・モーツァルト:ヴァイオリン協奏曲第5番『トルコ風』
ベルリン・フィルハーモニー管弦楽団
指揮:ヘルベルト・フォン・カラヤン
録音時期:1978年2月
録音場所:フィルハーモニー、ベルリン
Disc2
・ベートーヴェン:ヴァイオリン協奏曲
ベルリン・フィルハーモニー管弦楽団
指揮:ヘルベルト・フォン・カラヤン
録音時期:1979年9月
録音場所:フィルハーモニー、ベルリン
Disc3
・ベートーヴェン:ピアノ、ヴァイオリンとチェロのための三重協奏曲
マーク・ゼルツァー(ピアノ)
ヨーヨー・マ(チェロ)
ベルリン・フィルハーモニー管弦楽団
指揮:ヘルベルト・フォン・カラヤン
録音時期:1979年9月
録音場所:フィルハーモニー、ベルリン
コピペしたら、書式を合わせる。ボックスのタイトル名には「*」を、CD 番号は「Disc1」となっているのを「** CD1」という風に書式を統一する。曲名の前には「・」を置くけれども、HMV は最初から曲名の前が「・」になっているので特に手を加えていない。
検索の使い勝手を考えて、曲名部分は「・作曲者: 曲名」という書式にしておく。
書式統一後のテキストは次の様になる:
* アンネ=ゾフィー・ムター/ザ・コンプリート・ミュージシャン
ASM35/ムター・デビュー35周年記念40枚組ボックス
ヨーロッパでは少し前から「ヴァイオリンの女王」と称えられてきたムターの演奏は、作品の隅々まで強い表現力で描き上げる思い切りの良いスタイルに特徴があり、ヴァイオリンという楽器本来の柔軟で自由な美質を徹底的に生かした様式には独自の魅力が備わっています。
(後略)
** CD1
・モーツァルト:ヴァイオリン協奏曲第3番
・モーツァルト:ヴァイオリン協奏曲第5番『トルコ風』
ベルリン・フィルハーモニー管弦楽団
指揮:ヘルベルト・フォン・カラヤン
録音時期:1978年2月
録音場所:フィルハーモニー、ベルリン
** CD2
・ベートーヴェン:ヴァイオリン協奏曲
ベルリン・フィルハーモニー管弦楽団
指揮:ヘルベルト・フォン・カラヤン
録音時期:1979年9月
録音場所:フィルハーモニー、ベルリン
** CD3
・ベートーヴェン:ピアノ、ヴァイオリンとチェロのための三重協奏曲
マーク・ゼルツァー(ピアノ)
ヨーヨー・マ(チェロ)
ベルリン・フィルハーモニー管弦楽団
指揮:ヘルベルト・フォン・カラヤン
録音時期:1979年9月
録音場所:フィルハーモニー、ベルリン
以上で、テキスト・データは出来上がり。
Emacs を使っている場合 一行目に次のコードを、
-*- mode: outline; coding: utf-8 -*-
ファイルの末尾に次のコードを追記する:
;; Local Variables:
;; outline-regexp: "\\(\\*+ \\|・\\)"
;; outline-heading-alist: (("* " . 1) ("** " . 2) ("*** " . 3) ("・" . 4))
;; End:
曲の検索 高機能なエディターなら「grep」機能がついている。これは、「検索キーワード」が見つかった行を表示する機能。この機能を使って、目的の曲を検索する。曲が見つかったら、その曲へジャンプする (エディターの grep 機能には、検索結果からオリジナル・ファイルへのジャンプ機能が備わっている)。
Emacs エディターを例に、サラサーテの「ツィゴイネルワイゼン」を検索してみる。Emacs では M-x occur とすることで Emacs 内の grep 機能が使える。検索結果を示す:
6 matches for "ツィゴイネルワイゼン" in buffer: classic.txt
2933:・サラサーテ: ツィゴイネルワイゼン
3051:・サラサーテ: ツィゴイネルワイゼン Op.20
3449:・サラサーテ: ツィゴイネルワイゼンOp.20
4323:・サラサーテ: ツィゴイネルワイゼンOp.20
4397:・サラサーテ: ツィゴイネルワイゼン Op.20
4480:・サラサーテ: ツィゴイネルワイゼンOp.20-1*
6 つの検索結果が見えている。従って、ぼくが持っている「ツィゴイネルワイゼン」は 6 つあることが分かる。
この時点で、どの CD に収録されているかは分からない。ここでジャンプ機能を使う。テキストを少し遡ればアルバム/ボックス名が分かる。
注意点: 「全曲」 この方法だと、「全曲」の中の「一曲」を探すことができない。例えば、ヴィヴァルディの「和声と創意への試み」の一部である「四季」、シューマンの「子供の情景 Op.15」に収録されている「トロイメライ」、リストの「パガニーニ大練習曲」に含まれる「ラ・カンパネッラ」など。
例えば「トロイメライ」を検索する場合、「トロイメライ」が「子供の情景」の一部であることを憶えていて、「トロイメライ」と「子供の情景」の両方を検索しないといけない。
時間があれば、「子供の情景」の中身を展開してしまいたいところ。一回データを作れば、後は使い回しが効くので楽なのだけれども、今度は「子供の情景」全曲を持っている CD を探すのが面倒になる。ここは難しい所。ぼくも悩んでいる。
データベースが使えない理由 まず第一に、入手作業を自動化できないことが挙げられる。iTunes などが音楽 DB から拾ってくるデータは使い物にならないほど情報が薄すぎる。かと言って、HMV のページにある情報を手入力するのは現実的でない。理想は、HMV のページをスキャンして、自動的にデータベースに入力するプログラムを作ること。ただし、これにも問題がある。
クラシック曲は非常に正規化が難しい。例外的な曲目が多すぎる。少し例を挙げてみる。
パッヘルベル: 3つのヴァイオリンと通奏低音のためのカノンとジーグ ニ長調のカノンを特に「パッヘルベルのカノン」と呼ぶ。
ヴィヴァルディ: 協奏曲集「和声と創意への試み Op.8」には 12 の協奏曲が収録されており、そのうちの Op.8-1 から Op.8-4 までを特に「四季」と呼ぶ。
バッハ: 無伴奏ヴァイオリンのためのパルティータ第 2 番の終曲シャコンヌを特に「バッハのシャコンヌ」と呼ぶ。管弦楽組曲第 3 番のアリア(エアー) をヴァイオリン独奏に編曲したものを特に「G 線上のアリア」と呼ぶ (これを更に管弦楽で演奏するものも「G 線上のアリア」と呼ぶこともある)。
モーツァルト: 交響曲全集でどの曲を「交響曲」とするか定説がない。ピアノ協奏曲全集というと、一般に 5 番、6 番、8 番、9 番、11番〜27 番までを指す (1 番から 4 番までは他人の曲を編曲したもののため、また 7 番は 3 台のピアノのための、10 番は 2 台のピアノのための協奏曲のため)。レクイエムには、ジュスマイヤーが補完したものの他に、バイヤー版・モーンダー版・ランドン版・ドゥルース版・レヴィン版がある。
シューベルト: 交響曲第 7 番はスケッチをワインガルトナーが補筆作曲したもの。昔の交響曲全集は 7 番を録音しないものが多い。一方、最近は 7 番を削って 8 番「未完成」・9 番「グレート」を 7 番「未完成」・8 番「グレート」とする動きもある。
ブルックナー: 交響曲に習作とされる「0」番、「00」番が存在する。交響曲に複数の版 (ノヴァーク版・ハース版) が存在する。
この様に曲の一部に特別なニックネームを付けたり、全集といってもその範囲が明確でなかったり、複数の版があったり、番号が時代によって変わったり... とても統一的な DB 及びスキャナーを作れるように思えない。
結局、テキスト・データで管理するのが一番楽。それでも、ぼくの classic.txt は 2.5MB もの大きさになっている。