他カテゴリ

オリエンタル・ウインド・チャイムの脱線

sphiarno-88's icon'
  • sphiarno-88
  • 2021/01/28 13:15

本日は短めです。

ただマニアックすぎるので消すかもしれません。

前回の記事はこちら。

 

おまけはこちら。

 

本体のプログラムを更新中ですが、フォルマントフイルター実装のために少し苦戦しています。ここで少し脱線しましょう。

今日のものは、こちらの記事にインスパイアーされたものです。

 

ソルフェジオ周波数の前に、まずは前回やっていないものから2つのものをやります。

 

・ホールトーンスケール

ホールトーンスケールは実体としては2つしか存在しません。G-C#系(仮名)とC-F#系(仮名)です。下図、上段の左が前者、右が後者です。

Content image
図1

 

これが意図していることの1つは、短調ドミナントとその裏コードの合成の亜種という考え方です。これにしたがうと、ホールトーンスケールはドミナントの一種と考えることができます。解決先は、根音にもよりますが、もう一つのホールトーンをルートにもつ主に短調系と見なせるでしょう。下図の9小節以降が参考になるでしょう。

Content image
図2

 

前のプログラムに合成してみました。

 

 

・ディミニッシュ

本来、ディミニッシュをスケールを考える場合は、ハーモニック・マイナーP5ビロウ、スパニッシュなどいろいろなドミナントスケールの派生も考慮した方がいいのですが、今回、説明はコンディミ  (Combination of Diminish) のみとし、演奏はただのディミニッシュのみとしました。いずれの場合も、音楽の根底的緊張度にもよりますが、通常はドミナント系とみなして良いでしょう。

コンディミも短調のドミナントとみなすことができます。特徴的なのは、ルートの同ディミニッシュ系列のどのコンディミも同じ構成音ということです。たとえば、G-CoDim = B♭-CoDim = D♭-CoDim = E-CoDim です。図1の下段が参考です。

これを応用すると、G7の代替として、E7、D♭7、B♭7を使用できる、という考えることができます。図2の上段です。なんたらの十字架理論、なんてよばれてたりしたような(忘れました)。逆に考えると、G7の解決先として、C系、E♭系、F#系、A系を選択できるという考え方もできます。

聞けば分かりますが、ただのDim7は要は「ドラクエの洞窟?」です。

 

 

なお、同コンディミ系コードの、G7+9 ⇒ A♭7+9 的進行は「緊急速報」です。

 

・ソルフェジオ

再掲します。

 

こちらについては今回はじめて知りました。音の周波数要素は、相対的なものと絶対的なものがありますが、これは絶対的な要素が強いものといえそうです。

絶対的要素というと大げさですが、この類似はフォルマントや人声、つまり初音ミクのようなものを想像するといいかもしれません。音のイメージは、倍音構成など発振に関わる要素と、固有フォルマント(固定的周波数のピークをもつ)など共鳴やバディに関わる要素の影響を受けます。

これは個人的主観ですが、絶対音感を持っている人をすごいと思う方は、自分自身の聴力の高さを認識してほしいと思います。「誰が」「どのような感情で」「どの言葉を」「さらに高さを確認して」、人声を聞き分けているのです。ミラクルではないでしょうか。記述はできなくても「分かる」わけですから。

ここで音の高さや倍音構成以外で影響のある部分には、フォルマントが関わってきます。ホーミーなど移動フォルマントというものもありますが、固定フォルマントの聴覚上の心理的影響についてはよく知られているところではあるので、ソルフェジオ周波数については興味深いところがあります。

ノイズを組み入れながら作ってみました。

 

 

Python プログラムの一部です。

frq_slf のリスト部が、今回使用したソルフェジオ周波数です。

import math
import matplotlib.pyplot as plt
import numpy as np
import random
import simpleaudio as sa
from scipy import fftpack


PI = np.pi

hz = 174
rate = 44100
fm = 50
ratio = 1 - 0.010
noise = 0.15

sine_wave = [math.sin(x*hz*PI*2/rate) for x in range(rate)]

frq_slf = [174, 285, 396, 417, 528, 639, 741, 852, 936]

fm_wave = [[math.sin((
           math.sin((x+
           random.random()*noise**2*rate/f+(
           math.sin(x*(f*(1+0.1*(random.uniform(-1, 1)*(noise**2))))*PI*2/rate)
           *(((1-noise)**0.5)+(random.random()*(noise**0.5))))
           *fm/100*(rate-x+1)/rate
           )*f*ratio*PI*2/rate)
           *fm/100*(((rate-x+1)/rate)*(1+0.1*(random.uniform(-1, 1)*(noise**3))))
           )*f*PI*2/rate)
           for x in range(rate)] for f in frq_slf]

# normalize and adjust
fm_wave = [np.multiply(fm_wave[i], (32767 / ((np.max(np.abs(fm_wave[i])) + 1)*(5+(i/3)))))
         for i in range(len(frq_slf))]

 

音自体は面白いものになったかなと思いますが、調整の難しいシンセデザインやノーマライズ前提なのは残念な結果になりました。あ、でも random をたくさん入れるのは個人的に好きです。なお、今回は特殊なFMを使用しました。

 

なんだかんだ、長くなりましたね。本日はここまでです。

異世界へお越しいただき、ありがとうございました🍹

Supporter profile icon
Article tip 1人がサポートしています
獲得ALIS: Article like 83.02 ALIS Article tip 1.00 ALIS
sphiarno-88's icon'
  • sphiarno-88
  • @sphiarno-88
くるくる回る人

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
ビジネス

ブックオフで買ってきてアマゾンで売る仕事の1ヶ月の売り上げ公開

Like token Tip token
177.41 ALIS
Eye catch
ゲーム

【初心者向け】Splinterlandsの遊び方【BCG】

Like token Tip token
6.32 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
クリプト

ブロックチェーンの51%攻撃ってなに

Like token Tip token
0.00 ALIS
Eye catch
グルメ

バターをつくってみた

Like token Tip token
124.75 ALIS
Eye catch
クリプト

スーパーコンピュータ「京」でマイニングしたら

Like token Tip token
1.06k ALIS
Eye catch
他カテゴリ

京都のきーひん、神戸のこーへん

Like token Tip token
12.10 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
トラベル

梅雨の京都八瀬・瑠璃光院はしっとり濃い新緑の世界

Like token Tip token
213.49 ALIS
Eye catch
他カテゴリ

機械学習を体験してみよう!(難易度低)

Like token Tip token
69.82 ALIS
Eye catch
他カテゴリ

SASUKEオーディションに出た時の話

Like token Tip token
35.87 ALIS