オーディオ スペクトラム。 599円と安価な「USBオーディオスペクトラムボード」、音に合わせてLEDがリズムを刻む!

After Effectsでオーディオビジュアライザーを作る

オーディオ スペクトラム

を眺めていたら、とが並んでいて、「あー、スペアナ作れるよってことね」と思い、オーディオ用のを製作。 ベース基板。 裏面にステレオミニジャックとACアダプタジャックがついてます。 ベース基板の上に乗る表示基板。 表示用にはをレールで購入しました。 左右対称に、真ん中から順に、左右chの63Hz、 160Hz、400Hz…用のレベルメータです。 バーLEDは基板に刺す前に、アノード側の足を全部根元で折り曲げてハンダ付けし、アノードを1つにまとめてしまったりとか、割と無茶して並べてあります。 MSGEQ7は、ストローブ信号を送ると順番にドが切り替わって、対応する電圧が出力されるので、それをAruduinoのADコンバータで読み取り、10レベル(1目盛りで約3dBのlogスケール)に変換します。 変換した値に基づいて、各ドに対応したLED10個を順にダイナミック点灯していきます。 購入したLEDドライバは16chを同時に駆動できるため、余った6ch分もダイナミック点灯用のをドライブするのに流用しています(こんな使い方していいのかはよくわからないけど)。 残りの3つはのデジタルポートから直接ドライブします。 他に、ピーク検出&表示(一定時間max値を維持した後ドロップするアニメーション)を入れてみたり、起動アニメーションで文字らしきものを表示してみたりして遊んでいます。 スモークグレーのアクースに入れると結構きれい。 参考までに回路図(適当なので間違いがいっぱいあるかも 汗 )。 表示基板部分は同じ構造の繰り返しのため大幅に省略してあります。 [リンク先の「オリジナルサイズを表示」で拡大] スケッチは本エントリの最後に。 これとは別に が必要です(リンク先の説明は分かりやすく参考になる)。 ただし、デフォルトの状態では14chでダイナミック点灯するには動作が遅すぎて、表示が激しくちらついてしまうので、ライブラリの設定を変更して動作を高速にする必要があります。 を選択するためのLEDドライバの出力チャンネル。 begin 115200 ; Tlc. print " " ; Serial.

次の

[B! python] pythonで音に合わせて動く波形(オーディオスペクトラム)を作ってみる

オーディオ スペクトラム

