鍋の中

Miliファンの雑文置き場

Javaの歌詞からSustain++; を読む

目次

はじめに

www.youtube.com

Sustain++; のフル版がついに公開されました!Mili曲でJavaのプログラムで書かれた歌詞をもつ曲は、2ndアルバムの「world.execute(me);」、ミニアルバムの「world.search(you);」に続き、これで3曲目です。プログラムの歌詞をもつ曲はどれも小ネタが仕込まれてて(wsy の歌詞にコンピュータアルゴリズムの名前が隠れていたりとか)面白いのですが、今回も例に漏れずすごいです。この曲ははっきりストーリーがある曲という印象を受けましたが、普通の歌詞を補完するように詳細が書かれていたり、向こうでは描かれていなかった結末が描かれていたりして読み応えがあります。

この記事では、英語と日本語の歌詞に加え、プログラムで書かれた歌詞も参照しながら、全体のストーリーについて自分の解釈を書いていきます。(CDの歌詞カードがあれば手元に用意して読んでほしいです)


コード読解①(ending verのところまで)

       /**
        * CALL ME MOMMY
        * JUST LIKE YOUR FANTASY
        * There is no crime in ideality
        */
       if (you.getFetishes().searchByType("name calling", "mommy") != -1){
           you.addToMemory(me);
           you.setNicknameFor(you.getMemory(me),"mommy");
       }
       Rule r = new Rule("Oedipus complex is okay",true);
       world.addRule(r);

最初の方の部分です。気になるのは最後の2行、字面でわかるかもしれませんが、"Oedipus complex is Okey" というルールを世界に追加する、と読めます。
さっそく脱線するのですが、エディプス・コンプレックス(Oedipus complex)とは、シグムンド・フロイトという昔の精神病学者が提唱した精神医学の言葉です。フロイトは精神の発育に性欲を重要視する考えをもっていて、「すべての男児は母親を求める性的欲望を持っていて、その欲望は気づかないうちに抑圧されている」と主張しました。ここで指してるエディプス・コンプレックスはこのことだと思います。「お母様とお呼びなさい」のお母様には、欲望の対象、という含意があるのかもしれません。

次の部分。

       /**
        * MUX>>>DEMUX
        * Can't you understand me?
        * I'm not mine NAND I'm not yours
        * Ah
        */
       try{
          you.decodeMessage(me.codeMessage("I'm not mine NAND I'm not yours.","mux"),"mux");
       } catch (InsufficientIntelligenceQuiotientException e){
           world.sendMessage("Oh you dummy.",you);
           me.announce("Ah")
       }

英語歌詞よりプログラムの歌詞のほうを読むとわかりやすいです。ここでは、「I'm not mine NAND I'm not yours」というメッセージをmeがコードして、それをyouがデコードする、という指示と、それが失敗したときの指示が書かれています。

コードする、というのは、たとえば「あいうえお」を「1110001110000001100…」と2進数にするように、コンピュータの言葉にする(符号化といいます)という意味です。デコードは逆に、符号化されたものを平文に直すことで、ここでmeとyouはメッセージを暗号にしてやり取りをしている、とわかります。

実は歌詞の「MUX」「DEMUX」も同じような意味です。MUXとDEMUX(それぞれマルチプレクサ、デマルチプレクサといいます)は論理回路の部品で、何をするかというとざっくり「受け取った信号を変換する」ものです。MUXで変換された信号はDEMUXで元に戻ります。>>>という記号があるので、MUXとDEMUXをつなげた、という意味でしょう。こうすると、一度変換したものを再び戻す、ということになります。メッセージを変換して発信し、受け取り側で再変換して受信する、ということは、この「codeとdecode」「MUX>>>DEMUX」はどちらも、コミュニケーションを意味しているのではないでしょうか。
ちなみに、コミュニケーションという言葉はsustain発表時のモモカさんのコメントにも出てきています。
www.barks.jp


