MIDI (.mid)

MIMEタイプ:audio/midi
標準的なMIDIファイル形式.
オーディオ形式.
楽器,コンピュータサウンドカード,シーケンサの制御に使われる.
音の開始,終了など離散的なサウンドのイベント,速さ,音響情報,楽器,サウンドバンクコードを格納する.
MIDIはMusical Instrument Digital Interfaceの頭文字である.
バイナリファイル形式.
1983年に発表された.
MIDI Manufacturers Association (US)と社団法人音楽電子事業協会(日本)によって開発,発行されている.
  • ExportはMIDIファイル形式規格を完全にサポートする.
  • ImportはMIDIファイル形式のバージョン0と1をサポートする.

ImportとExportImportとExport

  • Import["file.mid"]はMIDIファイルをインポートし,サウンドオブジェクトを返す.
  • Export["file.mid",expr]はサウンドオブジェクトをMIDIにエキスポートする.
  • Import["file.mid",elem]はMIDIファイルから指定された要素をインポートする.
  • Import["file.mid",{elem,suba,subb,}]は子要素をインポートする.
  • Import["file.mid",{{elem1,elem2,}}]は複数の要素をインポートする.
  • インポート形式はImport["file","MIDI"]またはImport["file",{"MIDI",elem,}]で指定できる.
  • Export["file.mid",Sound[]]SoundNoteプリミティブから成るSound式から,MIDIファイルを作成する.
  • Export["file.mid",expr,elem]expr が要素,elem を指定するものとして扱うことにより,MIDIファイルを作成する.
  • ファイル形式は明示的にExport["file",Sound[],"MIDI"]と指定できる.
  • Exportについての一般的な情報は,関数ページを参照のこと.
  • ExportStringはMIDI形式をサポートしている.

