Melody Candy

Created Date: 2017-10-17/ updated date: 2017-10-31
Owner & Collaborators
License
Melody Candy by shoiijima is licensed under the Creative Commons - Attribution license.
Summary
演奏しているギターに入ってくる信号を、コンピュータを通じて音程解析し、対応したキューブが回転したり、発光することで、ギターの演奏を視覚的に表現します。
このプロジェクトは、情報科学芸術大学院大学修士1年の飯島祥とアンセビンによる共同制作で、音楽にインタラクティブに反応するデバイスを制作することを通じて、音楽体験を豊かにすることを目的としています。

Materials

    Tools

      Blueprints

        Making

        • ギターの演奏において、単音弾きなどにおける指がフレットを駆け登ったり、ループしていく動きは、指の動きによる音の視覚的な表現であるとも言えます。この作品では、その指の動きを核にして運動とLED発光を行うキューブを制御することで、ハードウェアによるリアルタイムなパフォーマンスを行うことが目的です。

          このプロジェクトにおいて使用した3Dデータ、レーザーカットのデータ、Openframeworksのソースコードは、以下のリンクから取得できます。
          https://drive.google.com/drive/folders/0B6IU5t0hnVVMTlJrQkI5V09qa1U?usp=sharing
          • ギターからの信号を、openframeworksというソフトウェアでFFT解析を行って音階を解析し、各音階に割り当てられた対応したキューブがArduinoを通じたサーボモータやソレノイドによって運動を行い、NeoPixelが発光をすることで、ギターの演奏をベースとしたパフォーマンスを行います。
            • それぞれのチップの中にフルカラーLEDとマイコンが入ったLEDです。
              5V, Ground, シグナル線をつなぎ合わせることで、ArduinoやFadeCandyから少ないポート数でたくさんのLEDを制御できるようになります。
            • NeoPixelを、ProcessingやOpenframeworksなどを用いてグラフィカルに制御するためのデバイスです。
            • Openframeworksは、創造的なコーディングのためのC++のオープンソースツールキットです。
              今回は、ギターのピッチ解析と、ソレノイド、サーボモータの制御、NeoPixelの制御のために用います。
          • 以下の材料を準備します。
            ・ネオピクセル:30個
            ・FadeCandy:1個
            ・銅線
            ・ワニ口クリップ
            ・ジャンプワイヤ
            ・Arduino Mega:1個
            ・マイクロサーボ:9個
            ・3Dプリンタフィラメント(透明):250g
            *今回はPP3DP純正フィラメント(PLA樹脂)を使用
            ・ユニバーサル基板:1個
            ・ベニヤ板4×430×700:2枚
            ・ベニヤ板9×300×450:1枚
            ・白色スプレー:1個
            ・ACアダプタ(5V2A):1個
            ・オーディオインターフェース:1つ
            ・エレキギター
            • ステージに取り付けられる電子部品を、あらかじめ半田付けで配線します。
              • 裏側の矢印の方向に合わせ、5V、シグナル、Groundをそれぞれ半田付けし、直列に繋ぎます。
                取り付けが困難になるのを避けるために、ネオピクセルを10個繋ぎにしたものを3つ作成します。

                配線が完了したら、ArduinoのNeoPixelライブラリにおけるサンプルプログラムなどで、導通を確認したのち、半田付け部分をグルーガンでコーティングします。
              • 配線が完了したら、ArduinoのNeoPixelライブラリにおけるサンプルプログラムを用いて、導通を確認します。
                ArduinoのGND, 5V, 6番ピンをそれぞれ、ネオピクセルのGND, 5V, シグナル線に繋ぎ、NeoPixelのスケッチ例からstrandtest.inoなどをArduinoに書き込み、全て光るかどうか確認します。

                導通を確認したのち、半田付け部分をグルーガンでコーティングします。
              • サーボモータのメスピンにジャンプワイヤを差し込み、銅線を半田付けしてケーブルを延長します。
              • サーボモータ、ネオピクセル、FadeCandyの電位を統一するため、5VとGNDのピンを一つのユニバーサル基板に集め、半田付けを行います。
            • レーザーカッター、3Dプリンタを用いて、LEDを入れるキューブや、キューブのスタンドを作成します。
              • レーザーカッターを用いて、木材を加工し、スタンドを作成します。(加工データは上記リンク先を参照)
                加工後、スプレーを噴射し白色に塗装します。
            • 配線と出力が終わったら、全体を組み立てます。
              • サーボモータを、グルーガンを用いてステージ、キューブ蓋にそれぞれ取り付けます。
                30個ある穴のうちサーボモータが取り付けられるのは9箇所のみですが、今回は演奏する曲に合わせて配置を選びました。
            • 電子部品とArduino、FadeCandyをそれぞれ配線したのち、プログラムを動かして接続を確認します。
              • Arduino Mega, オーディオインターフェース, FadeCandyをMacbookに接続したのち、システム図に従って部品を配線します。サーボモータのシグナルピンは、Arduino Megaの3,5,6,8,9,10,11ピンに接続しています。
              • Arduinoのスケッチ例からStandardFirmata.inoを開き、ArduinoMegaに書き込みます。
                また、シリアルポートのポート名を確認し、OpenframeworksのofApp.cpp内にあるシリアル設定に関する箇所を、正しいポート名に修正します。
              • はじめにfadecandyのフォルダからfcserver-osx(Macの場合)を開き、FadeCandy用のサーバーを立ち上げます。
            Add Card Order

            References

              Usages

                Project comments