つぎに、"I'm not mine NAND I'm not yours"って言葉を考えてみます。NANDはやっぱりコンピュータ関連の言葉で、NOT-ANDの略です。論理学的には、「P NAND Q」が正しい、ということは「P AND Q は正しくない」という意味になります。なので、歌詞の意味は「I'm not mine」と「I'm not yours」は両立しえない、私はつねに誰かに属していて、誰のものでもないということはありえない、そんなところだと思います。

もう一つプログラムの歌詞からわかるのは、この部分で、me は you にこのメッセージを正しく伝えられなかったらしい、ということです。というのも、プログラムには「このメッセージを受信して例外が出たとき、meは"Ah"とアナウンスをする」みたいなことが書いてあるからです。歌詞に「Ah」とあるのは、満足にコミュニケーションが取れなかったme の嘆き、ととれます。

このあたりまでが、以前公開されたending verに含まれていたところですね。この先の次の部分も読んでみると、ぼんやりしていたストーリーの輪郭が浮き出てくる感じがします。この曲の主題とストーリーについては、公開前のインタビューでモモカさんがすこしだけ言及していることがありました。

Sustainability(持続可能性)という単語は最近では環境に対しても使う言葉なんですが、個人的には恋愛などの人間関係にも該当すると思います。
「攻殻機動隊」最新作ED曲は、音楽制作集団Miliが担当 | BARKS

で、これを踏まえて以降の部分を読んでみます。

コード読解②(~最後)

言葉を死なせないで 愛を枯らさないで
これから私達に殺される近い未来の川のように

あぁ
馬鹿みたいなことをブツブツ言いながら
例えば
「こうなるって分かってたんだ」とか
その予兆を知らんぷりして

この部分です。プログラムでは次の部分に該当します。

for (int sustain = 0; sustain < world.getRiver().size(); sustain++ {
me.sayTo("I love you.", you);
you.sayTo("I love you.", me);
}

String[] tags = {"stupid", "dumb", "Pretty", "ignorant"};
world.mute(me,tags);
world.mute(you,tags); 
for (life them : world.getLifeTopOnePercemt()) {
me.fight(them);
you.fight(them);
}

コメントアウトされた歌詞は省略)

このプログラムの前半部、「言葉を死なせないで~近い未来の川のように」にあたるところで書いてある指令は「sustainの値が十分高くなるまで、me と you がお互いに "I love you" と言い合う」というものです。「言葉を死なせないで」というのは、充分なコミュニケーションをとらないと、関係の持続可能性が下がってしまう、という意味に取れます。

もっと言うと、「充分なコミュニケーションがとれない」というのは、さっき挙げた部分、歌詞の「MUX>>DEMUX~Ah」の部分で、主人公がyouとコミュニケーションを取ることを失敗した、ということを踏まえている気がします……というところで、この曲がどういうストーリーなのかがはっきりしてきます。まず、主人公のI と You はたぶん恋愛関係にあります。主人公はyouとコミュニケーションを取ろうとするけど、うまくいかない、だんだん関係に亀裂が入ってくる、でも二人は「その予兆を知らんぷりして」いる……という描写だと自分は解釈しました。

で、この「予兆」がなにかもプログラムの歌詞に書いてあります。この中に書かれてる、「"stupid", "dumb", "Pretty", "ignorant"」という言葉です。stupid, dumb, ignorant、いずれも人を罵る言葉なので、会話の中にだんだん悪口が増えてくることが「予兆」なんだと思います。(Prettyはよく分からない…)

ちょっと飛ばして、サビ前のこの部分を見てみます。

私達は捜している
本能に従って
存在しない品種の幽霊(ゴースト)を検索中
生まれた日から私達を完全体にしてくれる品種
追いかけ続ける
私達は完璧な存在に憧れる
完璧な両親という存在もしない品種
成長したのは体だけ 心はいつも小さいまま


