6/13/2025

Post

見切り発車 P - サーカス feat. 猫村いろは を作曲した

概要

3 時間ほどで作詞作曲録音しました。なんか今回は疲れた……。エネルギーを使う曲だったのかもしれません。

以下のリンクで聞けます。

サーカス

聞いての通り、 ニール・ヤング に影響を受けています。テーマも珍しく明確で「怒り」というものです。

つくるまえ

ニール・ヤングと ヴァン・モリソン が本日(2025/06/13)、アルバムをリリースしていました(まだ聴けていません)。この人たちは 70 代後半なのに、元気に新曲を出しています。素直に尊敬する。

そういえば、 BB キング は 2005 年に 80 歳記念のアルバム"80"を出していました(遺作は 2008 年の"One Kind Favor")。80 歳越えはすごいと思っていたけれど、ニール、ヴァン、 ボブ・ディラン あたりは追いつきそうですね。

話がそれました。とにかく、ニールの影響を受けた曲を作ろうと思い、まずはギターでコードから作り始めました。

作曲部分

通常のいわゆる Em の押さえ方にプラスして、2 弦 3 フレットの D 音を押さえた Em7 を使っています。この D 音があるとニールっぽいです。

想像ですが、ニール・ヤングもボブ・ディランやビートルズと同様、2 弦 3 フレットの D を加えた G の押さえ方を使用しているのではないでしょうか。その流れで出てきた Em7 と考えると、しっくり来ます。

その Em7 を使ってまずイントロが出来ました。このイントロは"Heart of Gold"のようなリズムの形を持っています。イントロのコード進行は Em7 -> G -> Cadd9 で、これはメインリフとして何回か使われます。

A メロの特徴は、2 弦 3 フレットの D 音をステイしていること(いわゆる、ペダルポイント)です。コード進行は Em7 -> A7sus4 > Dadd9 > Cadd9 ですが、これがもし D 音のペダル抜きだと、 Em -> A7 -> D か Dadd9 -> C というごくシンプルなコード進行になってしまいます(別にこれはこれで良いのですが)。今回はペダルにしたほうを採用しました。

A メロのメロディはペンタトニックを上下したような感覚があります。また、ちょっと息の長いメロディで、7 小節ほどで 1 セットになります(繰り返しは 8 小節)。ここはニールよりオアシスに近い感触があります。

この辺でカポタストを 2 フレットに付けて、実際のキーを F#m にしました。ちょっと音域を上げたかったからです。

B メロは Bm7 -> Cadd9 というちょっと停滞したようなコード進行です。2 回目は Cadd9 が Cdim7 になっています。Cdim7 にしたのは良いアイデアだったなあと思いますが、ここはニールの影響はあまりありません。

サビです。Dadd9 -> G -> Em7 -> G Cadd9 というコード進行で、ここはニールの影響が強いです。特にいきなり Dadd9 から入るところがニールっぽいです。イメージ的には"Rockin' in the Free World"でした。

ただ、サビのメロディがやや低めになってしまったのは反省点。伴奏でごまかしています。

作詞部分

AB サビとできたところで作詞に入りました。

歌詞についてはわりと早くにサビのフレーズ(早く足をどけろ)が出てきたので、そこから逆算していきました。テーマは「怒り」です。

テーマが怒りではありますが、直接的に「怒り」とは書かず、また具体的に何に対して「足をどけろ」と表現しているのかも明確ではありません。このあたりのバランス感覚は 斉藤和義 の "僕の見たビートルズは TV の中" を意識しました。

明確にすると古びたり、余計な波風が立ったりするので、少しぼかしています。斉藤和義の曲にしても、 TV という単語が古いくらいで、あとは普遍的な内容になっています。

演奏部分

実は直前に UVINAGOYA HARP という大正琴の音源を買っていたので、使いたかったのです。そのため、いつもならオルガンを入れそうなところに大正琴のボウイング奏法を入れています。しかもギターアンプ・シミュレーターに通しています。全然ニールじゃないじゃん……とセルフツッコミしながら作っていました。

あえてこじつければ、ニールの曲に頻出するペダル・スティールの役目を大正琴に置き換えています。

ギターはいつものセミアコから、 Fender Twin Reverb のシミュレーターに通しています。ゲインを結構上げているので、クリーンな音ではありません。ニール・ヤングはフェンダーを歪ませた音を好んで使っているので、真似しました。