動画サイトなどで音楽が主体なものを見ていると、よく音楽に同期するイコライザーのような棒グラフが動いているのを見かけませんか?ミニコンポに搭載されていたグラフィックイコライザーのようなものです。 あれはオーディオスペクトラムといって是非私も付けてみたいと思いました。 音楽が主体の動画は動きがなさすぎますからね。 それでオーディオスペクトラムの作り方を調べたのですが、どうもピンとくるものがありません。 まず最初に出てきたのは Adobe After Effects を使って作る方法でした。 After Effects は Adobe の動画加工ソフトで当然有料です。 これを買おうと思うと月額2,180円かかります。 オーディオスペクトラムを付けるだけに月額2,180円はあり得なさすぎます。 試しに After Effects の無料体験版でオーディオスペクトラムを付ける事をやってみましたが、確かにできました。 簡単です。 フリーの動画編集ソフトを探していたところ、AviUtl というソフトが鉄板という事がわかりました。 Youtube やニコニコ動画に投稿する際に多くの人に使われているそうです。 ただ AviUtl は有料... さて、まずは実際に AviUtl でオーディオスペクトラムを付けた動画をご覧ください。 左下に表示されているのがオーディオスペクトラムです。 ちゃんと音楽に同期したものを付ける事ができました。 これを付ける手順について解説していきます。 まずは AviUtl を起動します。 拡張編集画面が出ていない場合は、設定メニューから「拡張編集の設定」を選択して出します。 動画の背景となる画像、もしくは動画ファイルが既にある場合は動画そのものを拡張編集画面へドラッグ&ドロップします。 新規プロジェクトの作成画面が出ます。 ここにサイズやフレームレートを入力するのですが、「読み込むファイルに合わせる」にチェックを入れておくと自動でサイズ設定をしてくれます。 続いて音声ファイル(mp3など)を同様に拡張編集画面へドラッグ&ドロップします。 すると上図のようになります。 ここからオーディオスペクトラムを付ける作業に入ります。 拡張編集画面の上で右クリックして、メディアオブジェクトの追加から音声波形表示を選択します。 すると拡張編集画面に音声波形を表示する新しいレイヤーが追加されました。 メイン画面の中央に表示された白い線が、オーディオスペクトラムです。 試しに再生してみると、ちゃんと音楽に同期した音声波形が表示されるのが確認できます。 しかし、デフォルトのままでは画面中央で横幅いっぱいいっぱいに表示されてしまって少し邪魔です。 これからサイズや位置、色などを自由に設定できるのでご安心ください。 オーディオスペクトラムの音声波形はマウスでドラッグすれば位置を変える事ができます。 拡張編集画面の音声波形レイヤーをダブルクリックして設定画面を開きましょう。 ここで拡大率を弄るとサイズを変更できます。 また、画面下の方にある「Type3」というプルダウンメニューで種類を変更すると波形を変更できます。 波形の色ボタンをクリックすれば色も指定できます。 Type1はアナログ的な音声波形、Type2 もアナログ波形、Type3 はデジタル的な棒グラフ、Type4 は塗りつぶしアナログ波形、Type5 はデジタル的な棒グラフ。 お好きなものを選んでください。 更に、波形 Type のプルダウンメニューの右にある設定ボタンをクリックするとパラメータ設定ができます。 こちらは Type3 のパラメータ設定画面です。 例で作った動画は Type3 です。 横解像度・縦解像度はイコライザー的な棒グラフの密度を設定できます。 数字を大きくすればより細かくなり、小さくすれば雑になります。 以上で動画にオーディオスペクトラムを付ける手順は終了です!動画を出力してみましょう。 AviUtl で作るオーディオスペクトラムの基本的な事だけを解説しました。 さらなるカスタマイズでこだわりのオーディオスペクトラムを作る事もできます。 最後に AviUtl で作れるオーディオスペクトラムのタイプを全て見られる動画を作りましたので御覧ください。 応用編(カスタマイズ) AviUtl で作れるオーディオスペクトラムは Type1 から Type5 までですが、そこから更にカスタマイズできます。 先程の全タイプ紹介動画の最後に入れましたが、オーディオスペクトラムにエフェクトをかける事ができます。 これは先程の音声波形表示の設定画面ですが、ここで画面右上の「+」ボタンを押します。 何とエフェクトがズラリ!画面に収まりきりません。 ここでは試しに閃光エフェクトを選んでみました。 すると音声波形表示の設定画面の下に新たな設定画面が追加されました。 閃光エフェクトの設定画面です。 ここで光源の位置や光の強さなどを調整できます。 エフェクトを組み合わせれば、5種類だけじゃなくてこだわりのオーディオスペクトラムが作れます。 おわりに 動画サイトに音楽を投稿されているあなた!音楽主体の動画はミュージックビデオを作らない限り動きがないものでしょう。 オーディオスペクトラムを付ければ多少なりとも動きを付ける事ができます。 カテゴリー• 112• 122• 243• 412• 162•

次の

Urmusicを使ってオーディオスペクトラムを作ろう!│趣味の世界を広げたい

オーディオ スペクトラム

