Nimで作りたいものをつらつら書くだけ

この記事は Nim Advent Calendar 2018 - Qiita の22日目の記事です。

皆さんバッチリNimに関するノウハウを書いていらっしゃって誠に恐縮ですが、私は「Nimで作りたいもの」をつらつら描きます。

この記事の筆者はPythonなんていう生ぬるい言語を触りながら、C++1xの仕様の改良に 「おや、これ、私もC++できるのでは?」 という妄想をするにわかNimファンです。

それでもなぜNimを使おうとするのか

言わんでも分かるでしょう。

Features | Nim を真に受けてますよ。

だからこんなPythonなんていう生ぬるい言語使いが、 「Cythonもいいなあ」 と脇見しながらNimを使ってみようかと思ってしまってるのですよ。

本題

さて、本題です。

もう作りたいものが多すぎます。これから書くことはただの絵空事です。妄想です。作るとは言ってないです。

CoderDojo受付システム Touryumon (登竜門)

私は趣味で CoderDojoSapporo DojoSapporo East Dojo で子どもたちにプログラミングを布教してます。

その活動自体は特に問題ないですが、ちょっと不満がプログラミングを教える人たちの上がっている事としては、 「 Connpass もいいっちゃ良いのだけど、ちょっとかゆいところに手が届かないのだよなあ」 ということで。

作るか。

と思ったのですよ。当初の予定では。

良い点

なんでって、そりゃあ、

  • コンパクトなバイナリを吐き出せる → 環境構築がそこまで手間がかからないのでは?
  • Pythonに近い文法だから、割といけるのでは?
  • さくらインターネットさんから CoderDojo Japan に提供して頂いているクラウドマシンでも十分に動くものを作りたい。

悪い点

と思いましたが、自分でちょっと「待った」をかけました。

  • Pythonに近い文法とはいえ、ちょっと難易度高いのでは?
  • やっぱ自分、そこまでNimのこと分かってないわ(先週までプラグマの使い方が分からなかった)
  • 何より 子どもたちにも触って遊んでほしい ので、ちょっとハードルが高すぎるのでは……!

いや、Nim教えればNimできるようになるかもしれませんが、俺がNim分かってないんだもん。難しくね?

ということで、Nimでの開発を断念し、サーバーサイドはPython, フロントサイドは CoffeeScriptElm 使うかなーと漠然と考えております。

Linuxでも動作するBMSプレイヤー

お、BMSをご存じない? BM98もご存じない? きっと1990年世代じゃないか、もっと素敵なコンピューターライフを送ってたのですね!

簡単に言うと、パソコンでできるコナミ音ゲーっぽいやつです。

これの売りは 「譜面・楽曲データを作れること」 です。

BMSのファイルフォーマットは 公開されております 。やねうらお先生とNDK先生は偉大ですね!

更に言うと、最近 BMSON という JSONベースのファイルフォーマットも出てきたので、27歳派遣プログラマのおじさんは、正直「おぅ……」ってなってます。

なんで作りたいかって、そりゃああなた、中学時代に O-SE さんのサウンドとか nixx さんのサウンド聞いて、エレクトロミュージックにドハマリした人間としてはなあっ!

なお、ライブラリ(エンジン?)としては frag を利用する予定です。

「知ってるか? 手榴弾はピンを抜いた瞬間にお前の友達ではなくなるんだぞ」 「 `Step Mania <https://www.stepmania.com/>`_ は調査したのか?」

MMLファイルフォーマットをMIDIに変換して音を鳴らすなにか

MMLという音楽記述言語というのかフォーマットがあるんですよ。

ぱっと探したところ、Linuxでそれの音を鳴らせるものはないんですよ。

個人的には速攻でサイン波でも矩形波でもいいからメロディ鳴らせたらいいなと壮大な夢を考えましたが、 まずMIDIに落とすところからやるかと思ったり。

既にありそうですけどね。


なんかここに上げたもの既にありそうなんですよねえ……。

後は気が向いた時にワンボード・マイコンとかのプログラミングとかしてみたいですね。