/ ,' 3

https://twitter.com/gorlemkun

2019/06/03 日記の見直し、TSのmoduleでハマる、MakingMusicのメモメソッド、事実の言語化

しばらく日記をお休みしていた。開発もお休みしていた。特に進捗が無いのに無理やり日記残すのもなあと思い、特に残したいものが無い日は何も残さないようにした。

日記は毎日続けていたので、やめるのには結構努力が必要だったけど、まあ5月から1ヶ月毎日続けられたという実績は残せたのでそれでよしとしようと思う。

書いていて思ったけど、進捗以外にもなにか気づきがあって、それを残していくのは結構いい取り組みなので、それは続けていきたい。

---

TSからモジュール読み込んだらエラーが出てわけわからず今日の開発時間溶かした。調べてくと外部モジュールを使うとき、型定義ファイルが無いといけないらしい。
まじかよTS。なかなかハードルが高そうな関門用意してくれるじゃないの。業務で使ったときはこういう関門に全然引っかからなかったので、うまくレールが敷かれていたのかもしれない。そういえば型定義ファイルとか用意したことなかったな。ここにも関門がありそうだ。

---

MakingMusicという本を読んでいる。これ過去に読んですっげーいい本だな!と思ったけど英語力無さすぎて断念していた。で、今になってそこそこ英語ができてきたので、読み返してみている。やはりすっげーいい本!

曲の具体的な作り始め方、他の曲からの学び方、などなど、ソフトスキル?的な面に対してとてもよく触れられている。

特に関心したのが、曲の要素について記述してみる練習のところ。テンポは・・122bpm、楽器は、、ドラム、ドラムは808と・・ベースはFM・・・、ハーモニーはDマイナーとAメジャーを繰り返し使って・・・、メロディはDを多様して・・・みたいな感じで、とにかく言語化してみるのだ。

これができると、音楽を語る能力がめっちゃ伸びる。言語になるので、すごく思い出しやすくなる。そしてカテゴライズ能力も上がる。さらに抽象化ができるようになって、新しいアイデアを作りやすくなる。どれか一つの要素を選び取って作曲に活かしたりもできるようになる。あーーーーーーもっと早く知っておきたかったなこの方法。というくらいいい。英語でめげそうだけどがつがつ読み進めていこうと思う。

---

事実の言語化がめっちゃ重要だなーと最近よく思う。さっきこんなことがあった。というその事実自体にはそんなに意味が無いかもしれないんだけど、そこからどういうことが見いだせるのか?という考察につなげられる。そこが本当に、本当に大事。

だからあった出来事はとにかく記述するようにしている。そしてそれについて考えてみるようにしている。すると考察が広がってくる。そして知見が生まれる。慣れてくるとどんどん発想が独自になっていく。

そうしてどんどん独自の世界観を築いていくのがこれからほんっっとうに大事だと思うので、これは実行していきたい。実行が大変なタイプのプラクティスだろうと思う。でもこれの量がのちに大きな差になる。たぶん。

---

END

2019/05/30 TypeScriptではろわ

TypeScriptでHello Worldしようとした。

軽く始めるにはts-nodeがよさげだった。

github.com

```

brew install anyenv
anyenv install ndenv
ndenv install v12.3.1
ndenv local v12.3.1
npm init
npm install -D ts-node
npm install -D typescript
touch hello.ts
echo 'console.log("Hello, World")' > hello.ts
npx ts-node hello.ts

```

はいこれでHello, Worldが出力されるはず。他のに比べるとトランスパイルが必要ないぶん簡単なのでは。
実装方法ちゃんと見ていないのでわからないが、デバッグ、開発用途や書き捨てスクリプトには有効な気がする。
この環境でcsvJSONにするスクリプトを書いていこうと思う。

---

はてぶって見たまま編集だとコードブロック貼れないのかな?

---

END

2019/05/29 コード進行取得してCSV化まで、線をすばやく引く、歌うと猛烈に眠くなる

コード進行取得してCSV化までGASのスクリプトを書き終え、いったんこの形で完成とすることにした。昨日も書いたが公開予定はなし。プライベートリポジトリにPushしておいた。

