MIDI (.mid)
予備知識
-
- MIMEタイプ:audio/midi
- 標準的なMIDIファイル形式.
- オーディオ形式.
- 楽器,コンピュータサウンドカード,シーケンサの制御に使われる.
- 音の開始,終了等離散的なサウンドのイベント,速さ,音響情報,楽器,サウンドバンクコードを格納する.
- MIDIはMusical Instrument Digital Interfaceの頭文字である.
- バイナリファイル形式.
- 1983年に発表された.
- MIDI Manufacturers Association (US)と社団法人音楽電子事業協会(日本)によって開発,発行されている.
Importと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"]と指定できる.
- 一般的な情報は,以下の関数ページを参照のこと.
-
Import, Export ファイルからインポートする,あるいはファイルへエキスポートする CloudImport, CloudExport クラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする ImportString, ExportString 文字列からインポートする,あるいは文字列へエキスポートする ImportByteArray, ExportByteArray バイト配列からインポートする,あるいはバイト配列へエキスポートする
Import要素
- 一般的なImport要素:
-
"Elements" ファイル中の有効な要素とオプションのリスト "Summary" ファイルの概要 "Rules" 使用可能なすべての要素の規則のリスト - データ表現要素:
-
"Sound" Soundオブジェクトとして表されるMIDIファイル "Sound",n Soundオブジェクトとして与えられるMIDIファイルの n 番目のトラック "SoundNotes" MIDIファイルの全トラックの音符 "SoundNotes",n MIDIファイルの n 番目のトラックの音符 "RawData" MIDIファイルの全トラックの生イベント "RawData",n MIDIファイルの n 番目のトラックのrawイベント - メタデータ要素:
-
"Metadata" MIDIファイルの全トラックのメタ情報 "Metadata",n MIDIファイルの n 番目のトラックのメタデータ "Duration" 長さ(秒) "Header" MIDIファイルのヘッダ "TrackCount" MIDIファイルのトラック数 - データ表現要素:
-
"Sound" SoundNoteプリミティブから成るSound式 - MIDIファイルではExportはデフォルトで "Sound"要素を使う.
- Export["file.mid",Sound[ SoundNote[0]]]は「中央ハ」の音をデフォルトの"Piano"(ピアノ)スタイルで1秒間再生するMIDIファイルを作成する.
- Wolfram言語でのピッチ(音程)指定の0は,MIDIのピッチレベル 60に対応している.
- Export["file.mid",Sound[SoundNote[pitch,t,"style"]]] は持続時間 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のインポートにデフォルトで"Sound"要素を使用する.