2010年2月6日 星期六

Y15 功能強大的音樂軟體──Max 5

有位同事感嘆說現在做電子音樂的人用的工具比我們寫程式的還要元件化,音色、節奏、和絃、鼓聲等等都可以使用類似製作流程圖的方式,拖拉元件到畫面上後定義參數與順序就可立即聽到音樂。同事在他電腦上示範編輯的方式,也試著從網路上下載別人做好的音樂流程直接播放出來,播放時甚至可以設定一些特別定義等待input event才發出聲音。

Max 5這套軟體看起來真的對音樂製作有很有的幫助,而且是完全免費的。不用懷疑,軟體真的是完全免費的,因為要收費的是可以連接實際音樂設備的元件,使用外接型的元件能夠驅動真實的設備使之按照設計流程發出定義的音樂(這是同事說的)。同事說他還付費報名了外面的Max 5課程來學習。

看過之後我們有了短暫的討論,好奇於為什麼能將某個領域的軟體做成這樣,反而自己沒有這樣功能強大的編輯工具可以使用?(討論時也提到範圍較小的LEGO Mindstorm作比較)初步有了以下的共識,但也發現這些因素會讓寫程式的行為變得複雜:

必須完全清楚該領域要做的事,才有辦法定義出被使用者選用元件的完整集合。
 如果做功能時只是找出一條可以執行的路,肯定沒法收集到完整的集合。然而,程式碼裡會做的事太多了,如何收集得齊全?
●每個元件都要定義可以傳入的參數,以及傳回的值。
 在寫API時常感覺參數總是少一個(傳物件的話需要使用較複雜的編輯器操作),傳回的除了值還有可能是各種Exception,在流程控制上有很大的變化。
●每一個元件幾乎都獨立到與前一個元件無關
 音樂要動聽雖然有些規則,但是每一個音符的發生都是獨立事件;LEGO的行為也類似(譬如起重機的繩子一定要先放下才能升起,但是怎麼放下去的並不會影響升起的動作)。寫程式很麻煩的是還要讓後面的元件使用前面處理後留下的資料。

沒有留言:

張貼留言