ここで突然「両親」って言葉が出てくるのは、たぶん最初の方にあったエディプス・コンプレックスの話と関係しています。フロイト男児の成長を「欲望の対象である母に代えて、やがて母と同価値を持つ性的対象を見出す」と説明しています。つまり、私たちが他人に向ける各種の欲望は、実は自分の生まれ育った家族に根ざしている、ということをフロイトは言っています。ここから敷衍して、「もっと良い相手を」と求めることは、実は理想の家族、理想の両親を追い求めていることなんだ、という前提がこの歌詞にあるのかな、と思いました。

ということで、次の「Where do we go from here?」と続く部分、この「here」とは、完璧な人間という「存在しない品種の幽霊」を自分たちは追いかけているんだ!と、この主人公たちが気づいてしまった地点なのだと僕は解釈しました。

もうちょっと進んで、ラスサビの始まるあたりを読みます。このへんからプログラムの歌詞がより面白くなってきます。

         /**
          * MUX>>>DEMUX
          * Can't you understand me?
          * You turn my screen #0000ff
          */
         you.disorient(me);

ここはラスサビの直前ですが、歌詞に対してコードは1行だけです。「youはmeを迷わせる(disorient)」と書かれていて、ブルースクリーンはこの比喩だとわかります。

          /**
           * Hear me out
           * It's a perfect plan
           */
          me.command(you, "listen");
          me.sayTo("Anything inconvenient, I shall erase for you", you);

プログラムの方に「Perfect plan」の内容が「Anything inconvenient, I shall erase for you」だと書いてあります。「何もかも不便なんだ!君のために消し去ってしまおう」といったところでしょうか。この「計画」の通り、主人公は「何もかもを消し去る」ために動き出します。

          /**
           * It's all just sunk cost, I know
           * But I'm not ready to stop
           */
          me.manipulate(you, "beg");
          me.manipulate(you, "gaslight");
          me.manipulate(you, "blame");
          me.manipulate(you, "tears");
          world.getRelationship(me, you).end();
          you.setMemory(me, null);

me.maniplate…とあるように、ここで主人公はyouを操って行動させようとします。youがmeに懇願するように(beg)、狂ってしまうように(gaslight)、自分を責めるように(blame)、泣き出すように(tears)。ややあって、主人公はこの二人の関係を終わらせ、youのもつ主人公についての記憶を"null"に、つまりなかったことにします。

続いて、最後の部分です。

          /**
           * I don't want to stop
           */
          me.getMemory(you, "positive");
          me.getMemory(you, "date");
          me.getMemory(you, "fun");
          me.getMemory(you, "travel");
          me.getMemory(you, "pregnancy");
          me.getMemory(you, "kids");
          me.getMemory(you, "snuggle");
          me.getMemory(you, "netflix&chill");
          me.getMemory(you, "gaming");
          me.getMemory(you, "birthday");
          me.getMemory(you, "cooking");
          me.getMemory(you, "exercising");
          me.getMemory(you, "studying");
          me.getMemory(you, "gardening");
          me.getMemory(you, "chores");
          me.getMemory(you, "shopping");
          me.getMemory(you, "driving");
          me.getMemory(you, "daily");
          me.getMemory(you, "sad");
          me.getMemory(you, "angry");
          me.getMemory(you, "fight");
          me.getMemory(you, "forgiveness");
          me.getMemory(you, "makeup");
          me.getMemory(you);
          world.setRelationship(me, you, null);
        