この後は以前作成したchordmapper向けにJSONとしてこのコード進行CSVを変換するつもり。簡単にいけそうだったらTypeScriptを使うかもしれない。おしごとで使ったことがあるけどうまくハマると全くおかしなエラーが出ない開発体験ができるのでたいへんに気持ちがいい。もうちょっとちゃんと慣れておきたいなと思っている。

---

線をすばやく引くことについて。いやー今すごい細かめの絵を描いているのだけどとにかく線を引くスピードが遅くてこりゃ一生完成しないなあという感じなので、どうしたらいいかをちょっと考えている。

考えてみた結果、いくつか意識すべき点があるようだった。

上のレイヤーから引く。絵の中で上のレイヤーに当たるものから引いたほうがよくて、例えば下のレイヤーから描いてしまった場合に、後で上のレイヤーを描いたあとに、あれ?下のレイヤーのこれだと線足りて無くね?あるいは上のレイヤーに対して想定してた部分に届いてなくね?みたいなトラブルを未然に防げる。

線の途中で他の線に接している線を優先的に書く。他の線が接するように曲線を引くというのが非常に難しいということに気づいたのでなるべく避けるべきと判断している。端点のみ接する線を後回しにする。という戦略でもある。

仮想的につながっているけど見た目的にはつながっていない線をつなげてかき、あとから切る。これはそのまま。ベクターイラストツールを使っているからこそできる作戦。

---

歌うと猛烈に眠くなる。なぜだ。ひそひそ声で口ずさんだ程度でも結構くる。なんか生産性に多分に影響している気がするので一人でいきなり歌ってしまう癖はほどほどにしたほうがいいかもしれない。ちなみに大声で歌っているとかではなくて、本当にひそひそ声で音程を確認するように歌っているだけ。体力の問題?だとすればトレーニングで改善したりする?謎が多い。

---

END

2019/05/28 コード進行ファイル生成の土台完成、ログで擬似テスト、EZ-AGぽちり

コード進行ファイル生成の土台が完成した。小節の改行も安定して取れるようになった。取得漏れもなくなった。GASのAPIがいらなくなってきたのでGASの責務はこのへんにして、CSVを出力するまでを担当させようと思う。

GASのスクリプト自体は完成後GitHubのプライベートリポジトリに保管しようと思う。公開は一瞬考えたけど、悪用されたり対策されたりが不利益しかないのでやめた。まあ時間はかかったけど難しくはないはずなので誰でもスクラッチで書けると思う。

それ以降は自由にライブラリを使えるモダンなJavascriptの世界で開発するつもり。移調とか、構成音取得とか、多分いろいろやりやすいはず。

---

GASはそれはそれで便利だったし書いてて楽しかった。鶏頭で書いたコードを忘れてくんだけど、テスト対象の関数をいろんな条件で呼ぶだけの関数を作ったりして、擬似的にテストしたりした。コードの内容も再帰使ったりif文の条件が複雑になったりしがちで、それをどう単純化してくか?というプログラミングコンテストチックな内容で面白かった。実用的なコード書いててここまで深くなることが無いからとても新鮮な気持ちになった。仕事だとこんなことにはならないから不思議。とっても不思議である。

---

YAMAHAのEZ-AGぽちっちゃった。INSTRUMENT1の弱いところを補完する目的で買った。INSTRUMENT1はサイズ感とか気軽さとかは本当にすばらしいんだけど、自分がやりたいと思ってたstrumの奏法がどうにも、どうにもうまくいかない。4分音符1ストロークが精一杯でぐぬぬーという感じなので、ちゃんと弦があるやつに手を出してみたという形になる。さてどうなるのか楽しみ。
INSTRUMENT1用のプログラム無駄になっちゃいそうだな感が否めないけど、あのプログラムに入ってるノウハウはかなり流用可能なはずなので、EZ-AGのプログラムはもっと早く開発できる・・気がする。どんだけギターに時間をかけているんだw

---

END

2019/05/27 小節検知もうすこし、しゃけの絵

ちょっと文章にまとまってないですが、小節検知の話、というかスクレイピングの話

