MiRm開発秘話
description

MiRm開発秘話

実は僕、haniokasai氏主導のプロジェクト、「MiRm」の開発メンバーをやらせてもらっています。 そこで生まれた開発秘話や小話などをしていきたいと思います! ここに記載されていないことでも、コメントしてくだされば答えます! 開発期間は? 大体半年くらいですね。2019年の6月あたりに開発を開始して、11月下旬にリリースを迎えることができました。 開発の経緯は? 前システムは約2年間運用され、ほとんどバグがなく稼働していました。しかしながら、機能の追加しすぎによる内部構造の複雑化、ユーザー数増加による予期しない動作の増加、セキュリティ面での不安などからシステムの再開発を決定しました。 新システムの開発では、旧システムのコードを一切使用することなく、一からプログラムを書き直しています。 開発の分担は? 新システムはhaniokasai氏と自分の2人だけで全てを実装しました。Webフロント
[Nukkit] サーバー内でMIDIを再生してみた
description

[Nukkit] サーバー内でMIDIを再生してみた

こんばんは。5月なのに暑すぎます。溶けます。令和ちゃん、早く新暦の生活に慣れてね。 てなわけで、Nukkitサーバーの中でMIDIファイルを再生させてみました。技術的な説明とかをちょこっとしてみようと思います。 ロード 1.まず、Javaに標準でついているJavaSoundAPIのmidiパッケージを用いてMIDIのメタデータと各トラックを取得します。 2.Oracleのドキュメントをもとにテンポと1tickあたりの秒数を計算し、保存しておきます。 再生開始 1.再生コマンドを送信 2.スレッドプールからトラックの数(だいたい数個~十数個)だけスレッドを取得し、各トラックを再生するスレッドを定義してリストに保存します。 3.保存しておいたスレッドを同時に実行していきます。(再生) トラックの再生 MIDIEvent…一つの音を管理するクラス 1.トラックにあるMIDIEvent