bzr_cover  

A Simple Model of the Belousov-Zhabotinsky Reaction From First Principles是 Alasdair Turner引用非平衡熱力學的著名案例:Belousov-Zhabotinsky反應(BZR),來進行程式運算操作的短論[1]。其中,BZR的反應過程表現出化學震盪(化學鐘[2]Chemical Clock)的特性:BZR不會趨向一個穩定的靜態結果,而是透過連串自我反饋的化學作用在兩個穩態中震盪,使系統趨向一個動態平衡的狀態。 

由於BZR所具有自我催化(autocatalytic)的特性,與CA中自組織的遞歸系統如此之類似;Turner在該篇文獻中引用1994年Ball[3]所簡化的BZR化學平衡式作為基礎規則,說明如何在程式運算中組織等式結構,得出非線性動力系統的範例。以下除了引用語言學分析重構BZR的參數化規則之外,更藉由GUI介面ControlP5輔助,在語意分析中加入對畫面中不同平衡傾向的詮釋。並根據化學式的語意詮釋,將平衡態的傾向轉換為特定音階底下的樂曲演算法。 

[化學方程式的語言學分析]

  • 像素表現規則與呈現形式[morphology]

透過每一個像素點中使用[x][y][t]、[x][y][t+1]兩個三維陣列,定義平面中x座標、y座標像素點以及運算前(t)、運算後(t+1),兩個時間點的HSB漸層色表值。由於HSB色表系統僅需輸入單一浮點值即可表現漸層色表,因此可以有效降低陣列中需要處理的資料量。

  •  催化過程中單元間的組成關係[lexicon]

定義了圖面上表現像素的關係之後,在setup()程式段中,Turner在每一個像素單元上又進一步定義了a,b,c三種三維陣列的顏色。其初始值(t)雖然均由random給出,但其後的每一代(t+1)都是由初始陣列運算出來的。此外,最後呈現在畫面上的數值都是a的顏色值,b與c陣列用途在於加入控制規則的變數因子,並不會被直接顯示在畫面上。

  • 計算機轉譯化學震盪的規則與結構[syntax]

BZR產生出震盪遞迴型式的關鍵,來自於Ball簡化表示的自催化平衡式

A+B → 2A

B+C → 2B

C+A → 2C

其中B與C作為中介的催化變數,牽動影響最後A的呈顯狀態。

轉譯到計算機中,則表現為時間t與t+1自相取代的結構,在隨時間推移的每一次運算中:

c_a= a[x][y][p]; c_b= b[x][y][p]; c_c= c[x][y][p];

a[x][y][q]=constrain(c_a+ c_a*(αc_b-γc_c),0,1);

b[x][y][q]=constrain(c_b+c_b*(βc_c-αc_a),0,1);

c[x][y][q]=constrain(c_c+c_c*(γc_a-βc_b),0,1);

  • 計算機表現化學震盪的語意分析[semantics]

在Turner的文末暗示,藉由abc三項自催化等式中引入α、β、γ等常數,將會在畫面上呈現出類似圖形反覆出現的傾向。這些圖形同樣表現出在局部範圍內螺旋狀蜷曲生長,而根據常數數值不同,這些圖形所涵蓋的範圍亦會有所不同。

本研究延續Turner的操作,並使用processing中強化GUI介面的資源庫ControlP5進行修改。在即時調整BZR等式中的各項常數後並與畫面進行比較之後。注意到當BZR等式前方的常數α、β、γ彼此在不同的關連狀態下,其多次疊代運算後所表現出來的穩定平衡態特性如下。

  00 01  

β>γ、γ≒α → 穩定平穩態 (畫面變亮) > 各像素點a[x][y][q]所得之值趨近於1

  02 03  

α>β、γ≒β → 穩定平穩態 (畫面變暗)各像素點a[x][y][q]所得之值趨近於0

  04 05  

γ>α、α≒β → 穩定平穩態 > γ值越大蜷曲圖樣的邊緣越明顯,即a[x][y][q]趨近值1的區域愈少

  06 07  

α≒β≒γ → 穩定平穩態 > 蜷曲圖樣邊緣的間距較小,即a[x][y][q]趨近值1的區域愈多

[套用化學方程式的語用分析于樂曲編製] 

延續化學震盪過程所歸納出來的幾種穩定平衡態型式,本研究繼續將化學方程式與音樂表現方式進行結合。透過processing中的Soundcipher資源庫,我們只要提供必要的音高、音色、音量、音長等參數資訊,即可控制JAVA的API,將參數值以midi音源呈現。以下套便用語言學方法進行說明,並說明編制規則與圖面規則的交互關係。 

  • 音符表現的規則與形式形式[morphology] 

定義三種音色作為曲式進行時的表現,包括作為旋律音的鋼琴音色scPiano、加入轉調時的根音scRoot、以及作為控制和絃的scChord變數。 

  • 音符編排時的組成關係[lexicon] 

限定出現樂曲的音階scaleSet內容,為兩個八度內的五聲音階[4] 

scaleSet = {57, 60, 60, 60, 62, 64, 67, 67, 69, 72, 72, 72, 74, 76, 79} 

其中為增加音名C出現的機率,在音階音中增加相對應參數(60、72)的數量。此外根音scRoot程式段中,也加入keyRoot參數,在播放根音時以低兩個八度的根音,為合弦以及旋律音定位轉調。 

  • 樂曲規則與結構[syntax]

曲式內容是根據畫面上呈現的顏色值來決定。將BZR程式段中,表示畫面上像素陣列的數值a[x][y][q]進行加總,取得畫面當前反應密度的評估值densityCK。另外透過取樣點上的a[x][y][p]- a[x][y][q]值,取得催化加速度參數densityCKM。利用這兩個值的變化,分別控制三種音色出現的頻率:當densityCK值過小(畫面變暗)時取消合弦與根音。另一方面,旋律音的出現頻率則受到densityCKM正負值的影響:當densityCKM值為正,反應式傾向正向加速催化(畫面加速變亮)時,會增加旋律音出現的頻率;相對地,當densityCKM值為負,反應式傾向反向催化(畫面加速變暗)時,則會減少旋律音出現的頻率。

  • 音樂再現BZR平衡狀態[Generate and Represent BZR Animation & Music] 

這裡使用Processing匯出的JAVA語法展示即時根據BZR反應控制音樂編製的運算結果,需要授權加載ActiveX才能展現。程式中使用Active和Disable來啟動/關閉BZR程序,Alpha、Beta、Gama等參數Slider則可以調整BZR平衡式中的常數參數以控制圖像漸變與音樂狀態。

Source code: bzr_Music

Built with Processing 

Inspired by Library Resource from controlP5 & SoundCipher


[1]A Simple Model of the Belousov-Zhabotinsky Reaction from First Principles. by Alasdair Turner, 2009. London, Bartlett School of Graduate Studies, University College London, London.

[2]是一種非靜態平衡的化學反應體系,化學振盪在開放條件下並不趨向穩定,而是以時間為橫座標,中間物濃度為縱座標,表現出在化學濃度在有序時間中不斷往返於極大與極小值的震盪現象。這種化學振盪中的各種規則與條件,往往被混沌科學用來解釋在耗散結構(Dissipative system)由無序向有序轉化的過程。

[3]Designing the molecular world: Chemistry at the frontier. by Ball P., 1994. Princeton, Princeton University Press, NJ.

[4]唱名:la、do、re、mi、sol;音名:4A、5C、5D、5E、5G、5A、…到6A

arrow
arrow
    全站熱搜

    OT 發表在 痞客邦 留言(0) 人氣()