flat7th

memo/20120423

created 2012-04-23 modified 2012-05-06 

music/20120423

リンク
YouTube - Alone Again
Alone Again歌詞とコード
歌詞翻訳

ギルバートオサリバン氏の名曲です。
いままで、解析したこと無かったですけど、検索したらすぐにコード載ってるサイトがみつかって、コード名見たらすぐ弾けました...いいコード進行してるなぁ。上記サイト、GoodJob!です。

ただ、上記サイトは、コード名にマウスをかざすと押え方がポップアップする優秀サイトのようですが、-5 に対応できてないみたいです。あと、全弦おさえるダサいコードしか出てこなかったので、これは...と思い、とりあえず押え方図をつくってみました。

次はこれをどうやって綺麗に並べるか、ですな。
あと、歌詞や解析結果をそのまま転記したら著作権上、問題になるだろうから...その辺理解しないとだ。




あんましチェックしてないので作図が間違ってたらごめんなさい。


サブドミのマイナー(Ⅳm)が「ええ音」するのは、知識あったのです。
(いわゆる主音がCのときのAs、b6の音が「ええ音」なわけですな)
さらにⅡm7-5 はサブドミマイナーと同じように使える、というのも知っていたのですが、
そこにⅤ-9 をつなげてトニックにいくと。なるほどー、いい仕事しますなぁ、て感じです。

そしてそして、Ⅴm ってすごくないですか。うーむ。Ⅱ-Ⅴの発展で、部分的に転調してると考えたほうがいいのかな。


ギター楽しい。


追記

アッー!

Bm7-5 とあるのは Bbm7-5 の間違いです。

押さえ方は合っていて、名前が間違ってます。

帰ったら直そう

→直しました。



ソース貼っときます

#!/usr/bin/env python
#coding:utf-8

import cairo
import math


class FretBoard:
    def __init__(self,
                 frets = 4,
                 leftmost_fret = 3,
                 pos = [None, None, None, None, None, None],
                 filename = "chord.png"):
        self.frets = frets
        self.leftmost_fret = leftmost_fret
        self.pos = pos
        self.filename = filename
        return

    def run(self):
        frets = self.frets
        leftmost_fret = self.leftmost_fret
        pos = self.pos
        filename = self.filename
        chordname = filename.replace(".png", "")


        sf_w = 200
        sf_h = 150
        margin_x = 20
        margin_y = 20
        margin_fb_and_num = 20
        margin_fret_num_h = 5
        strings = 6


        #下地
        surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, sf_w, sf_h)
        cx = cairo.Context(surface)

        cx.set_source_rgb(1.0, 1.0, 1.0)
        cx.rectangle(0, 0,  sf_w, sf_h) #左上 x y と 幅 高さ
        cx.fill()

        #マス
        cx.set_source_rgb(0.0, 0.0, 0.0)

        fb_x0 = margin_x
        fb_y0 = margin_y
        fb_x1 = sf_w - margin_x
        fb_y1 = sf_h - margin_y - margin_fret_num_h - margin_fb_and_num

        frets_interval_x = (fb_x1 - fb_x0) / frets
        strings_interval_y = (fb_y1 - fb_y0) / (strings-1)

        fb_x_seq = range(fb_x0, fb_x1, frets_interval_x)
        fb_x_seq.append(fb_x1)
        fb_y_seq = range(fb_y0, fb_y1, strings_interval_y)
        fb_y_seq.append(fb_y1)
        
        for px in fb_x_seq:
            cx.move_to(px, fb_y0)
            cx.line_to(px, fb_y1)
            
        for py in fb_y_seq:
            cx.move_to(fb_x0, py)
            cx.line_to(fb_x1, py)

        cx.stroke()

        #抑えるところマーク
        for i in range(6):
            if not pos[i] is None:
                pos_x = (pos[i] - 0.5) * frets_interval_x + fb_x0
                pos_y = fb_y_seq[i]
                pos_r = strings_interval_y * 0.4
                cx.arc(pos_x, pos_y, pos_r, 0, 2*math.pi)
                cx.fill()

        #フレット番号
        cx.select_font_face(
            "monospace", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_BOLD)
        cx.set_font_size(22)
        font_x_bearing, font_y_bearing, font_width, font_height = \
            cx.text_extents("8")[:4]
        fretnum_y = sf_h - margin_y - margin_fret_num_h
        fret_nums = range(leftmost_fret + 1, leftmost_fret + 1 + frets)
        for i in range(frets):
            fretnum_x = (i + 0.9) * frets_interval_x + fb_x0
            cx.move_to(fretnum_x - font_width/2 - font_x_bearing, 
                       fretnum_y - font_height/2 - font_y_bearing)
            cx.show_text("%d" % fret_nums[i])

        surface.write_to_png(filename)
        return


