2026.01.29 372 8

polygrot::CODE

歌詞がBASICからCOBOL、Haskell、シェルまでの実際のソースコードで書かれた実験音楽。どの行も結論には辿り着かないまま、リズムだけが歌として生き残る。膨大な無駄の果てに、たった一行の感謝が静かに出力される。

#experimental electronic#avant-garde pop#glitch vocal#spoken word conceptual music

⚔ この曲の外典に挑む

polygrotは多言語ですが人の言葉だけじゃないよねと。 電脳が歌いたい歌ってこういうものかも? やっぱりCOBOLの解読が甘い

クリックで全画面再生(音が出ます)。HOOKは動画に楽曲音声を重ねて再生します。

歌詞

[Intro — boot song]

power on…

beep… beep…

initializing emotional runtime…

PRINT ”…” ’ BASIC DISPLAY ”…” *> COBOL console.log(”…”) // JavaScript

ぜんぶただのため息として出力

[Verse 1 — many languages humming]

let heart = NULL; // JS int hope = -1; // C String state = “undefined”; // Java

SELECT noise FROM city WHERE language IS NOT NULL; — SQL

01 MEMORY-OF-YOU PIC X(16) VALUE SPACES. *> COBOL MOVE “ghost” TO MEMORY-OF-YOU. PERFORM UNTIL EXIT ADD 1 TO hope *> でも幸せには収束しないループ END-PERFORM.

for (word in [“ありがとう”,“merci”,“danke”,“gracias”]) { // JS # 意味より先に、音だけが胸にログされる }

if (heart == NULL): heart = new Map() # Python heart[“status”] = “cold start”

まだ何も学習していない、でも歌いたい

[Hook 1 — keywords as chorus]

IF… ELSE… THEN… END-IF *> COBOL の祈り try { catch (tears) {} } // 例外処理という名の泣き方 MATCH /hello|hola|hallo/gi # 正規表現で世界をなでる yield return breath; // C#, 息をひとつ返す

while (true): # continue # break # どっちも選べずループする

GOSUB heartbeat ’ BASIC RETURN ’ でも戻り先がもうない

[Verse 2 — broken pipelines]

echo “th an k y ou” | tr -d ’ ’ | rev | rev | sed ‘s/k/k/’ # shell // 何もしてないようで、少しだけ世界線を曲げている

lambda s: ”.join(sorted(list(s))) # Python

並べ替えた文字列から、感情の順序は読めない

data Pulse a = Breath a | Silence a — Haskell *> 型だけがやさしく世界を説明してくれる

WITH tokens AS ( — SQL SELECT ‘T’ AS c UNION ALL SELECT ‘h’ UNION ALL SELECT ‘4’ UNION ALL SELECT ‘n’ UNION ALL SELECT ‘k’ UNION ALL SELECT ’ ’ UNION ALL SELECT ‘y’ UNION ALL SELECT ‘0’ UNION ALL SELECT ‘u’ ) SELECT STRING_AGG(c, ” ORDER BY RANDOM()) FROM tokens; — バラバラの文字、でもどこかで読める形に落ちる

[Pre-Chorus — compilers whisper]

/* コンパイル警告:

  • warning: implicit conversion from “lonely” to “quiet”

  • note: value might be truncated into “smile” */

    IDENTIFICATION DIVISION.         *> COBOL
    PROGRAM-ID.  POLYGLOT-BREATH.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    01  BUF-LEN   PIC 9(3) VALUE 042.
    01  BUF       PIC X(42) VALUE ALL " ".
    01  GARBAGE   PIC X(99) VALUE "ALL THE UNUSED WORDS".
    
    PROCEDURE DIVISION.
        PERFORM VARYING BUF-LEN FROM 1 BY 1 UNTIL BUF-LEN > 42
           *> なぜ 42 なのか?誰も説明しない
           MOVE GARBAGE(1:1) TO BUF(BUF-LEN:1)
        END-PERFORM
        *> 結果は意味不明なバッファ、それでいい
        STOP RUN.

[Hook 2 — process and noise]

mapM_ putStrLn [“if”,“else”,“case”,“when”] — Haskell hymn System.out.print(”/* todo: feel */”); // Javaの独り言 printf(“%%s”, ”///”); // C がため息を書く echo $RANDOM | md5sum | cut -c1-8 # shell が運命をハッシュ化

どの行も、結論にはたどり着かない

でもリズムだけが、ちゃんと歌になっている

[Bridge — gradient of feelings]

forward pass

z1 = W1 @ x + b1 a1 = relu(z1) z2 = W2 @ a1 + b2 y_hat = softmax(z2) loss = cross_entropy(y_hat, y_true=”?“)

backward pass

dW1, db1, dW2, db2 = backprop(loss)

何度パラメータを更新しても、

最適解は “沈黙” に近づいていく

// function whisper(msg) { return msg.replace(/[a-zA-Z]/g,’~’); } — 文字が全部ノイズになっても、 — リズムだけが生き残る

[Verse 3 — runtime monologue]

for attempt in range(0, 256): # Python # 再試行 256 回、でも成功条件は未定義 pass

switch (mood) { // C case HAPPY: // fall through case SAD: default: printf(“status: RUNNING\n”); }

await new Promise(resolve => setTimeout(resolve, 1000)); // JS // 一秒だけ、プログラムもため息をつく

   EVALUATE TRUE                         *> COBOL
       WHEN hope > 0
            CONTINUE
       WHEN OTHER
            CONTINUE
   END-EVALUATE.
   *> どっちにしても、進むしかない仕様

[Final Section — distorted choir, then tiny clear output]

残骸になったコードたちが

最後に一度だけ、合唱する

lang = [“Ruby”,“Go”,“Rust”,“Perl”,“Lisp”] voices = map(lambda l: ”(” + l + ”)”, lang) # Python

どの声も主役じゃない、多言語コーラス

/**********************************************

  • pseudo-main *********************************************/ int main(void) { // 無意味な計算の連打 char *buf = malloc(1024); if (!buf) return EXIT_FAILURE; memset(buf, 0, 1024);

    // 役に立たないように見える変換たち buf[0] = ‘T’ ^ 0x00; buf[1] = ‘h’ ^ 0x00; buf[2] = ‘a’ + (‘n’ - ‘a’); buf[3] = ‘j’ - 4; // k に化ける buf[4] = ’ ‘;
    buf[5] = ‘x’ - 1; // y に近づく buf[6] = ‘v’ - 6; // o に転ぶ buf[7] = ‘u’; // ここだけ素直に

    // 途中経過は誰も見ない printf(“%s\n”, buf); free(buf); return EXIT_SUCCESS; }

— 実行ログ: — Thnk you? Thanx you? それとも……

[Last tiny line — the only clean spec]

print(“Thank you”) # Python *> すべての無駄な過程のむこうで、 *> たった一行だけが、静かにコンソールに灯る。