ギタリストとピアニストの間隙 | Nature | Photography | Music | Art

Nature | Photography | Music | Art

日々好奇心の趣くまま

サイト内の写真の使用ならびに無断転用を禁じます。

5月病なのか曲作りの方がすこぶるスランプなので、奮起するために音楽ネタ。マニアックな内容です。

この本、音楽系座右の書のひとつ。

Advancing Guitarist: Applying Guitar Concepts and Techniques

ミック・グッドリックという(変態)ギタリストが書いたギター教則本。
日本語版などは無理だと思っていたら、最近は邦訳も出ているみたい。

前人未到の即興を生み出すギター演奏の探求

内容は多岐に渡るが、とにかくアイデア満載で、真面目に取り組んだらこの一冊だけで一生の何倍かの時間がかかりそうな内容が濃すぎる本です。

この本を語れるほどのスキルも知識もないので内容について書くつもりはないのだが、この本に書いてあった一節に非常に共感したので紹介します。

"Most guitarists are still decades behind pianists, harmonically speaking."


いい加減に訳すると、「おまえらギタリストのハーモニーはピアニストより何十年も遅れているぞよ」…ということ。

まあこれはギタリストのせいというよりもギターの物理的な制約上しかたないのかも知れません。
同時発音数は最大でも6音までだし、密集音も原則的に不可能、指の本数と形状による制限、音域も狭いし…などなど、ピアノで弾けるイケてる和音がギターでは無理というのが多々あっていつも歯がゆい思いをすることが多いのです。(逆のパターンも些少ながらありますが)

かと言って、コードブック通りのルート+3度+7度+αとかを連発するのもつまらない。

ということで、凝り固まったギター脳を活性化すべく、最近Pythonにハマっていることもあり、Pythonの勉強を兼ねてピアノ脳のままギターコードフォームを生成する簡単なプログラムを作ってみました。実行にはMIDIキーボードが必要。

midi2fret.py[DL]

tuning.csv[DL]

やっていることは些細なことで、MIDIキーボードで弾かれた和音をそのままギター指板上にマッピングするだけのもの。
ギターの場合、同じ音構成でも複数のポジションで弾けることも多いので、可能なものはすべて出力するようにしました。

実行にはPython (2.7で検証)が必要。更にitertools(組み合わせ計算用)及びpygame(MIDI制御用)の2つのPythonモジュールのインストールが必要です。

同じフォルダにtuning.csvを用意する。内容は6弦から順にチューニングのMIDIノート番号をカンマを挟んで入れていく。
これを起動時に読み込んでチューニングを初期化するようにしている。
これを編集すれば、変則チューニングにも対応できる。

起動はコマンドプロンプトで

python midi2fret.py


と入れる。

起動すると接続されているMIDI機器のIn/Out一覧が表示されるので、必要に応じてプログラム中のMIDI In/Outポートの番号を変えて起動しなおす必要があるかも。

midi_out = pygame.midi.Output(0)
midi_in = pygame.midi.Input(1)


という箇所がそれ。これを入力したいキーボードと出力したい音源の番号に振り替える。

起動されたら、キーボードを弾くとそれに対応するコードダイアグラムが表示されるはず。左から右に向かって6弦~1弦の順で、弾かない弦はxがつく。
演奏不可能な場合はNONEと表示される。




A3 D4 ----------------------------------------------
x x x 2 3 x
x x 7 x 3 x
x 12 x 7 x x
x x 7 7 x x
17 x 12 x x x
x 12 12 x x x
17 17 x x x x

A3 D4 E3 ----------------------------------------------
x 7 x 2 3 x
x x 2 2 3 x
x 7 7 x 3 x
12 12 x 7 x x
12 x 7 7 x x
x 7 7 7 x x
12 12 12 x x x
.
.
.





ギターは-1オクターブの移調楽器であることに注意。

6弦の開放弦より低いノートを弾けばプログラムが終了する。(警告が出るがとりあえず無視してください。)

通常、複数の結果がある場合、ポジションの低い順にソートされるが、オプションとして

python midi2fret.py -o


とすると、結果が開放弦の多い順にソート。

python midi2fret.py -s


とすると、結果が指ストレッチの少ない順にソートされる。

自身がナイロンギター弾きのため、親指や右手を押弦にほとんど使わないので、デフォルトでは

最大フレット=18
最大ストレッチ=5フレット

で設定しています。

max_fret = 18
max_stretch = 5


という部分がその設定値なので、必要に応じて変更可能。
また、上記のパラメータ以外には条件をつけていないので、演奏不可能なフィンガリングも多々吐き出しますがご了承ください。

その他制約として同音重複とかは対応してません。

こんな簡単なプログラムですが、脈絡もなくいろいろ遊んでみると次から次に変な和音が発見できます。。

このツールを使って、思いつきで「コードの魔術師」ハービーハンコックのトランスクリプション(出版、自前含め)からハービーらしいコードを抽出して、ギターに移植してみました。 

小一時間ほど遊んだだけだが、結構な数の面白いフォームが発見できました。
その中のいくつかを。一部親指の押弦が必要。コードネームはめんどくさいのでつけてません。






















おそらく通常のギターコードブックには載っていないものが多いのでは?