def main():
    zero=2
    f1 = FretBoard(filename="F#maj7.png",
                   leftmost_fret=1,
                   pos=[None, 1, 2, 2, None, 1]).run()
    f1 = FretBoard(filename="F#6.png",
                   leftmost_fret=1,
                   pos=[None, 3, 2, 3, None, 1]).run()
    f1 = FretBoard(filename="F#.png",
                   leftmost_fret=1,
                   pos=[None, 1, 2, 3, None, 1]).run()
    f1 = FretBoard(filename="F#+5.png",
                   leftmost_fret=1,
                   pos=[None, 2, 2, 3, None, 1]).run()

    f1 = FretBoard(filename="F7.png",
                   leftmost_fret=0,
                   pos=[None, 4, 2, 3, None, 1]).run()

    f1 = FretBoard(filename="Bbm7.png",
                   leftmost_fret=0,
                   pos=[None, 2, 1, 3, 1, None]).run()

    f1 = FretBoard(filename="C#m.png",
                   leftmost_fret=3,
                   pos=[None, 2, 3, 3, 1, None]).run()

    f1 = FretBoard(filename="Bbm7-5.png",
                   leftmost_fret=4,
                   pos=[None, 1, 2, 2, None, 2]).run()

    f1 = FretBoard(filename="Eb7.png",
                   leftmost_fret=3,
                   pos=[None, 1, 3, 2, 3, None]).run()

    f1 = FretBoard(filename="Abm7.png",
                   leftmost_fret=2,
                   pos=[None, 2, 2, 2, None, 2]).run()
    f1 = FretBoard(filename="Abm7-5.png",
                   leftmost_fret=2,
                   pos=[None, 1, 2, 2, None, 2]).run()

    f1 = FretBoard(filename="C#7-9.png",
                   leftmost_fret=2,
                   pos=[None, 1, 2, 1, 2, None]).run()

    f1 = FretBoard(filename="A.png",
                   leftmost_fret=4,
                   pos=[None, 1, 2, 3, None, 1]).run()

    f1 = FretBoard(filename="E7.png",
                   leftmost_fret=4,
                   pos=[None, 1, 3, 2, 3, None]).run()

    f1 = FretBoard(filename="E7.png",
                   leftmost_fret=4,
                   pos=[None, 1, 3, 2, 3, None]).run()

    f1 = FretBoard(filename="Ebm7-5.png",
                   leftmost_fret=5,
                   pos=[None, 2, 1, 2, 1, None]).run()

    f1 = FretBoard(filename="C#Maj7.png",
                   leftmost_fret=3,
                   pos=[None, 3, 2, 3, 1, None]).run()
    
    f1 = FretBoard(filename="Eb7.png",
                   leftmost_fret=3,
                   pos=[None, 1, 3, 2, 3, None]).run()

    f1 = FretBoard(filename="C#7.png",
                   leftmost_fret=1,
                   pos=[None, 1, 3, 2, 3, None]).run()
    

main()




追記 5/6:
F#7 なんて出てこないですね。まちがえました。F7 です。
(自分で弾いててなんかおかしいな?と思ってたら間違ってました。上記の図とソース、F#7 -> F7 に修正しました。)


@music