あと普段はピック弾きをあまりしないのですが、今回はニール風ガシガシピッキングをしたかったので、ピックで弾いています。

ドラムは Addictive Drums 2 です。キツめにコンプをかけて、パワフルな音にしています。また、ニールの曲はハイハットが 4 分音符というイメージがあるので、そうしてみました。

ベースは Modo Bass です。ドラムに負けないよう、内蔵アンプシミュで大音量にしたあと、コンプレッサーで潰しています。

ボーカルは 猫村いろは です。今回はバックトラックが派手なので大丈夫かなあと思いましたが、わりと負けずに歌ってくれました。モノラルのリバーブとステレオのリバーブを併用しています。

できた

このへんですでにヘロヘロになっていたので、動画は赤い背景色に白いオーディオビジュアライザを表示しただけのシンプルなものにしました。

なぜ赤かというと、AI が関係しています。以前に作っていた AI(Gemini)に音楽データを解析させてみるというプロジェクトに突っ込んでみたら、連想される色の項目で Crimson Red と返してきたのです。

(他にも連想される絵文字の項目では['🎸', '💥', '😠', '🏃', '🎪']と返してきました。かなり聴き取れている……)。

この AI プロジェクトについてはまたいつか書こうと思います。

まとめ

今回はニール・ヤングの影響を受けた曲を作りました。テーマは「怒り」です。

サーカス

聞いてね!

#ニール・ヤング #vocarock

6/12/2025

Post

Godot エンジンで右に歩いてスライムに出会うまで

概要

Godot Engine を使用して、右キーを押すとキャラが右に歩く / スライムにぶつかると戦闘画面に遷移する という簡単なゲーム(ゲームと言うか、デモ?)を作成しました。

キー入力が必要なので、スマホ対応は NG です。

https://mi-ki-ri.github.io/Walking_and_Meet_Slime/ こちらのリンクからプレイできるので、よかったら試してみてください。

作業内容

右キーを押して歩くフィールド画面、そしてスライムにぶつかると出てくる戦闘画面の 2 種類を使い分けるのが主眼です。

メインのスクリプトファイル( gameManager.gd )のループは一つ( _process(delta)関数 )で、フィールド画面と戦闘画面は phase という変数で切り替えています。

イメージ的には、

...
func _ready():
  var phase = "field"

func _process(delta):
  if phase == "field":
    # フィールド画面の処理
    fieldPhase.update(delta)
  elif phase == "battle":
    # 戦闘画面の処理
    battlePhase.update(delta)
  else:
    ...

こんな感じです。そして各フェイズと phase 変数はグローバルで持ちたかったので、 Global.gd というスクリプトを用意し、Godot のプロジェクト設定 -> グローバル から読み込みました。

各フェイズ自体は gameManager.gd の中で定義しています。おかげでファイルが長くなってしまいました。

...

class fieldPhase:
  func update(delta):
    # 更新処理、キー入力処理
    draw()

  func draw():
    # 描画処理
    for player in players:
      player.object.position.x = player.elapsed_road * 32 + player.position_x + player.position_x_offset
    pass
...
class battlePhase:
  func update(delta):
    # 更新処理、バトルのロジック
    draw()

  func draw():
    # 描画処理

こんな感じです。

そして素材! たったこれだけの素材を用意するのが結構大変でした。

これからはどんどん使いまわして、制作スピードを上げていきたいです。

まとめ

今はまだデモをたくさん作る段階だと思っているので、これからもどんどん使いまわしていきたいです。

今回フィールドがメインでバトルは省略されているので、次回は逆にバトルをメインにしたい。

ゼラチナ(スライムの名前)はこれからも何度も出てくる(そして倒される)予定です。

もう一度リンク

https://mi-ki-ri.github.io/Walking_and_Meet_Slime/ こちらのリンクからプレイできます。

#制作 #godot #gamedev

6/10/2025

Post

スライ・ストーンの訃報に触れて

概要

ミュージシャンの スライ・ストーン (本名シルヴェスター・スチュワート)が 2025 年 6 月 9 日(現地時間)に亡くなったと報じられました。享年 82 歳。

まずは御冥福をお祈りします。

スライは 60-70 年代に活躍したバンド「 スライ&ザ・ファミリー・ストーン 」のリーダーでした。ソウルと、当時出始めだったファンク、さらにロックを取り入れた音楽性で、ヒット曲には"Dance to the Music" や "Everyday People" などがあります。

