Giter VIP home page Giter VIP logo

nsx-39ml's Introduction

ポケットミクたんとイチャイチャKit

学研 NSX-39(ポケットミク)とお気軽に遊ぼう!

インストール

用意するもの:Ruby(1.9.3以降)

  1. gemからbundlerをインストールして下さい。
  2. nsx-39mlを展開して下さい。
  3. nsx-39mlディレクトリに移動して下さい。
  4. bundle installしてmidilibをインストールして下さい。

マークアップ言語 -> MIDIファイルコンパイラ(nsx-39ml.rb)

YAMLベースのマークアップ言語(NSX-39MLと呼びます)で記述した楽曲データからMIDIファイル(*.mid)を生成します。 MIDIに詳しくない or いちいち歌詞エクスクルーシブを定義しなくてもポケットミクに歌ってもらう事が出来ます。

使い方

付属のsample.39mlからsample.midを作る時は下記の様にします。

./nsx-39ml.rb sample.39ml sample.mid

NSX-39MLの文法はsample.39mlから編み出して下さい。

Rubyヘルパーライブラリ(nsx39helper.rb)

NSX-39MLはYAMLをベースとしているため、各種プログラミング言語から簡単に扱えます。 然しながらYAMLを0から構築するのは案外煩雑なので、Ruby用のヘルパーライブラリを用意しています。

使い方

nsx39helper.rbをrequireして下さい。 使い方はソースを読むかnsx-39_clock.rbを参照して下さい。

サンプルプログラム(nsx-39_clock.rb)

実行するとポケットミクが現在時刻を教えてくれます。 (要ALSA。LinuxっぽいOSで実行して下さい。)

使い方

ポケットミクを接続して、オプション無しで実行して下さい。

./nsx-39_clock.rb

ライセンス

よく分からないですがGPLv2としときます。

NSX-39MLの書き方

トラック

NSX-39MLには3種類のトラックが定義出来ます。

  • conductor テンポなど、楽曲全体に関わるパラメータを定義します。

  • miku 我らがミクたんを歌わせるためのトラックです。 チャンネルが自動的に1に設定されます。

  • channel2 〜 channel16 楽器用のトラックです。 channel10はドラム専用です。 このトラックはミクの発音遅延と折り合いを付けるため、頭に12/480の遅延が入ります。

` conductor:

  • { ......... }

miku:

  • { ......... }

channel2:

  • { ......... } `

イベント

トラックに定義出来る各種情報です。

  • note 音を発声します。

  • key 音の高さを指定します。 CDEFGAB + オクターブもしくは、R(休符)が指定出来ます。

  • length 音の長さを指定します。  1:全音符、2:2分音符・・・・となります。

  • lyric 歌詞を指定します。 指定可能な歌詞はポケミクのマニュアルを見て下さい。 ひらがなのみ有効です。

  • vibrate ビブラートを掛けます。 ビブラートの強さを指定します(0〜127)

  • tone(program) 音色を変更します。

*tone_no 音色の番号を指定します(1〜128)

  • control コントロールチェンジを発行します。

*type コントロールチェンジ番号を指定します。

  • value コントロールチェンジの値を指定します。

  • exclusive システムエクスクルーシブを発行します。

  • data 頭のF0と末尾のF7を除いたバイト列を、整数の配列形式で指定します。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.