2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonでソルフェジオ周波数のwavファイルを生成してみる①

Last updated at Posted at 2018-10-29

#はじめに
##モチベーション
最近、わたし陰謀論にはまっておりまして、つらつらとWEBを見回っていたところ、ある周波数の存在にたどり着きました。

その名はソルフェジオ周波数。

なにやらこの周波数、恐ろしい力を秘めているようで、聞くだけでDNAが修復されたり、トラウマや恐怖からも解放してくれたり、ついにはチャクラもひらくという奇跡の周波数だそうです。(諸説あり)

まじですか!?チャクラ開きたい!!

ということで、

まず検索してみると、どうやら周波数としては528Hzだそうです。しかし、この世の中には全部で9個のソルフェジオ周波数があるそうです。そして、この周波数は中世から受け継がれているグレゴリオ聖歌の音階としても使われているそうです。

ちなみに、いま現在基準として使われている基準周波数A=440Hzは奇跡の周波数に対して悪魔の周波数と呼ばれているそうです。

そして、これを知ったジョンレノンは、意図的にチューニングをずらして528Hzの音をいれた楽曲を作っていたそうです。しかし、それを悪魔は見逃すはずはありませんね。その結果は皆さんもご存じの通りです。ジョンレノンは凶弾に倒れてしまうわけです。(諸説あり)

そんな陰謀論が大好物のわたしの為かは知りませんが、youtubeでもいろいろな動画がアップされています。そして、いくつか聞いてみましたが、確かに落ち着くような気もします。チャクラも開いちゃったかもしれません、すでに。

だがしかし!

うたぐり深いわたしは、これを聞いても本当に528Hzなのかと不安になった訳です。なにしろ敵は恐ろしいやつらですから。(敵ってだれ?)

ということで、「そんなら自分で音を作ればいいじゃないか」となりました。

#作るもの
前置きが長すぎて、あぶなくこれがQiitaの記事だという事を忘れそうになりました。
ここからちゃんと技術的な話になります。

今回作るものはこちらです。
ソルフェジオ周波数の中で一番ポピュラーな528Hzが再生されるwavファイルを生成するプログラム。

※本当はここに出来上がりのファイルをアップしてお聞きいただきたかったのですが、wavは対応していないようなので、各自ご確認をお願い致します。

#使うもの
開発環境:
・AWS cloud9
言語:
・python(2.7.14)
パッケージ:
・numpy(1.15.3)
・scipy(1.1.0)

AWS cloud9はクラウド上で様々言語の開発環境と実行環境がいい感じに構築されてるサービスです。サクッと動くプログラムを試してみたいときにとても便利です。基本わたしの記事はこれを使っています。

pythonは敢て説明するまでもないですよね。今回使用する理由は特にありません。私が使い慣れているからです。

numpyとscipyはpythonで数値解析を行うときに、使うパッケージです。今回は正弦波の生成とwavファイルへの書き出しで使っているだけです。

#やってみた
前置きが長かった割にはやることは単純です。

『シンプルであるってことは、複雑であることより、ずっと難しい』(byスティープジョブズ)

##パッケージのインストール
まずは、使うパッケージをインストールします。pythonではパッケージを使いたいときはインストールが必要です。何をいまさらですが念のため。
pythonのライブラリはpipでインストールするのが良いと思います。

以下のコマンドをターミナルに打ち込んでください。

$sudo pip install scipy

これだけで必要なパッケージがあれよあれよとインストールされてしまいます。scipyを入れると自動的にnumpyも入ります。

##コードを書きます
続いてコードを書いていきます。

MakeWav.py
import numpy as np
from scipy.io import wavfile

rate = 44100
frequency = 528
seconds = 3

phases = np.cumsum(2.0 * np.pi * frequency / rate * np.ones(int(rate * seconds)))
wave = np.sin(phases)

wave = (wave * float(2 ** 15 - 1)).astype(np.int16)

wavfile.write("music.wav", rate, wave)

これだけです。世の中便利になったものです。

一応、簡単にコードの説明をしていきます。
まずはnumpyとscipyをインポートします。理由は先ほどお伝えしました。

パッケージをインポートした後は変数を定義しています。
rateはwavファイルのサンプリングレートです。frecuencyは周波数、secondsは今回作成する音の長さです。

その後にnumpyのcumsum()とsin()を使って1から-1の正弦波を作成し、続いて16bitに変換します。最後にwavファイルとして保存します。

##聞いてみる
では早速実行してみます。と言ってもファイルが出来上がるだけですけど。

ターミナルに以下のコマンドを打ち込みます。
$python MakeWav.py

無事実行されてmusic.wavがディレクトリに出来上がれば成功です。

適当にローカルなどにダウンロードして再生してみましょう。
プーというテレビの試験放送みたいな音がなれば成功です。

いかがですか、チャクラ開きましたか?

#終わりに
今回はチャクラを開いて第3世界に行くために、ソルフェジオ周波数のwavファイルを生成するプログラムを作ってみました。前置きが長かった割にはプログラミングは9行で終わりましたが、これを応用すれば、様々な音も創り出せますし、もしかしてAIで音楽も作り出すみたいなこともできるかもしれません。

次回は、その他の周波数の音を作って、倍音を追加したり和音にしたりもう少し、いい感じに仕上げていきましょう。

続きはこちら
[Pythonでソルフェジオ周波数のwavファイルを生成してみる②]
(https://qiita.com/ympnov22/items/135d36aace176adc5a3d)

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?