スライ&ザ・ファミリー・ストーンは当時としては珍しい人種混合・男女混合バンドでした。その理想主義と、当時の曲の享楽的な雰囲気は、ヒッピー文化に大きな影響を与えていたと思われます。

また、70 年代に入ってからはストイックな音楽性に移行し、いち早くリズムマシンを取り入れるなど革新的な試みを行いました。このころのアルバムには "There's a Riot Goin' On" があります。自分は "Fresh"が好きです。

影響(音楽界の)

スライの音楽と活動スタイルは様々なアーティストに影響を与えました。

例えば、 "There's a Riot Goin' On" の社会的なメッセージは、 マーヴィン・ゲイ の "What's Going On" とともに、70 年代ソウルに大きく影響を与えました。 スティーヴィー・ワンダー もこの流れを受けた一人です。

また、リズムマシンの使用や一人でグルーヴを作ってしまうあたりは プリンス にも影響を与えていると思われます。

同じくグルーヴへの意識(ひたすらループする曲も多い)は、 ディアンジェロ にも受け継がれています。彼の歌い方はスライっぽいと感じます。

影響(ごく個人的な)

自分もスライの音楽に影響を受けました。

最初に興味を持ったのはスティーヴィーやプリンスと同時期に、ソウルというジャンル自体への興味からだったと思います。

買ったのは "Fresh" でした。「ケセラ・セラ」という曲を知っているような気がしたからでしたが、実は同じタイトルの別の曲でした。でもすぐにその音楽性に夢中になりました。

特に作曲・アレンジにおいて、楽器を多重録音して「役割分担」するスタイルが、自分にとって衝撃でした。よかったら "In Time" を聞いてみてください。

In Time

この曲はリフ・ギター、オルガン、ベース、ホーンセクション、コーラスなどがそれぞれの「持ち場」を持って演奏しているように感じます。ドラムは細かいパターンを繰り返していますが、全体としては一つでは成り立たず、各パートが絡み合うことでグルーヴが生まれています。

このスタイルは、ディアンジェロなどのネオソウル・アーティストに強く影響を与えていると思われます。そして自分もこのスタイルに影響を受けました。

チャイム

自分の曲で言えば、例えばこの「チャイム」なんかがそうです(古い曲ですが……)。リズムマシンのカウベル、エレキギター、ベース、ドラムが絡み合うことで一つのグルーヴになっているように作ったつもりです。

まとめ

スライ・ストーンの音楽は、特にソウルとファンクのジャンルにおいて、革新的な影響を与えました。後年は病気などで音楽どころではなかったようですが、亡くなった今となっては、その魂が安らかに眠ることを願うばかりです。

#スライ・ストーン #追悼 #音楽 #ソウル

6/7/2025

Post

最近考えたこと: 冷笑したくないからアンガジュマンしたい

最近の状況

一時に比べるとやや下火になった気はするものの、まだ冷笑的な態度を取る人・およびそれを称賛する人は多いように感じます。

しかし、自分は冷笑したくないです。されたくも無いけれど。

気を抜くと冷笑しそうになる自分が悲しい。

そこで今回は冷笑について考えてみました。

冷笑とは

まず冷笑の定義を考えなければなりません。

つらいけど考えました。

冷笑とは、Goo 辞書によると、「さげすみ笑うこと、あざ笑うこと」であるようです。

相手を下に置く(さげすむ)態度及び、その相手を笑うことが冷笑であるようです。

下に置く(さげすむ)とは、何について下に置いているのかを考えると、おそらく 知的さ について下に置いているのではないかと思います。

さらに一歩進めると、あらゆる知的さの中でも 地頭の良さ について、自分を相手より優位に置く態度が見られます。

名前を挙げると問題になりそうなので挙げませんが、けっこうな割合の冷笑家は地頭の良さにこだわりがあるように感じます。

ある問題について、経験者や専門家が持った意見に対し、「 素朴 に考えるとこうなるよね」といった感じで否定するのがよくあるパターンです。

素朴・素直・論理的・合理的といった言葉を使うことが多いですが、ようするに個々の事情を無視する・一般化する態度を取ることが多いです。そうすることで 地頭 の良さをアピールできます。

冷笑の問題点

冷笑の問題点の一つ目は、相手を下に置く(さげすむ)態度そのものです。

相手を下に置くことで、まともに取り合わなくなります。

結果的にもともとの問題の解決が放置されます。

二つ目は、地頭の良さが専門知識よりも優れていると考えているが、その根拠に欠けることです。

