Help us understand the problem. What is going on with this article?

本当の意味でGetWild駆動開発を行う方法

More than 3 years have passed since last update.

Get Wild Advent Calendar 2016 の7日目です。

GetWildから開発を始めるにはどうしたらいいのか?

GetWildといえば印象的なイントロがまずはみなさん頭に浮かぶのではないでしょうか。シティハンターのEDはこのイントロ部分が本編に被る形で曲が始まります。というわけで同様にプログラム開発においてもGetWildのイントロを実際に弾くところから始められるようにしました。

具体的にはMIDIキーボードでGetWildのイントロを間違えずに弾けるとリポジトリからpullするようにします。

用意するもの

  • node.jsが動く環境
  • MIDIキーボード(今回はNovation LaunchKey Mini MK2を使いました)
  • MIDIで音の出せるアプリ(GarageBandやableton liveなど)

node-midiを使うと比較的簡単にMIDI信号を取り扱うことができるので今回はこちらを使います。

GetWild駆動してみる

こんな感じのプログラムをまずは用意します。
intromelodyの値はMIDIキーボードによってマッピングが異なりますのでお手持ちの環境に合わせてください。
誤動作防止のため、一定の強さで弾かないと受け付けないようにしています。

getwild.js
var midi = require("../midi.js");
var intromelody = [63, 61, 59, 63, 61, 59, 59, 59, 61, 63, 63, 64, 63, 59, 63, 63, 61, 59];
var introrefrain = [];

var input = new midi.input();
input.on('message', function(deltaTime, message) {
    var mydream = message;

    if (mydream[0] == 144 && mydream[2] > 50) {
        introrefrain[introrefrain.length] = mydream[1];
        console.log(introrefrain);
        console.log(intromelody);

        var yourpain = JSON.stringify(intromelody);
        var mypain = JSON.stringify(introrefrain);

        if (yourpain == mypain) {

            var exec = require('child_process').exec;
            exec('git pull', function(err, stdout, stderr) {
                console.log(stdout);
            });

            console.log('Get wild and tough!');
        } else {
            return false;
        }

    }
});
input.openPort(0);

音の出るアプリケーションを起動する

せっかくなので音の出るアプリケーションを使って実際に音を出して弾きましょう。MacならGarageBandが入ってると思いますので起動して適当にお好きな音源を選択してください。この時実際にMIDIキーボードを叩いて音が出ることも忘れずに確認しておいてください。

あとは本能の赴くままにGetWildするだけ

$ node getwild.jsで実行してイントロをうまく弾ければリポジトリがpullされて開発が始められます。

最後に

Get Chance and Luck!!

hoosoi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした