大阪メトロの到着メロディをPythonに演奏させたらこうなる【コラム】

大阪メトロの到着メロディをPythonに演奏させたらこうなる【コラム】

タイトル通りなんですが、今流行りの「Python」(パイソン)というプログラミング言語で、大阪メトロの到着メロディを演奏出来るプログラムを作りました。

 

作り方

1番線の到着メロディは

ミ♭シ♭ファシ♭ソ~
ミ♭シ♭ファシ♭ミ♭

です。

ややこしい話は省きますが、「ドレミファ~…」の音階は、周波数で表現できます。

先程の大阪メトロの到着音を周波数に直すと

 ‘ミ♭’: 311,
‘シ♭’: 233,
‘ファ’: 349,
‘シ’: 247,
‘ソ’: 392

となります。

続いて、これをプログラムに当てはめていきます。

Pythonというプログラムコードの書式に則り、以下の文章を書いていきます。

import winsound
import time

# 音階と周波数の対応表(小数点以下は四捨五入)
FREQUENCIES = {
‘ミ♭’: 311,
‘シ♭’: 233,
‘ファ’: 349,
‘シ’: 247, # 低い方のシ
‘ソ’: 392
}

# 鳴動パターン
pattern = [‘ミ♭’, ‘シ♭’, ‘ファ’, ‘シ♭’, ‘ソ’, ‘ミ♭’, ‘シ♭’, ‘ファ’, ‘シ♭’, ‘ミ♭’]

# 鳴動時間
durations = [200, 200, 200, 200, 500, 200, 200, 200, 200, 600]

# 音を鳴らす
for i in range(3): # 3回リピート
for i in range(len(pattern)):
frequency = FREQUENCIES[pattern[i]]
duration = durations[i]
winsound.Beep(round(frequency), duration)
time.sleep(0.1) # 音の間に短い間隔を入れる

これをメモ帳で書いて「UTF-8」で保存し、Windowsの「コマンドプロンプト」で実行すると、冒頭の大阪メトロのメロディが流れてきます(笑)

サイトのシステム上、シングルクォートが半角で表示されていますが、正しくは全角のシングルクォートになります。

 

具体的な手順

以下は、Windowsにプログラミング言語の「Python」をインストール・環境構築してからの方法となります。
具体的なインストール方法はこちらなどを御覧下さい

メモ帳を起動
(ここに入力して検索の箇所に「notepad」と書いてエンターを押すと起動します。)

上記コードを貼付

ファイル(F)

名前をつけて保存(A)


ファイル名を「1bansen.py」にして保存
(名前は何でもいいですが、最後の拡張子は.pyにして下さい)

コマンドプロンプトを起動
(ここに入力して検索の箇所に「cmd」と書いてエンターを押すと起動します。)

先程出来たpyファイルをドロップしてenter

鳴ります!!!いえええい!!!!

 

 

2番線は?

2番線の方はこんな感じ。

import winsound
import time

# 音階と周波数の対応表(小数点以下は四捨五入)
FREQUENCIES = {
‘ミ♭’: 311,
‘シ♭’: 466, # 高い方のシ♭
‘ファ’: 349,
‘シ’: 494, # 高い方のシ
‘ソ’: 392
}

# 鳴動パターン
pattern = [‘ソ’, ‘シ♭’, ‘ファ’, ‘シ’, ‘ソ’, ‘シ♭’, ‘ファ’, ‘ミ♭’]

# 鳴動時間
durations = [200, 200, 200, 600, 200, 200, 200, 200]

# 音を鳴らす
for i in range(3): # 3回リピート
for i in range(len(pattern)):
frequency = FREQUENCIES[pattern[i]]
duration = durations[i]
winsound.Beep(round(frequency), duration)
time.sleep(0.1) # 音の間に短い間隔を入れる

是非鳴らしてみてくださいね。

Pythonは、人工知能(AI)に最適な言語と言われており、今後有望なプログラミング言語として注目されています。
鉄道好き向けにプログラミング言語に興味が持てるような、とっつきやすい話と実例が何か無いかなぁ…」と、私自身学びながら考えていたので、今回ちょうど良さそうなこの話を記事にしました。

この記事が、皆さんのPythonを使う第一歩になれれば幸いです。

 

 

関連リンク

日本で唯一、政令指定都市同士を結ぶ地下鉄はどこ?【コラム】

【コラム】終点の折返し構造、何故違う?

【コラム】大阪と札幌の地下鉄、サインが完全に一致




書いた本



コラムカテゴリの最新記事