ある問題について、経験者や専門家が持った意見に対し、地頭による別の解決を持ち出すこと自体は、有意義なことです。

しかしその際、別の意見を否定する形になることがほとんどです。

(専門家が今まで解決できていないから「問題」になっているわけで、ある意味専門家は失敗していることになります。そこに、自分がやれば解決できるという意見を持ち出すことは、専門家のやり方を否定することになります。)

それで新しいやり方を進めて解決していくなら良いのですが、冷笑家は手を動かすことはしません。

つまり、もともとの問題の解決には寄与しないです。

そこでアンガジュマンしたい

アンガジュマンとはコトバンクによると、

〘 名詞 〙 ( [フランス語] engagement ) 現実社会の問題に参加して自分の態度をきめ、その賭けの抵当として自己を拘束すること。自己拘束。社会参加。⇔ デガージュマン

です。デガージュマンというのもあるのですね。知らなかった。

綴りを見ても分かるように、エンゲージメントのフランス語版です。

アンガジュマンは自分の態度を決めて、社会参加をします。よって(立場が定まるので)自己拘束することにもなります。

自己を拘束するのは不自由のように見えますが、主体的な行動を取るためには必要なことです。自由という言葉を分解してみると、主体的という単語はまっさきに出てくるのではないでしょうか。

このように自由や主体性との関係で言われることの多いアンガジュマンですが、冷笑予防にも有効だと思います。

アンガジュマンをしつつ意見を持つことで、相手を下に置くことを避けられます。みんな苦労しているのが分かるからです。

さらに地頭の良さへのこだわりも薄れます。地頭を観測するには、予備知識がゼロである必要があります。アンガジュマンしているなら予備知識もあるので、地頭は普通の経験値にうもれて観測できなくなります。ようするに地頭どころではなくなります。

まとめ

冷笑とアンガジュマンについて考えました。

冷笑は相手を下に置く態度であり、地頭の良さをアピールすることが多いですが、実際には問題解決に寄与しません。

一方でアンガジュマンは、自己を拘束して社会参加することであり、冷笑予防のみならず問題解決に寄与する可能性すらあります。

自分は冷笑していないか? という問いには、どの程度(いま問題にしている問いに)アンガジュマンしているか? という基準で答えられるのではないかと思います。

#冷笑 #アンガジュマン #哲学

6/2/2025

Post

最近考えたこと: AI時代にセレンディピティの重要性は増すのではないか

前説

日記というか「振り返り」を適宜記録することにしました。

最初は夜寝る前に記録する! という希望があったのですが習慣化できず。それは自分には向いていないようなので、適宜振り返る方向で。

今回は自分用メモに残っていたAI時代とセレンディピティについて掘り下げてみます。

生成AIの進化

#生成AI の進化は速く、もう大学受験させたら東大二次とかに相当するらしいです。 河合塾のニュースリリース

しかしながらまだ現時点では、専門分野の細かい知識はおぼつかないように思います。

例えば自分に専門分野があるとすれば作曲方面ですが、チャットAIはコードネームの付け方を結構間違えます。おそらくAIが依拠しているWeb上の知識の質・量がまだ足りないということなのでしょう。

専門分野ではない、常識的な分野のことを聞けばハルシネーションも抑えられますし、自分で確認するのも楽です。今のところ、AIの 知識面 を利用するならそのような運用が良いと思います。

(知識的な問題ではなくて、作業的な問題を解決してもらうならこの限りではないです。タグつけとか変換とか)

AIに何を聞くのか 異分野の常識

AIに常識的な分野を聞いても面白くないという意見もあるでしょう。しかし、例えば自分(日本人30代男性)の常識は、ナイジェリア人70代女性とか韓国人20代女性とかとは違うと想像できます。そこで、 異分野の常識 を尋ねるというアイデアが出てきます。

例えば前に #アルゼンチン音響派 について出力してもらったことがあります。アルゼンチンの音楽の、それもごく一部のジャンルですが、ちゃんと答えてもらえたように思います(自分の知識では正確さを判定できませんでしたが)。

つまり、自分の死角に入っている分野の常識を尋ねること。それでAIの幻覚のリスクを抑えつつ、知らない知識を得られるのではないかと思います。

知らない分野とどう出会うか セレンディピティ

そこで問題になってくるのが、自分の知らない分野にどうやって興味を持つかです。

