之前一直找不到一個可以在 Blog 中貼上 Java 程式的空間
現在用 PixNet 總算可以慢慢將一些之前寫過的程式放上來
今天貼的程式是SynthSonar
是一個用空間概念製作音樂 Loop 的小程式
在指定的範圍中 使用者可以透過 增加觸動點 移動觸動點
或是更改新增觸動點的屬性
來規畫出因為空間放置位置的差異而產生出來的 音樂
這個概念本來是源自於七龍珠的龍珠雷達
在漫畫中當雷達接近龍珠時 聲納雷達會節奏性地發出聲音
我嘗試把這樣一種 ”透過空間分布狀況創造節奏聲響” 的情境放到這個小程式中
一方面擷取空間設計中距離的觀念 另一方面 並融合節奏樂器彈奏重複段落的經驗
讓空間的安排模式成為一種新型態的樂曲製造機
在這個程式中 使用者可以不用理解樂理
便能夠用空間的安排簡單地創作自己想要的聲音
目前SynthSonar主要有三個元件
畫面中心不斷放出範圍音波的白點是 Attractor
它會持續地發出一定節奏與頻率的聲音
另外一些 不同顏色 的點是 Receiver
它自己不會發聲 得要靠Attractor的音波觸動才會發聲
此外在畫面右方 一排藍色的點是 GraceNote
它不會受Attractor影響 只有當使用者游標碰到才會發聲
一開始進入畫面 會亂數取得兩個 Attractor 和三個 Receiver
而 SynthSonar 的主要操作
便是透過規畫 Receiver 和 Attractor 之間空間安排的方式
來製造一個持續發出節奏的迴圈
由於 Attractor 會不斷地發出聲納波
因此 使用者只要用滑鼠拖曳 Receiver 改變 Receiver 和 Attractor 之間的相對位置
便可以取得我們想要的節奏
此外 使用者也可以透過畫面上半部的表單加入 Receiver
更可以透過 改變 Receiver 的各項屬性 如音量大小 或頻率高低 讓節奏的變化更複雜