要素要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Rules"要素とオプションのそれぞれの規則の完全なリスト
    "Options"オプション,属性,設定の規則のリスト
  • データ表現要素:
  • "Sound"Soundオブジェクトとして表されるMIDIファイル
    "Sound",nSoundオブジェクトとして与えられるMIDIファイルの n 番目のトラック
    "SoundNotes"MIDIファイルの全トラックの音符
    "SoundNotes",nMIDIファイルの n 番目のトラックの音符
    "RawData"MIDIファイルの全トラックの生イベント
    "RawData",nMIDIファイルの n 番目のトラックのrawイベント
  • メタデータ要素:
  • "Metadata"MIDIファイルの全トラックのメタ情報
    "Metadata",nMIDIファイルの n 番目のトラックのメタデータ
    "Duration"長さ(秒)
    "Header"MIDIファイルのヘッダ
    "TrackCount"MIDIファイルのトラック数
  • データ表現要素:
  • "Sound"SoundNoteプリミティブから成るSound
  • MIDIファイルではExportはデフォルトで 要素を使う.
  • Export["file.mid",Sound[ SoundNote[0]]]は「中央ハ」の音をデフォルトの「Piano」(ピアノ)スタイルで1秒間再生するMIDIファイルを作成する.
  • Wolfram言語でのピッチ(音程)指定の0は,MIDIのピッチレベル 60に対応している.
  • Export["file.mid",Sound[SoundNote[pitch,t,"\"\!\(\*\nStyleBox[\"style\", \"TI\"]\)\!\(\*\"\\\"\"\)"]]]は持続時間 t と楽器のスタイルを指定する.以下の一般的なMIDIスタイルがサポートされている:
  • "Accordion""Agogo""AltoSax""Applause"
    "Atmosphere""Bagpipe""Bandoneon""Banjo"
    "BaritoneSax""Bass""BassAndLead""Bassoon"
    "Bird""BlownBottle""Bowed""BrassSection"
    "Breath""Brightness""BrightPiano""Calliope"
    "Celesta""Cello""Charang""Chiff"
    "Choir""Clarinet""Clavi""Contrabass"
    "Crystal""DrawbarOrgan""Dulcimer""Echoes"
    "ElectricBass""ElectricGrandPiano""ElectricGuitar""ElectricPiano"
    "ElectricPiano2""EnglishHorn""Fiddle""Fifths"
    "Flute""FrenchHorn""FretlessBass""FretNoise"
    "Glockenspiel""Goblins""Guitar""GuitarDistorted"
    "GuitarHarmonics""GuitarMuted""GuitarOverdriven""Gunshot"
    "Halo""Harmonica""Harp""Harpsichord"
    "Helicopter""HonkyTonkPiano""JazzGuitar""Kalimba"
    "Koto""Marimba""MelodicTom""Metallic"
    "MusicBox""MutedTrumpet""NewAge""Oboe"
    "Ocarina""OrchestraHit""Organ""PanFlute"
    "PercussiveOrgan""Piano""Piccolo""PickedBass"
    "PizzicatoStrings""Polysynth""Rain""Recorder"
    "ReedOrgan""ReverseCymbal""RockOrgan""Sawtooth"
    "SciFi""Seashore""Shakuhachi""Shamisen"
    "Shanai""Sitar""SlapBass""SlapBass2"
    "SopranoSax""Soundtrack""Square""Steeldrums"
    "SteelGuitar""Strings""Strings2""Sweep"
    "SynthBass""SynthBass2""SynthBrass""SynthBrass2"
    "SynthDrum""SynthStrings""SynthStrings2""SynthVoice"
    "Taiko""Telephone""TenorSax""Timpani"
    "Tinklebell""TremoloStrings""Trombone""Trumpet"
    "Tuba""TubularBells""Vibraphone""Viola"
    "Violin""Voice""VoiceAahs""VoiceOohs"
    "Warm""Whistle""Woodblock""Xylophone"
  • パーカッションの音はSoundNote["perc",t]の式で表される.以下が可能なパーカッションスタイルである:
  • "BassDrum""BassDrum2""BellTree""Cabasa"
    "Castanets""ChineseCymbal""Clap""Claves"
    "Cowbell""CrashCymbal""CrashCymbal2""ElectricSnare"
    "GuiroLong""GuiroShort""HighAgogo""HighBongo"
    "HighCongaMute""HighCongaOpen""HighFloorTom""HighTimbale"
    "HighTom""HighWoodblock""HiHatClosed""HiHatOpen"
    "HiHatPedal""JingleBell""LowAgogo""LowBongo"
    "LowConga""LowFloorTom""LowTimbale""LowTom"
    "LowWoodblock""Maracas""MetronomeBell""MetronomeClick"
    "MidTom""MidTom2""MuteCuica""MuteSurdo"
    "MuteTriangle""OpenCuica""OpenSurdo""OpenTriangle"
    "RideBell""RideCymbal""RideCymbal2""ScratchPull"
    "ScratchPush""Shaker""SideStick""Slap"
    "Snare""SplashCymbal""SquareClick""Sticks"
    "Tambourine""Vibraslap""WhistleLong""WhistleShort"
  • ImportはMIDIのインポートにデフォルトで要素を使用する.

例題例題すべて開くすべて閉じる

  (6)  (6)

1.75秒間再生される音符3個のシーケンス:

In[1]:=
Click for copyable input
Out[1]=

これをMIDIファイルにエキスポートする:

In[2]:=
Click for copyable input
Out[2]=

和音をMIDIにエキスポートする:

In[3]:=
Click for copyable input
Out[3]=
In[4]:=
Click for copyable input
Out[4]=

パーカッションの音をMIDIにエキスポートする:

In[1]:=
Click for copyable input
Out[1]=

セルオートマトンのデータを音にマッピングしてWolframTones スタイルの部分的な音楽を作成する:

In[1]:=
Click for copyable input
Out[1]=

MIDIにエキスポートする:

In[2]:=
Click for copyable input
Out[2]=

基本的なアルゴリズムベースの作曲をして,それをMIDIにエキスポートする:

In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=

MIDIファイルをSoundオブジェクトとしてインポートする:

In[1]:=
Click for copyable input
Out[1]=

MIDIファイルに含まれるSoundNoteオブジェクトをインポートする:

In[1]:=
Click for copyable input
Out[1]=

MIDIファイルに含まれる音符を,ハープの代りにオルガンでもう一度演奏する:

In[2]:=
Click for copyable input
Out[2]=
2007年に導入
(6.0)
| 2012年に修正
(9.0)