cat2151 / easy-web-midi-sequencer-template

webpageを開くだけでMIDI楽器を鳴らせる、最小規模のソースコード、テンプレート用

Home Page:https://cat2151.github.io/easy-web-midi-sequencer-template/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

easy-web-midi-sequencer-template

Demo

  • Demo
  • 音を鳴らすには、Usageを参照ください

Features

  • webpageを開くだけでMIDI楽器を鳴らせます
  • バックグラウンドでスロットリングされない
  • ソースコードをテンプレートとして利用しやすい、小規模、シンプル、easyな構成

Requirement

  • Windows + loopMIDI + ブラウザ
    • 物理Midi Deviceを鳴らせる場合は、loopMIDIなしでもOK
    • 他の環境でも、Midi Deviceさえあれば利用可能な想定です
    • Chromeで動作確認しています

Usage

  • loopMIDIのinstallと、port設定
    • portは一つ + ボタンで登録すれば十分です。
    • うまくいかない場合はOS再起動もお試しください。
  • MIDI楽器の接続
    • Shared Piano など、Web MIDI を受信できるアプリを開いておきます
  • 演奏

Installation

  • cloneのちソースを開いてLive Serverを立ち上げる等で、すぐ改造できます

Note

pageを開くだけでMIDI楽器を鳴らせます

  • Web MIDI の先頭portに Note On を送信します
    • Shared Piano を開いておけばすぐ音が出て確認できます
      • (Shared Pianoは Web MIDI を受信できます)

バックグラウンドでスロットリングされない

ソースコードをテンプレートとして利用しやすい、小規模、シンプル、easyな構成

  • テンプレートとしてのソースコード利用を楽にすることを優先しています。

MIDI OUTするだけなので、発音部分は別アプリ

  • 逆を言えば、
    • Midi Device からの入力を受け付けるアプリ(MIDI IN のあるアプリ)なら、なんでも鳴らせます

複数 Midi Device があったときは先頭決め打ちでMIDI出力する

  • 以下は今後の課題です
    • ドロップダウンリストで選択(Shared PianoMidi Device 設定のように)
    • 自動設定
      • 例えば当アプリを seq_out という識別子で識別として、それを含むportをデフォルトで設定する

当projectが目指すこと

  • MIDI OUT する
  • webpageを開くだけで演奏開始する
  • 連続的に Note On を送信する
  • シンプルで利用しやすいソースコードにする
  • 演奏規模は最低限にする、例えばド、ミ、ソのランダムフレーズ
  • 鳴らなくなったら、できるだけ鳴るように行動することを優先します

当projectが目指さないこと

  • Web MIDI 未対応ブラウザや、Midi Deviceを検出しなかった場合に、Web Audioで代替の音を鳴らす方法の検討と実装と提供
  • Web MIDI 未対応ブラウザの調査と対応
  • webpageを開くだけで Note On 送信開始してよいものか?ユーザー操作を待つことを必須にするか?お作法は?などの調査と考察
  • スロットリング問題の調査と解決
  • Note On 以外の MIDIメッセージ の送信サンプル
  • 和音を鳴らす、ch.1だけでなくch.2~ch.16で鳴らす、複数MIDI portを利用して32ch.演奏する、その他
  • 豊富なDemo Songs、別のフレーズにする、フレーズを洗練する、その他
  • 鳴らす楽曲データをtextarea等からedit可能にする
  • スタンダードMIDIファイルを鳴らす
  • MMLを鳴らす
  • コード進行を鳴らす(chord2mmlで生成 )
  • その他、各種音楽ファイルを鳴らす

About

webpageを開くだけでMIDI楽器を鳴らせる、最小規模のソースコード、テンプレート用

https://cat2151.github.io/easy-web-midi-sequencer-template/

License:MIT License


Languages

Language:JavaScript 86.2%Language:HTML 13.8%