芋づる式に引っ張ってくる方法: 例えば、もともと音楽に興味があったからアルゼンチン音響派という単語を知れた

偶然に頼る方法: 例えば、本屋の平台に並んでいる見出しとかから興味を持てる単語を探す

それすらもAIに頼る方法: 面白そうだけど、メモリーをうまく管理しないと同じのばかり勧められそう

とりあえず3つ挙げてみましたが、この中でも強力なのが 偶然に頼る方法 です。つまり #セレンディピティ です。

ここではセレンディピティとは、何かを探しているわけではないのに、偶然に素晴らしい発見をすることです。

世の中はフィルターだらけです。見える情報は最初から偏光しています。例に挙げた本屋の平台も、実は地域性によって汚染されています。が、まだそれなりにセレンディピティが機能していると思います。

さらには大学の各種講義。まあ大学に詳しくないのであれですが……。たぶん入門者にうまく興味を持たせるような講義をしているのだと思います。

#Wikipedia を適当に回遊するのも面白いです。

とにかく #フィルタリング されていない、一覧性のある情報を探して、そこから興味を広げていく。その場合に生成AIが頼りになるのではないかというお話でした。

5/28/2025

Post

「Spotifyのリンクにトラック名などをつけるや~つ」をつくりました

概要

Spotifyからのシェアのとき、いつからかリンクテキストしか入らないようになってしまいました。

OGPの解釈ができるプラットフォームであれば? トラックアートと詳細が表示されますが、例えばTwitter(X)ではその情報を検索はできません。

パブサからフォロワーさんができる可能性が低くなるだけでなく、自分自身のツイートを検索する場合もやや不便。

そこでSpotifyのリンクからトラック名などを取得し、表示するだけのWebアプリ「Spotifyのリンクにトラック名などをつけるや~つ」を作りました。

技術的な詳細

最初はブラウザ上で完結するアプリを目指していたのですが、それだと認証が大変だということで方針を転換しました。

Pythonを使用したサーバーサイドも含めたアプリとなっています。

FlaskやSpotipyを主に使用しています。

見た目はOpenPropsを使いました。面白い形がたくさんあったので多用してみました。

デプロイ先はRailwayです。たぶんhobbyプランの中で収まるはず。

競合との比較

Songwhipはシェアサービスをやめたみたい? ですが、とにかくSongwhipのような「他アプリへのリンク機能」は無いです。とにかくトラック名などを取得しテキストエリア(コピー機能付き)に表示するだけです。

通常のテキスト用、マークダウン用、リンクのみの3パターンを用意しています。

まとめ

典型的な「自分が欲しいアプリを開発」パターンでした。ブックマークに入れておくと役立つかも知れません。無料です。

#アプリ #開発 #Spotify

5/28/2025

Post

ネコがうまく描けないならビニール袋を描けばいいじゃない

概要

#ビニール袋 と #ネコ が一見似ている(見間違う)。「よつばと!」にも登場したあるあるネタです。

一方で自分はネコがうまく描けません。顔と体のバランスが悪いのか、どうも違和感がある。そこで逆の発想、まずビニール袋を描いてそこからネコに変形させてみました。

ビニール袋を描く

部屋に落ちていたコンビニ袋を参考に描きました。取っ手側に比べ、底側はぽってりとしているのが特徴的です。水滴状の形をイメージすると描きやすいです。

比較的膨らんでいる袋と、しぼんでいる袋の 2 種類を描きました。

ネコに変形させる

ビニール袋のぽってりとしている部分をネコのおしりとして、取っ手側にネコの顔を合わせます。取っ手はまさに手です。

顔のサイズ感が最初難しかったですが、何回目かの挑戦でうまく行きました。

結果

描いたネコの絵

わりとありではないでしょうか。ネコに限らず、イメージしやすい形をもとに描いていくのが上達への近道だと思います。

#お絵かき #tips

5/16/2025

Post

言語ごとの頻出文字から音象徴の理論を利用して「言語の印象」を調べてみた(Python)

音象徴とは

#音象徴 とは、音の響きが特有のイメージを持つよな、みたいな現象のことを言います。

例えば、「タケテ」という架空の言葉はトゲトゲした形を連想させることがヴォルフガング・ケーラーによって実験されたらしいです。

参考

ざっくり破裂音は「スピード」「硬さ」などを感じさせ、流音は「流動的」「柔らかさ」を感じさせたりするようです。

なんとなく #共感覚 を連想させる現象ですね。