はじめに 現状macにはオーディオスペクトラム よくある音に合わせてぬるぬる動く周波数領域の波形 を使えるフリーソフトがないようです。 そこで、pythonを使って自作して遊んでみます。 windowsの方はAviUtlというフリーソフトで出来るようです。 状況と目的 手元には、音声波形を作りたい wav形式のファイルがあります。 僕の場合はGarageBandで打ち込んだ曲の出力ファイルです。 )これを動画形式にしたいのですが、静止画に音声だけ流れるような動画では少々味気ないです。 そこで、作った曲に合わせて動く オーディオスペクトラムを作って、多少なりとも動画映えするようにするのが今回の目的です。 環境について OS:macOS High Sierra 10. 6 使用言語:Python 3. 4 標準ライブラリ以外だと、• ゲームエンジンですが、単に表示用のGUIのような感覚で使います• wavファイルの再生に使います• wavファイルのデータ読み取りに使います• NumPy のインストールが必要です。 基本的にはpip pip3 でOKだと思います。 NumPyしかわからない、という方でも読めるように書いていくつもりです(僕がそうなので)。 サンプルコード ピンク背景に水色の波が動くだけのサンプルコードです。 プログラムと同階層に sample. wavという名前の音源を用意していただければとりあえず動かせると思います。 モノラルステレオはかなり雑ですが両対応です。 とかでも遊べます。 全体を載せたあと、ちょっとずつ細かく見ていけたらと思います。 display. display. readframes CHUNK while data! readframes CHUNK redraw stream. close p. sqrt c. append pygame. draw. display. exit for event in pygame. event. get : 終了処理 if event. exit if event. 追記 ちょっとでもイメージがつきやすいように、のデータをプロットしてみますね。 横軸は配列のインデックスです。 1[kHz]です の情報が表現されているわけですから、「時間軸で見た波形」ということになります。 それに対しオーディオスペクトラムは、周波数領域のグラフが絶えず変化しているものです。 時間領域のデータはフーリエ変換することで周波数領域で見ることができるので、フーリエ変換をうまく使いながら進めることになりそうです。 そこで、• 超短時間のデータを読み取って… インデックス0から1023まで• その音声を PyAudioを使って再生しながら…• また次の短時間のデータを読み取って… インデックス1024から2047まで• これをデータが終わるまで繰り返す という処理を行えば良さそうですね。 リアルタイムに音声再生とフーリエ変換をこまめに繰り返すイメージです。 ちなみに、「短時間のデータ」としてwavのデータ点を1024個ずつずらしながら処理しようとしていますが、別に1024である必要性はありません。 ただ、小さくしすぎると、再生よりも描画に時間がかかるようになるため挙動がおかしくなり、大きくしすぎると描画の更新が遅くなり滑らかさが失われてしまうので、注意が必要です。 3-1. wavファイルの時系列データとその長さ フレーム数 を取得する メインルーチンのこの部分です。 size フレーム数取得 後述のFFTで窓関数をずらすときの終了条件に使います -------------------- 略 を使うとwavファイルをいい感じに扱えます。 read メソッドを使ってデータとその長さを取得できました。 参考: 3-2. モジュールはとを使います。 参考: 基本的には参考にさせていただいた記事の通りなのですが、ストリームに書き出して次のデータを読み取る、というループ処理に redraw という後述する自作関数をつっこんでいます。 readframes CHUNK while data! readframes CHUNK redraw 再描画用関数です あとで作ります stream. close p. 対象サンプル点のブロックにFFTをかける こちらの記事 が非常にわかりやすく、参考にさせていただきました。 データ全体から1024個のデータを取り出したら、そのままFFTをするのではなく 窓関数をかけてからFFTを行います。 理論めいた話になってきましたが、先ほどの記事でも紹介されていたというページにわかりやすくまとまっていますので、興味のある方はご覧になってみてください。 ここではメジャーな ハミング窓 np. hamming を用います。 これをかけることで端っこが滑らかに繋がり、切り出したサンプルが周期関数になります。 import sys import scipy. sqrt c. あとは、計算した振幅スペクトルを PyGameを使って描画するだけです。 3-4. PyGameを用いた描画 こちらの記事 を参考にいじっていきます。 import pygame from pygame. display. display. append pygame. draw. display. event. get : 終了処理 if event. exit if event. draw. lineを使えば、ヒストグラムのような要領で、波を複数の直線で表現できそうです。 ここら辺はいくらでもアレンジが効くと思います。 PyGameのメソッドはにまとまっています。 pygame. draw. lineはこんな感じで使うみたいですね。 pygame. draw. line 直線の線分を描写します。 pygame. draw. 線の両端に特別な装飾はなく、線の太さに合わせた四角い形となります。 描画の流れの例としては、あらかじめPyGameウィンドウのサイズを決めて、初期化しておき、• 計算した振幅スペクトルをもとに直線のオブジェクト pygame. Rect を作ってリストに保持• pygame. display. ここらへんの記述はあまりスマートじゃないですね…すみません。 適当に数字を変えながら遊んでみたら、挙動もなんとなく掴めるのではないかと思います。 その他 サンプルコードでは背景色に波が動いているだけですが、他にも冒頭gifのようにキャラやロゴの画像とかも載せることができます。 参考: redraw 内で Surface. blit すれば簡単に実装できると思います。 また、今回はここまでで力尽きて、できた画面を画面収録することで動画化しましたが、PyGameの画面を動画に書き出す、なんてことをされている方もいるようです。 感想 Pythonは大学の授業でサンプルコードをいじる程度にしか触ったことがなかったのですが、色々便利なライブラリがあって面白いですね。 お作法がなってないところも多々あったかもしれませんが、ちょっとずつ勉強していけたらと思います。 お疲れ様でした!.

次の