- 小節検知がかなり完成に近づいた
- タグの関係で小節2重検知してたんだけど、それが改善できた
- 終端のコードがなぜか取れないので修正したい
- 他の曲のコードでも同様に取れるのか未検証
- やればやるほどスクレイピングはめっちゃ壊れやすいバッドノウハウの塊ということを思い知りつつある。
- タグの構造ちょろっと変えられただけで簡単に死ぬ気がする。
- 構造に依存しないと取りたい情報が取れないという本質的な爆弾を抱えている
- 安定性が要求されそうなマネーフォワードとかよくやってるなこれ・・・という感想を持った

---

しゃけの絵を描いたよ

これほんとうはもっと線が書き込まれた状態だったんだけど、1本1本の線をすごい間引いたりしてちょうどいい感じを探した結果のこれになった。
間引くのも均等に間引いたりしても見た目的に面白くなくて、空いているところと敷き詰まっているところがまばらな感じになると面白い感じになる。
ということを試行錯誤している間に見つけた。メリハリって大事なのか!という再発見をした。

---

END

2019/05/26 小節検知、AI時代ほげほげ、絵

脳が溶けているので手短に

---

微々たる進捗しかなかったが、GASで小節検知ができるようになった。事実上ギターへのアサインは多分できるということなんだと思う。

GASの開発は1日空けるともう触る気がなくなることに気づいた。何が起こっているのかさっぱりわからなくなってくる。現状はログを出しまくることでなんとかしている。
自分の脳が鶏頭であることが再認識できたので、ここでも設計ちゃんとして、関数の責務分けたりしないとなあーという感想になった。

---

AI時代ほげほげ、完全に世の中で自律的に食っていきたいなら個人事業主にならざるをえないような世界観で、認めたくはなかったけどははあ・・・たしかにという感じ

っというかやばいな、読んでた時は面白く読んでたけど全然記憶に残ってない、全然咀嚼が足りなかったようだ。異常に眠いのもあるかもしれないけど。

---

もうずーーーっと今日は絵に時間を使ってしまった。絵はもう自分の中で描くプロセスがカタルシスになりつつある。ちょっと中毒性がやばい。他のことができなくなっちゃう。

近日中にTwitterに公開するために描いてる。初めての試みになるのですごく緊張している。なんかまた日和ってpixivにこもりそうだけど、ぐっと我慢しようとしている。

---

あああーもう眠すぎるのでおしまし。END

2019/05/25 コード進行スクレイピング、超AI時代ほげほげ

GASでコード進行スクレイピングしてかんたんギター用のJSONを吐くスクリプトを書いている。
不慣れなりにコード進行抽出までいけた。

昔学んだ再帰の書き方がすごい役に立った。再帰がうまく書けたおかげかわからないけどコード進行抽出だけだったら20行くらいしか無いと思う。その規模感で抽出まで表現できちゃうGASしゅごい・・・。

GASの生産性めっちゃ高い気がした。ブラウザで開発環境完結してるから?関数単位で実行できるから?これらは確実に寄与してるんだけど決定的な理由がなにかはわからない。でもフィードバックループは本当にめっちゃくちゃ早くてすごく開発しやすい。普段でもこれくらいの状態目指したいなーと思わせてくれるくらいにはいい体験だった。

今平文でそのままべーっとコード進行が出てきちゃう状態なんだけど、これをかんたんギターに読ませるために結構やることがある。優先度で並べると
- JSON
- Chord文字列のrootとtype分類
- 小節分類
- ギターフレットへのアサイン自動化
- 移調
- 調検知
みたいな感じになりそう。意外とやることあるなー。

---

超AI時代の生存戦略読んでる。うわこれすごい。まさしく仕事の開発のやる気が焼失しつつある自分にぴったりの本。いやーこんなの求めてました。よみます。具体的なこと何も書いてないけど、読み終えたら書くかも。人のしごとを奪ってく開発者と、しごとが完全にフレームに乗せられて幸せなUberの運転手みたいな人が居て、それらのどちらを、人生の各状況において選びますかね?みたいな問いがめっちゃおもしろし。はい。ちょっと書いちゃったけどちゃんと咀嚼してからもっかい書きます。

---

END