言語ごとの頻出文字とは

#エドガー・アラン・ポー の「黄金虫」では、ランダムな文字列に見える暗号を英語の頻出文字によって解読するという話がありました。大昔に読みました……。

例えば、ランダムな文字列の中で最も頻出している文字は、英語の頻出文字である「E」ではないか? という形の推理を行い、宝の地図を見つけました。

#Wikipedia には文字の出現頻度という記事があります。それによると、英語では最も頻出するのはやはり「E」で、次に「T」や「A」が続くようです。

そこで

言語ごとの頻出文字(例えば、「英語: E」)と、音象徴の音素ごとのイメージ(例えば、「/i/: 素早い」)を照らし合わせれば、言語の印象(英語: 素早い)を調べられるのではないかと思いました。

下準備

文字の出現頻度は Wikipedia にあるテーブルをコピペして TSV ファイルにしました。

  Unnamed: 0        0       1       2       3        4       5       6       7       8       9      10      11      12      13      14  ...      90 91 92 93       94 95 96 97 98 99      100 101  102 103       104      105
0         ⽂字        a       b       c       d        e       f       g       h       i       j       k       l       m       n       o  ...       ü  ű  ů  ų        ū  ẃ  ẁ  ŵ  ẅ  ỳ        ý   ŷ    ÿ   ź         ż        ž
1         英語   8.672%  1.485%  3.424%  3.904%  12.155%  2.302%  1.945%  4.745%  7.532%  0.187%  0.600%  4.237%  2.647%  7.337%  7.377%  ...  0.003%  0  0  0  0.0007%  0  0  0  0  0  0.0001%   0    0   0  0.00009%  0.0003%
2      フランス語   7.636%  0.901%  3.260%  3.669%  14.715%  1.066%  0.866%  0.937%  7.529%  0.813%  0.074%  5.456%  2.968%  7.095%  5.796%  ...       0  0  0  0        0  0  0  0  0  0        0   0  ~0%   0         0        0
3       ドイツ語   6.516%  1.886%  2.732%  5.076%  16.396%  1.656%  3.009%  4.577%  6.550%  0.268%  1.417%  3.437%  2.534%  9.776%  2.594%  ...  0.995%  0  0  0        0  0  0  0  0  0        0   0    0   0         0        0
4      スペイン語  11.525%  2.215%  4.019%  5.010%  13.702%  0.692%  1.768%  1.973%  6.247%  0.493%  0.026%  4.967%  3.157%  6.712%  8.683%  ...  0.012%  0  0  0        0  0  0  0  0  0      ~0%   0    0   0         0        0
...

発音ごとの印象は、AI に聞いて表にしてもらいました。

     音素  大きさ  明るさ  形状(鋭さ+/丸さ-)  重さ  硬さ  速さ  滑らかさ
0  /i/    -4    5            4  -4   0   3     0
1  /e/    -2    4            2  -2   0   1     0
2   /a/    5    0           -1   4   0   0     0
3   /o/    4   -4           -4   4   0  -3     0
4   /u/    0   -3           -3   2   0  -1     0
...

また、それらをつなぐものとして、英語のスペルと発音を対照する表も AI に作ってもらいました。

        音素   英語Character  フランス語Character ドイツ語Character スペイン語Character イタリア語Character 日本語Character ロシア語Character
0  /i/ (い)  i, ee, ea, y            i, y     i, ie, ih              i              i            い             и
1  /e/ (え)         e, ea  é, è, ê, e, ai      e, ä, eh              e              e            え          э, е
2  /a/ (あ)             a         a, à, â         a, ah              a              a            あ             а
3  /o/ (お)         o, oa      o, au, eau         o, oh              o              o            お             о
4  /u/ (う)         u, oo          ou, où         u, uh              u              u            う             у
...

ついでに、a_to_z という変数にアルファベットを格納しました。

a_to_z = set("abcdefghijklmnopqrstuvwxyz")

コード

あとはこれらを組み合わせるだけです。

が、けっこうややこしかったので、これも AI に手伝ってもらいました。

## 要望する #Python スクリプト

これらのファイルを元に、音素の特徴を考慮して、各言語の音素の印象を数値化した TSV ファイルを作成してください。

まず、a_to_z のセットをループで回します。

各文字に対し、characters_lng_transposed.tsv を検索して、各言語ごとの文字の出現率を取得します。

各文字に対し、phonics_characters.tsv を検索して、音素を取得します。