getMemory() というのは、記憶を引き出す、という指令でしょう。「やめたくない(I don't want to stop)」と言った主人公は、自分の中からyouに関する記憶という記憶を探し出そうとします。(pregnancy, kids, って記述まであるんですけど、主人公たち子供いたんですね)そして最後に、二人の関係をnullにして終わります。

プログラムだとこの後は、コメントアウトされた

//sustain++;

という記述が続きます。(コメントアウトは「//」と行頭に書くことで、一度書いた箇所を一時的に除外する、という意味です)

Sustain++; とは何か

最後に、表題でもあるこの文字列の意味について。

プログラムの中での使われ方を見るに、sustainは「関係の持続可能度合い」のようなものを表しているようです。sustain が高い関係は持続可能、つまり長く続くポテンシャルを持っていて、逆にsustain が低い関係は破綻して仲違いしてしまいかねない、ということです。さらに、プログラミングで、なにかのあとに++と書くのは、「その値を1増やす」という意味を持ちます。すると、sustain++; という指示は、「私たちの関係の持続可能性よ、増えろ」という意味に取れます。

ちなみに、リスアニというサイトで発表されたインタビューで、モモカさんはこのタイトルをこんな風に説明しています。

――このタイトルについている記号(++;)はインクリメントと言って、プログラミング用語で「変数の値に1を加える」処理を指す単語らしいですね。タイトルにはどのような意味を込めたのですか?


Cassie これは簡単に言うと「サステインを一つ増やす」ということで、持続可能性がワンユニット上がるという感じですね。単純に数字が高くなる。プログラミングコードも一つの言語なので、英語の歌詞に和訳がつくように、プログラム言語で書くことによって翻訳がひとつ増えるっていう。で、やっぱり言語によって文化が違うので、同じものを少し違う目線で見られるようになるんです。このタイトルもプログラミングを知っている人が見ると、また違う解釈の仕方があると思うので、そこが面白いかなと。
『攻殻機動隊 SAC_2045』コンセプトシングル「Intrauterine Education」&Wタイアップシングル「雨と体液と匂い / Static」を同時リリース!Miliインタビュー – リスアニ!WEB – アニメ・アニメ音楽のポータルサイト

まとめ

さて、自分の解釈でストーリーを整理するとこんな感じです。この曲の主人公、I と Youは恋人同士にありましたが、その関係には軋轢が生じています。満足にコミュニケーションがとれず、結果として「持続可能性」が下がってしまう。関係の破綻した二人は、”自分たちは相手に、完璧な人間という「存在しない品種の幽霊」を求めていたのだ”と気づいてしまい、どうしようもなく混乱します。主人公(me)は、全部なかったことにしよう、と決意します。「一緒に落ちて行けば、涙もない、後悔もない」のだから。主人公は二人の関係を一度終わらせ、相手に自分のことを忘れさせます。そうした後で、主人公は一度、自分のなかに残る相手の記憶をかき集めようと足掻きますが、最後には関係をnull(=無)で上書きして、今度こそすべてを終わらせます。その後には、コメントアウトされた大量の「sustain++;」という指令が遺されている……。

もちろんこれは自分の解釈に過ぎませんが、なんとも救いのない印象を受けます。さて、ここまで駄文を読んでくださってありがとうございます。書いてて表示されるカウンターがそろそろ8000字に届きそうで、ここまでたどり着いた人がいるのか本気で不安ですが…。歌詞の記述でも、意味を測りきれずに飛ばした箇所がいくつもあり、誰かが考察や解釈を書いてくれるのを望むばかりです。

補遺

この記事を書く時、Miliが発表したコメントやインタビューを片っ端から読んだんですが、どこにも一覧にまとめられてなかったのでここに書き並べておきます。
見つけただけで6個はありました。めちゃくちゃ注目されててすごい

  • Miliが語る、移住のススメ。「世界各国に1000人ずつファンがいる」(cinra.net)

www.cinra.net

  • 攻殻機動隊 SAC_2045』コンセプトシングル「Intrauterine Education」&Wタイアップシングル「雨と体液と匂い / Static」を同時リリース!Miliインタビュー(リスアニ!web)

www.lisani.jp

  • 【Mili インタビュー】Miliは好きなことをやりたい人が集まっている(OK music)

okmusic.jp

  • Miliインタビュー 新作「攻殻機動隊 SAC_2045」コンセプトシングルに込められた思いとは? 「持続可能性」から「LGBTQ」まで、世界基準の音楽世界を聞く(アキバ総研)

akiba-souken.com

  • 攻殻機動隊」最新作ED曲は、音楽制作集団Miliが担当(BARKS)

www.barks.jp

  • リリースに寄せて Miliからのコメント(Flying dog)

https://www.jvcmusic.co.jp/flyingdog/-/News/A026694/3.html