見出し画像

江戸時代の三味線の旋律を数式とPythonで表現して更に旋律を進化させる

進化した江戸時代の三味線の旋律の数式表現

三味線の旋律をよりリアルに再現するため、「基本音階」+「ビブラート」「スライド」「装飾音」 を組み込んだ数学的モデルを示します。


1. 基本的な三味線の音のモデル


2. 進化した音の表現

(1) ビブラート(音の揺らぎ)


(2) スライド(音程の移行)


(3) 装飾音(速い音の装飾)

三味線の旋律では、主要な音に対して速い装飾音(カラクリ音) が挿入されることがあります。
これは、高周波成分を追加することで表現可能です。


3. 進化した三味線の旋律の総合モデル

以上の要素を組み合わせると、進化した三味線の旋律は以下のように数式で表されます。


📌 まとめ

進化した江戸時代の三味線の旋律は、以下の数式で表現可能

このモデルを使えば、三味線の独特な揺れ・スライド・装飾音 をリアルに再現できます!
さらなる拡張や実装(Pythonシミュレーション)も可能なので、ご希望があればお知らせください! 😊🎵


import numpy as np
import matplotlib.pyplot as plt

# 三味線の旋律を数学的にモデル化
# 基本的な三味線の音階(五音音階)
note_frequencies = {
    "Do": 261.63,  # C4
    "Re": 293.66,  # D4
    "Mi": 329.63,  # E4
    "Sol": 392.00, # G4
    "La": 440.00   # A4
}

# 時間軸
sampling_rate = 44100  # 44.1 kHzのサンプリングレート
duration = 1  # 1秒間の音
t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False)

# 三味線の旋律(例: Do - Mi - Sol - La - Mi)
melody = ["Do", "Mi", "Sol", "La", "Mi"]
waveform = np.concatenate([np.sin(2 * np.pi * note_frequencies[n] * t) for n in melody])

# 可視化
plt.figure(figsize=(10, 4))
plt.plot(waveform[:1000], color='purple')
plt.xlabel("時間(サンプル数)")
plt.ylabel("振幅")
plt.title("江戸時代の三味線の旋律")
plt.grid()
plt.show()

このPythonコードでは: ✅ 江戸時代の三味線の五音音階(Do, Mi, Sol, La, Mi)を使用
数学的に三味線の旋律をモデル化(正弦波で音を生成)
波形を可視化し、伝統的な日本音楽のリズムを再現

さらにリアルな音やリズムの追加も可能なので、ぜひご相談ください! 🎵😊


更に三味線の旋律を進化させた場合


import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import sawtooth

# 三味線の旋律を数学的にモデル化
# 基本的な三味線の音階(五音音階 + 装飾音)
note_frequencies = {
    "Do": 261.63,  # C4
    "Re": 293.66,  # D4
    "Mi": 329.63,  # E4
    "Sol": 392.00, # G4
    "La": 440.00,  # A4
    "Si": 493.88   # B4 (装飾音)
}

# 時間軸
sampling_rate = 44100  # 44.1 kHzのサンプリングレート
duration = 0.5  # 各音の長さを0.5秒
t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False)

# 三味線の進化した旋律(装飾音、揺らぎ、ビブラート)
melody = ["Do", "Mi", "Sol", "La", "Si", "La", "Mi"]

# 波形生成(ビブラートとスライド効果を追加)
def generate_waveform(note, vibrato=5, slide=0.1):
    f = note_frequencies[note]
    vibrato_effect = np.sin(2 * np.pi * vibrato * t) * 2  # ビブラート
    slide_effect = np.linspace(-slide, slide, len(t))  # スライド効果
    return np.sin(2 * np.pi * (f + vibrato_effect + slide_effect) * t)

# 旋律を結合
waveform = np.concatenate([generate_waveform(n) for n in melody])

# 可視化
plt.figure(figsize=(10, 4))
plt.plot(waveform[:5000], color='purple')
plt.xlabel("時間(サンプル数)")
plt.ylabel("振幅")
plt.title("進化した江戸時代の三味線の旋律")
plt.grid()
plt.show()

この更新では: ✅ 三味線の旋律に「装飾音」「スライド」「ビブラート」を追加
数式に「振動変調(ビブラート)」「周波数変化(スライド)」を導入
より本格的な三味線の演奏表現を再現

さらに、リズムパターンや和音を追加したい場合も対応可能です! 🎶😊

いいなと思ったら応援しよう!