読者です 読者をやめる 読者になる 読者になる

Sonic PiとpythonでGet Wild退勤するプログラム「get wild and home」を作る

電波 音楽 Raspberry Pi python

f:id:karaage:20160605124025j:plain:w640

Get Wild退勤にチャレンジ

 Sonic Piという音楽をプログラミングできるソフトとpythonというプログラミング言語を使って、Get Wild退勤できるソフトを作って見ました。City Hunterだけにpython使ってます。なぜ今更Get Wild退勤なのかというと理由は以下。

 こだわりとしては、「シティーハンター dramatic master」版の声優さんの小芝居を完全再現することと、Get Wildはバナナマン日村バージョンということです(日村バージョンは音階がオリジナルに比べて半音高い、多分弾きやすくするためだと思う)。ちなみに「シティーハンター dramatic master」は私が生まれて初めて買ったCDです。名盤。

シティーハンター dramatic master

シティーハンター dramatic master

  • アーティスト: オムニバス,PSY・S,小比類巻かほる,大沢誉志幸,小倉良,北代桃子
  • 出版社/メーカー: エピックレコードジャパン
  • 発売日: 1989/12/01
  • メディア: CD
  • 購入: 2人 クリック: 75回
  • この商品を含むブログ (81件) を見る

 完成したソフトを動かしてみた動画は以下。Macを閉じると自動的に臭い芝居がはじまり、Get Wildが流れます。これで、ごく自然な感じにGet Wild退勤できますね。

 再現度は…20%くらいかな。

 Get Wild退勤したくてたまらない人のために、やり方を公開します。基本わからない人には宇宙語なので、興味ある方のみどうぞ。

Sonic PiとpythonでGet Wild退勤する方法

必要なもの

Mac Bookとひとりでは解けない愛のパズル

Apple MacBook 2.0GHz 13.3インチ MB466J/A

Apple MacBook 2.0GHz 13.3インチ MB466J/A

Sonic Piインストール

 Sonic Piは音楽をプログラミングできるソフトウェアです。詳細は以下のDeviceplusさんの記事が参考になるかと思います。

 元々Raspberry Pi用のソフトで、Raspberry Piの標準OSのRaspbianにプリインストールされています。今回はMacで使ってみたいと思いますので、下記公式サイトからソフトをダウンロードします。

Sonic Pi - The Live Coding Music Synth for Everyone

 Homebrew使っている人は、Homebrew CaskでもSonic Piインストールできます。Homebrewがインストールされていれば、ターミナルで以下コマンドを実行するだけです。

$ brew tap caskroom/cask
$ brew cask install sonic-pi

 Homebrew Caskに関して詳しくは以下参照下さい。

python-sonicでSonic Piをpythonからコントロール

 Sonic Piは単体でも面白そうなソフトなのですが、外部から音源モジュールとしてコントロールできたら色々可能性が広がりそうです。例えば、pythonで制御できると良いなと思って調べたら、そのものずばりのpython-sonicというソフトがGitHubにありました。

 インストールや使い方は上記サイトに記載されているのですが、簡単に説明しようと思います。まずはpython3の動作環境を用意します。自分はpyenvで環境構築しました。pyenvに関しては、下記記事参照下さい。

 具体的な手順は、上記記事のpython(Anaconda)インストール(pyenv経由)というところまで実行した後、以下の通り実行すれば、python-sonicのインストールまで完了します。

$ pyenv global anaconda3-2.5.0
$ conda create -n audio python
$ pyenv global anaconda3-2.5.0/envs/audio 
$ pip install python-sonic

 続いて、Sonic Piを起動してから以下のように実行しましょう。

$ python
>>> from psonic import *
>>> play(70)

 音が出たら成功。これでSonic Piを外部音源モジュールとしてpythonからコントロールできます。

SayコマンドのVC(Voice Character)にOtoyaさんを追加

 男の声をMacにしゃべらせるためにsayコマンドに男のVCを追加

ダウンロード方法:「システム環境設定」=> 「音声入力と読み上げ」=> システムの声でカスタマイズを選択後Otoyaにチェックを入れる

 以下の記事を参考にしました。

NoSleep CLIをインストール

 Macを閉じた動作をトリガにするためにNoSleepをインストール。

 上記サイトのNoSleep-x.x.x.dmgをダウンロードしてダブルクリック。インストールの途中に出てくる「Command-line interface」にチェックを入れましょう。Homebrew Caskで入れると、このコマンドラインインターフェースを有効に出来ませんでした。

Get Wild退勤プログラム「get wild and home」

 基本的に以下のプログラムをほぼそのまま使わさせていただきました。

 例によってGitHubでリポジトリ作りました。その名も「get wild and home」

 元のプログラムは、カフェで盗まれそうになるとGet Wildが強制終了するまで流れるプログラムですが、こちらはMacを閉じると一度Get Wildを流してシャットダウンします。使い方は以下です。

 以下コマンドでリポジトリクローン

$ git clone https://github.com/karaage0703/get-wild-and-home

 ディレクトリ移動

$ cd get-wild-and-home

 実行

$ sudo ./get_wild.sh

 sudoでスーパーユーザー権限が必要なのはシャットダウンするためです。

まとめ

 Get Wild退勤ができるようになりました。次は、これを応用してRaspberry Piで別のものを作ってみようと思います。というか本当はそっちが目的で練習のために作っていたのですが、思ったよりハマってしまったというのが正直なところです。たまには脇道にそれるのも面白いですね。

関連記事

 今回と同じく「シティーハンター dramatic master」の1曲目を再現しています。こちらの方が再現率は高いです