深奧的程式語言 ORCΛ

  • Post by Chen (Benjamin) Hsieh | 謝晨
  • Oct 29, 2019
post-thumb

ORCA

ORCΛ 讓我回想到小時候玩電路的感動,在視覺化的程序遊樂場上,以艱澀的符號開啟一段重新思考敘事、設計、以及意義的二維航行。


前言

2019 年四月中,在 TOPLAP 的 live coding 列表上,發現了 ORCΛ,接著逛進創作者 Devine Lu Linvega 的個人記錄系統 XXIIVV。深奧的專案名稱、獨特的直白敘事風格、以及亂碼般的時間系統,記錄著驚人的驚人創作質量。瀏覽一個個條目的過程,彷彿掉進某種架空世界觀的數位藝術工作者準備的兔子洞,直到眼睛酸澀背脊疲倦,抬起頭來才發現我的肉身還在。

簡介

ORCΛ 是一種程式語言,開發環境會即時運算,輸出 MIDI, OSC or UDP 等等控制訊號,依據搭配的軟硬體,產生聲音、影像、或硬體控制。奇特之處在於,26 個英文字母每個都會執行一種運算,大寫字母每幀執行,小寫字母則是被激發時才作動。

https://res.cloudinary.com/rna-sick/image/upload/v1557931678/ORCA/Screen_Shot_2019-05-15_at_22.46.47_ke74no.png

orca

“Each letter of the alphabet is an operation, uppercase letters operate each frame, lowercase letters operate on bang.”

撰寫方式是在一片可伸縮的二維等寬字型空間,用方向鍵操作 “@” 字符決定輸入位置,輸入字母後,該字母代表的運算中,鄰近相對應的用以接收輸入與輸出的格子位置會被保留並持續運作。與其說是寫作,更像是硬核的機構設計遊戲,在麵包板上插計數器、加法器之類的晶片一樣,規劃程序的過程中增添了二維空間關係的限制,卻也賦予了開發過程一種「不必要所帶來的樂趣」。

馬上體會 ORCΛ 的魅力

老實說,雖然作者系統性的創作哲學很迷人,但相對地也是使用者不友善的體驗。這裡提供一個最快的讓人體會 ORCΛ 魅力的流程,下載、複製貼上、調整音量、然後關燈,就可以暫時享受一段逃離現實體驗。

免費下載開發環境

  1. 下載開發環境
  2. 點選金額上方的小字 “No thanks, just take me to the downloads”,之後想要支持他們再來付錢也可以
  3. 選擇自己作業系統的壓縮檔案下載,解壓縮後直接右鍵執行 ORCΛ

下載 Pilot 合成器

  1. ORCΛ 只負責產生控制訊號,作者創作了一個極簡的合成器可以配合著使用
  2. 點選金額上方的小字 “No thanks, just take me to the downloads”,之後想要支持他們再來付錢也可以
  3. 選擇自己作業系統的壓縮檔案下載,解壓縮後直接右鍵執行 Pilot

貼上範例檔案

  1. 複製範例程序

......................................... .#.PILOT.#............................... ......................................... ....8C2.......8C2.....2C4..2C4...C4..4C8. .gC3.12TFG.gC5.12TBG..A06..A02..A14..A64. ..23TCEG....13TEAG..lV6..mV2..jV5..kVa... ..1VG.......2VA.....D8....Cg.D2....Cg.... .2C2.2K12.4C5........;aut29...;cho49..... ..0Y02TGA..14T3424..Da....Cg.D6....C4.... ....nVG....oV4.......;tre49...;vib41..... ......................................... .D34Kjon...D84Kk.n...Da4Kkon...D84K..n... ..Y.;54Gf4..Y.;a1Gf8..Y.;a4Gf6..Y.;e1Gf4. ......................................... .D24Klon...D44Km.n...D24Kion...D44K..n... ..Y.;64G....Y.;24G....Y.;14G....Y.;c1G... .........................................

  1. 在 ORCΛ 中貼上,應該就可以聽到律動了

    https://media.giphy.com/media/LNkRpVbxZfwrK4sGvY/giphy.gif

    eg

    Trobleshooting是否 ORCΛ 跟 Pilot 都開啟著ORCΛ 上方 UDP 選項是否選擇著 Default(49161),點選使其為 Active電腦總音量有沒有開

  2. 如果你有一路跟著操作到這邊的話,可以看看 ORCΛ 中閃爍著的符號,搭配本文下方各個字母功能的說明,慢慢研究運作的方式。

  3. 以這個範例來說:

    1. 上方的六坨含有 V 的文字負責變數隨著時間有節奏性地輪流切換,提供給下方的八坨有 ; 的敘述使用。
    2. 下方八坨敘述的 ; 負責發送 UDP 訊號,發送給 Pilot 的內容就是 ; 右方的淺色文字,功能是使合成器發出聲音。發送內容受到上一排的變數控制隨著 (1) 中的設定來切換,而且只有由 D 控制的 * 出現時才會發送。
    3. 右上中間也有 ; 的敘述負責發送效果器設定的訊號給 Pilot。

    可以試著更改畫面上的字母、刪除發送訊息的 ; ,看看聲音或是畫面上的閃爍產生的改變來慢慢探索。

看看字母操作子字典

26 個字母各自有其運算功能,但還是可以歸類成此處所說的幾種類別。如果要串接不同的合成器或 DAW 的話可以參考這邊

延伸探索

這算是一個滿新的 live coding 環境,可以看到 twitteryoutube 上作者本人 Devine Lu Linvega 與某些活躍藝術家的創作,ORCΛ 開放源碼所以有許多精彩的改造版本,作者本人最近也要在 ALGO/MESH 上演出與舉辦工作坊。很喜歡這種貫徹創作哲學又與眾不同的風格,我經濟能力不足以直接支持他們,所以只能像本文一樣撰寫中文的介紹,希望可以幫忙拓展用戶,讓更多人有機會認識他們。以下先記錄幾點學習資源,之後有機會再寫更細的介紹~

  • Pilot 的說明書
  • Λioi:接收 ORCΛ 的 UDP 並發送 OSC 到其他軟體,可以用來同步 Processing, SuperCollider, TidalCycles, Veda 等等產生的影像與聲音