音素には日本語文字が含まれていることがあるので、正規表現で//の間の部分を取得してください。

各音素に対し、phonics_impressions.tsv を検索して、音素の印象を取得します。

そして各言語ごとにループを回し、音素の印象を加算していきます。

最後に、各言語ごとの音素の印象を TSV 形式で出力してください。

という感じで聞きました。

できたのが以下のグラフです。

(グラフ)

英語、ドイツ語、フランス語で特徴があまり変わりません。

がっかりしたので再チャレンジ。子音のみを対象にしてみました。

# a-zのセット # ただし、英語の子音のみを使用
a_to_z = set("bcdfghjklmnpqrstvwxyz")

できたのが以下のグラフです。

(グラフ)

特徴が出てきました。

英語->フランス語->ドイツ語の順に、

  • 重くなり
  • 滑らかになる

そうかなあ……。

重くなるのは分かりますが、ドイツ語、滑らかかなあ。

反省

音象徴は音を対象にしていますが、今回は頻出の文字を対象にしてしまいました。

文字は(特に英語においては)、やや不規則な部分があるので、今回の微妙な結果につながったのかもしれません。

例えば E が「イー」なのか「エ」なのかによって、イメージはだいぶ変わります。

まとめ

チャレンジはできました。

音象徴の理論を利用して、言語の印象を調べることができました。

結果は自分の思ったものではありませんでしたが、楽しかったです。

実はドイツ語、滑らかなのかも知れません。

5/9/2025

Post

サイト"log.mikiri.net"を公開します。

まだ荒いところもあるけど、だいぶ出来てきたので。

このサイトはブログスタイルで、投稿に #Tweet #Post #Song #Image という種類があります。

それぞれの種類の概要は名前の通りです。

他のサイト(Twitter/Xやnote)に投稿したポストを再投稿したりします。

タグ機能やページネーション(過去ログ)機能で遡ることができ、記事単体リンク(View Details)で単体表示します。

log.mikiri.netという名前のように、活動全体のログが残るようになる予定です。

よろしくお願いします。

#Info #開発

5/8/2025

Post

変わったトニックコードを探してみよう Python で探してみよう

概要

SoundQuest さんの記事を見ていたら、トニック/ドミナント/サブドミナントのとある理論書での定義が載っていました。

ここで、トニック/ドミナント/サブドミナントはそれぞれコードの機能を指します。

一般的には、トニックは安定、ドミナントは不安定、サブドミナントは中間的とされています。

また、ドミナント(特にドミナントセブンス)からトニックに移るコード進行は「解決感」があるとされています。

しかし IIIm の和音のように、トニックのようでもありドミナントのようでもある和音も存在します。 音楽は曖昧 であるため、トニックであるかを気にせずに IIIm を使って構わないと思います。

それはそれとして、定義付けというのは面白いものです。興味を惹かれたので、記事にしてみました。

トニック/ドミナント/サブドミナントの定義

ドミナント

  • ファを有し、かつシを有する

サブドミナント

  • ファを有し、しかしシは有さない

トニック

  • ファを有さない

雑感

トニックの定義には驚きました。ファがない限り、すべてトニックだというのです。

驚きましたが納得できる面もあります。まず IIIm はトニックに確定します。そして、ダブル・ドミナントとして使われていない場合の II7 は、確かにトニック的に使われることが多いと感じます。

例えばスピッツの曲にありそうな、 F G Am D7 F G C という進行ですが、この場合の D7 をトニックとも解釈できるのは便利だと思います。

ただし、この定義は一部のジャズ系理論書でのものであり、コンセンサスがあるわけではないようです。

応用

この定義を使えば、 II7 のような隠れトニックを探すことができます。

例えば C (ドミソ) はトニック、Dm (レファソ)はファがあるためサブドミナントです。エクセル(スプレッドシート)を使えば便利に探すことができます。

ここでは総当たりで探してみようと思い、エクセルやスプレッドシートではなく、Python で実装してみました。

Github にコードをアップしていますので、興味があればご覧ください。

ここではコードを分ける基準と、結果のみを書こうと思います。

ちなみに、全部キーは C メジャーを前提としています。

コードを分ける基準

こんなふうに書きました。

        if (
            "F" in Chord(current_chord).components()
            and "B" in Chord(current_chord).components()
        ):
            print("Dominant")
        elif (
            "F" in Chord(current_chord).components()
            and "Ab" in Chord(current_chord).components()
        ):
            print("Subdominant-Minor")
        elif "F" in Chord(current_chord).components():
            print("Subdominant")

        else:
            print("Tonic")
            tmp_tonic_list.append(current_chord)

