#つぶやきProcessing Playerの紹介

# はじめに
書いてみたら思いの外ポエムだったのでnoteにでも書こうかと思いましたが、まあこれはこれでいいかと思ってQiitaに投稿します。

今年の2〜3月あたりのことですが、[つぶやきProcessingPlayer](https://tweet-processing-player.glitch.me/)というものを作りました。

<img width="1088" alt="スクリーンショット 2020-08-07 22.21.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/16556/a8afc89d-ce88-cc5e-08fa-150a0ac283af.png">

# つぶやきProcessingとは？

Processingというプログラミング言語を用いて、Twitterに投稿できる文字数（＝140文字）で作品を制作する遊びまたは試み。
ちなみに文字数にはハッシュタグ（#つぶやきProcessing）を含む。
作例は[つぶやきProcessingPlayer](https://tweet-processing-player.glitch.me/)または[Twitter検索](https://twitter.com/search?q=%23%E3%81%A4%E3%81%B6%E3%82%84%E3%81%8DProcessing)を見てください。

# Processingとは？
[Wikipedia:Processing](https://ja.wikipedia.org/wiki/Processing)
ビジュアルプロトタイピングまたは教育のためのプログラミング言語/環境。
オリジナルの[Java実装(Processing)](https://processing.org/)のほか、これまで[Javascript(p5.js)](https://p5js.org/)、[ruby(ruby-processing)](https://github.com/jashkenas/ruby-processing/wiki)、[clojure(Quil)](http://quil.info/)に移植されている。
他にもあったら教えてください。

なお、Processingという名前は非常にググラビリティが悪いので、p5という表記がよく用いられる。（ちなみにこれはProcessing初期に、主に同じく検索性の問題から`Proce55ing`という表記がされていたことに由来する（はず））

# 筆者とProcessing

## 出会い
2006年、大学4年で音楽系メディアアートの研究室に入ったところ、当時のトレンドはメインのツールが[Max/MSP](https://ja.wikipedia.org/wiki/Max_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2))(ver.4系)で、ビジュアルにはProcessing BETAが流行っていた。以下p5と書く。
BETAが流行ってるってなにそれ怖いって感じだけど、当時BETAとかALPHAとかが何を意味するのかも知らなかったし、他の選択肢も（そもそも他という発想すら）なかったのでそれでよかった。
多分研究室にp5を流行らせたのは外でもない今いる会社の社長の @sadmb（Qiitaのアカウントなさそう） もしくはそれに非常に近しい誰かなんだけど、この辺の耳の速さや飛びつきの速さは当時からだったんだなーとぼんやり回想した。
のちに[openFrameworks](https://openframeworks.cc/)にどっぷりハマることになるのだがそれはまた別の話。

## 作品
大学〜大学院（修士）の作品は、ほぼ全てMax/MSPのみもしくはMax/MSPとp5を併用した作品だった。
[修士論文（概要）](https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=55733&item_no=1&page_id=13&block_id=8)に大体載っている。
もうソースコードは知る限り残ってないし、当時のコンペ応募のためのDVテープが残っているのでその気になれば動作している映像は取り出せるけど、別にやらないのだろう。
ちょっとYouTubeにあげているのがあったので載せておく。
[HITONE](https://www.youtube.com/watch?v=Q7XE7gvdKC4)
[Generative Synth 01, Spring (prototype)](https://www.youtube.com/watch?v=q6_nELgEa64)
当時はこんなの作ってました。

いま気づいたけど論文引用されてた。->[電子音響音楽理解のための演奏支援ツールの開発と実験](https://kiyo.info.gscc.osaka-cu.ac.jp/JI/article/download/74/66/)
こういうの見ると、当時自分が論文に作品を引用させていただいた方の名前を、変わらずこの業界でたまに耳にすると安心するのと同じ感じを、自分も与えることができているのだろうかと少し幸せな気分になる。

## 筆者の今とProcessing
デスクトップアプリの制作はopenFrameworksに慣れてしまったのと、あまりブラウザでp5的なことをする機会がないので、最近は全然p５のコードは書いていない。
しかし、特にoFと比較した時のアドバンテージとして、「環境（初期）設定の手軽さ」は無視できないレベルで素晴らしい。
（大学で授業を持った際、初年度にoFで環境構築に正味2日かけてしまったことから、次年度はp5.jsを採用した苦い思い出もあり・・・。）

# つぶやきProcessingPlayer
で、やっと本題に戻ってきました。
つぶやきProcessingPlayerは、Twitterに投稿された#つぶやきProcessingのうち、（ブラウザで動かすので）p5.jsで書かれたものだけを検索して、実際にそのソースコードをブラウザで実行させるプログラムです。
ソースコードはツイートのまま再生するだけでなく、それを自分で編集して再度動かしてみることもできるので、「なにこれなにやってんの！？」と思ったときは気になることを書き換えてみて勉強すると良いと思います。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">つぶやきP5エディタに続いて、つぶやきp5プレイヤを作ってみました。<br>今はコード貼り付けでしか動かないけど、Twitterのデベロッパ登録が通ったらURLからサクッと再生できるようにするつもりです。<br>あと glitch is awesome!!<a href="https://twitter.com/hashtag/%E3%81%A4%E3%81%B6%E3%82%84%E3%81%8DProcessing?src=hash&amp;ref_src=twsrc%5Etfw">#つぶやきProcessing</a><a href="https://twitter.com/naoto_hieda?ref_src=twsrc%5Etfw">@naoto_hieda</a> <a href="https://twitter.com/glitch?ref_src=twsrc%5Etfw">@glitch</a><a href="https://t.co/cmRZZRv7Jy">https://t.co/cmRZZRv7Jy</a> <a href="https://t.co/YTfQRIAXkc">https://t.co/YTfQRIAXkc</a></p>&mdash; 岩谷成晃 (@nariakiiwatani) <a href="https://twitter.com/nariakiiwatani/status/1233394878123368448?ref_src=twsrc%5Etfw">February 28, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ツイートのURLでスケッチを再生するのできました！<br>ハッシュタグの扱いをどうするか悩んだ結果、とりあえず <a href="https://twitter.com/hashtag/%E3%81%A4%E3%81%B6%E3%82%84%E3%81%8DProcessing?src=hash&amp;ref_src=twsrc%5Etfw">#つぶやきProcessing</a> 以降を無視することで、実行できるコードになることを期待してます。<br>次に作る機能としては、ページ内でハッシュタグでの検索結果一覧を表示して、クリックで再生、かな？ <a href="https://t.co/rsgE72Blgn">pic.twitter.com/rsgE72Blgn</a></p>&mdash; 岩谷成晃 (@nariakiiwatani) <a href="https://twitter.com/nariakiiwatani/status/1233796224748118016?ref_src=twsrc%5Etfw">February 29, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ハッシュタグ検索してサクサクブラウジングできるやつできました！<br>コード中でも、Twitter側がハッシュタグやURLだと判定した部分は一律に除外しちゃうので、期待通り動かないツイートもありますが、手動で修正してあげれば動きます。<a href="https://twitter.com/hashtag/%E3%81%A4%E3%81%B6%E3%82%84%E3%81%8DProcessing?src=hash&amp;ref_src=twsrc%5Etfw">#つぶやきProcessing</a><a href="https://t.co/cmRZZRv7Jy">https://t.co/cmRZZRv7Jy</a> <a href="https://t.co/zEcyvyc1xG">pic.twitter.com/zEcyvyc1xG</a></p>&mdash; 岩谷成晃 (@nariakiiwatani) <a href="https://twitter.com/nariakiiwatani/status/1234738857565798400?ref_src=twsrc%5Etfw">March 3, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# そこに愛はあるぞ。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">つぶやきProcessing Playerは珍しくoF addon以外でコミュニティに貢献した気がしてる。<br>実は僕は <a href="https://twitter.com/hashtag/%E3%81%A4%E3%81%B6%E3%82%84%E3%81%8DProcessing?src=hash&amp;ref_src=twsrc%5Etfw">#つぶやきProcessing</a> ひとつも投稿してないし、P5も数年書いてないけど、でもこのページは、思いついたからには作るしかないと思った。そこに愛はあるぞ。<a href="https://t.co/cmRZZRdwS0">https://t.co/cmRZZRdwS0</a></p>&mdash; 岩谷成晃 (@nariakiiwatani) <a href="https://twitter.com/nariakiiwatani/status/1234860796670365699?ref_src=twsrc%5Etfw">March 3, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# つぶやきProcessingEditor
ちなみに、p5.jsで書かれたプログラムを（可能な限り）コンパイル（圧縮）してくれる[つぶやきProcessingEditor](https://tsubuyaki-p5-editor.glitch.me/) というアプリもあります。

https://twitter.com/naoto_hieda/status/1233319607987056641