Chord(current_chord).components() は和音の構成音を返す関数です。何度も書くはめになったので、本当は変数にすべきだったと思います。current_chord にはいろんな和音が入ってきます。

if で条件分岐しています。

  • "F" と "B" がある場合はドミナント
  • "F" と "Ab" がある場合はサブドミナントマイナー
  • "F" がある場合はサブドミナント
  • それ以外はトニック(tonic_list に追加)

さてどうなるか?

結果

Tonic List
[['C', 'Cm', 'Cmaj7', 'C7', 'Cm7', 'Csus2', 'Caug', 'Cdim', 'Cdim7', 'Cm7b5'],
 ['Dbm', 'Dbm7', 'Dbsus4', 'Dbsus2', 'Dbdim', 'Dbdim7', 'Dbm7b5'],
 ['D', 'Dmaj7', 'D7', 'Dsus4', 'Dsus2', 'Daug'],
 ['Eb',
  'Ebm',
  'Ebmaj7',
  'Eb7',
  'Ebm7',
  'Ebsus4',
  'Ebaug',
  'Ebdim',
  'Ebdim7',
  'Ebm7b5'],
 ['E',
  'Em',
  'Emaj7',
  'E7',
  'Em7',
  'Esus4',
  'Esus2',
  'Eaug',
  'Edim',
  'Edim7',
  'Em7b5'],
 [],
 ['Gb',
  'Gbm',
  'Gb7',
  'Gbm7',
  'Gbsus4',
  'Gbsus2',
  'Gbaug',
  'Gbdim',
  'Gbdim7',
  'Gbm7b5'],
 ['G', 'Gm', 'Gmaj7', 'Gsus4', 'Gsus2', 'Gaug', 'Gdim', 'Gdim7'],
 ['Ab',
  'Abm',
  'Abmaj7',
  'Ab7',
  'Abm7',
  'Absus4',
  'Absus2',
  'Abaug',
  'Abdim',
  'Abm7b5'],
 ['A', 'Am', 'Amaj7', 'A7', 'Am7', 'Asus4', 'Asus2', 'Adim', 'Adim7', 'Am7b5'],
 ['Bbaug', 'Bbdim', 'Bbdim7', 'Bbm7b5'],
 ['B', 'Bm', 'Bmaj7', 'B7', 'Bm7', 'Bsus4', 'Bsus2', 'Baug']]

非常にたくさんのコードがトニックらしさを持つことが判明しました。

トニックリストのうち、特に興味深いもの

D7

さきほども挙げた D7 ですが、G7 に進むダブル・ドミナントとして使われる以外は、トニックとして解釈可能なようです。

Dm がファを有するので勘違いしそうになりますが、D ファミリー自体はサブドミナント的であるわけではないということのようです。

よく F に進むのも、トニックとして解釈可能な状況証拠ですね。

Gm

Gm トニックなん?

まあ、Gm は C をベースにして Gm7onC の形を作ることがあるので、C との相性も良いのかもしれません。

B7

B7 が出てきたのは感慨深いです。

The Beatles の Sexy Sadie という曲で、 G F#7 C D というコード進行があるからです。

C における B7 は、G に移調すると F#7 になります。Sexy Sadie のコード進行を C に移調すると C B7 F G となります。

B7 から F というかなり面白いコード進行ですが、B7 がトニックなら理解可能です。

G

G はさすがにドミナントやろ? と思いますが定義上ファを含んでいないのでトニックとして解釈されています。

アイルランド風だったりすると G でもドミナントのえぐみが無かったりするので、そういう部分が反映されているのかもしれません。

F 系全滅

F の時点でファを含むので全滅してしまいました。

個人的には、ベースにファを使いハーモニーにファを含まない事が多い Fmaj7 あたりはトニックでも良い気がしましたが、定義上はダメですね。

まとめ

トニックの定義を知ったことから、総当たりでトニックコードを探してみました。

個人的には、D7 や B7 がトニックとして解釈されることが面白かったです。The Beatles の Sexy Sadie の謎が少し解けました。

注意: この記事では C メジャーであることが前提です。D7 がキー G メジャーのダブル・ドミナントとしても解釈できるように、一時転調が入ると話が変わると思います。

#作曲 #音楽理論