これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションの2つを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドabcXNUMXmidiです。
プログラム:
NAME
abc2midi -abcファイルをMIDIファイルに変換します
SYNOPSIS
abc2midi ファイル内 [レフナム] [-c] [-v] [-ver] [-t] [-n制限] [-CS] [-quiet] [-silent] [-Q
テンポ] [-NFNP] [-NFER] [-NGRA] [-STFW] [-OCC] [-NCOM] [-HARP] [-BF] [-TT] [-o outfile]
-CSM [ファイル名]
DESCRIPTION
デフォルトのアクションは、abcチューンごとにMIDIファイルを書き込むことです。
ファイル名付きN.mid、ここでファイルステムです
abcファイルのNは曲の参照番号です。 -oの場合
オプションを使用すると、XNUMXつのファイルのみが書き込まれます。 これが曲です
参照番号で指定するか、参照番号がない場合は指定します
が与えられ、ファイルの最初の曲。
OPTIONS
レフナム 参照番号で曲を処理する レフナム
-c チェックのみを選択
-v n 詳細オプションを選択します。ここで、nはレベルです(オプション)
-ver バージョン番号を出力して終了します
-t 曲のタイトルから派生したファイル名を選択します
-CS 壊れたリズムには2:1ではなく3:1を使用します
-静かな いくつかの一般的な警告を抑制します。
-サイレント
他のメッセージを抑制します。
-n X ファイル名の語幹の長さをX文字に制限します
-Q テンポ
で指定されていない場合、デフォルトのテンポをXNUMX分あたりの四分音符で設定します
abcヘッダー。
-NFNP 動的な表示は無視してください!f! !ff! NS。
-NFER フェルマータの兆候(Hや!fermata!など)は無視してください。
-NGRA グレースノートは無視してください。
-STFW 歌詞のテキストを別々のMIDIトラックに配置します。
-NCOM 出力MIDIファイルのコメントを抑制します。
-OCC 古いコード規則を受け入れます(たとえば、[DG] 2の代わりに+ D2G2 +)。
-BF BarFlyモード:可能であれば応力モデルを呼び出します。
-ハープ ロールオーナメント=ハーピスト用にロールが生成されます(同じピッチ)
-TT チューニングをA = 440Hzから変更します。
-o アウトファイル
出力をに書き込む アウトファイル
-CSM ファイル内
ファイルからカスタムストレスモードのセットをロードします
商品特徴
*壊れたリズム(>、<)、コード、nタプル、スラー、タイ、スタッカートノート、リピート、イン-
チューニングテンポ/長さ/拍子記号の変更はすべてサポートされています。
* R:hornpipeまたはr:hornpipeが認識され、音符のタイミングが調整されて壊れます
リズム(abはa> bに変換されます)。
* abc入力のほとんどのエラーは、出力に適切なエラーメッセージを生成します。
コンバーターは動き続けます。
* abcソースのコメントとテキストフィールドはMIDIのテキストイベントに変換されます
出力
*ギターコードが存在する場合、それらはMIDIで伴奏を生成するために使用されます
出力。
* abcに不一致の繰り返し記号がある場合、プログラムはそれらを修正しようとします。
ただし、マルチパートの曲の説明が使用されている場合、または
複数の音声が使用されています。
*カラオケMIDIファイルは、w:フィールドを使用して歌詞を含めることで生成できます。
*数値以外の音声ID、例: V:新しいabc標準のために提案されたソプラノが受け入れられます。
* xで指定された非表示の休符は、通常の休符(z)と同じように扱われます。
*装飾は、廃止された表記(例:!fermata!)または
標準バージョン2.0表記(例:+ fermata +)。
制限
*曲のX:フィールドの上からフィールドは継承されません。
ABC 構文 延長
*フォームのabc構文にいくつかの拡張機能があります
%% MIDIチャンネルn
これらの制御チャネルとプログラムの選択、移調、およびその他のさまざまな機能
abc2midi。
これらのそれぞれは、それ自体でXNUMX行に表示されるはずです。 それらのすべてはabc内で許可されています
ボディを調整します。 これらを部品表記と組み合わせて使用することにより、たとえば、次のことができます。
転置または別のキーで役割を果たします。
この構文の背後にある考え方は、他のプログラムがそれをコメントとして扱い、無視するということです
ボーマンは
%% MIDIチャンネルn
メロディーチャンネルn(1〜16の範囲)を選択します。
%% MIDIプログラム[c] n
チャネルcでプログラムn(1〜128の範囲)を選択します。 cが指定されていない場合、プログラムは
現在のメロディーチャンネルで選択されています。 最新の音源のほとんどは、一般に準拠しています
各プログラム番号の楽器タイプを定義するMIDI規格。
%% MIDIビートabcn
ノートのベロシティを選択する方法を制御します。 バーの最初の音符のベロシティはaです。
他の「強い」ノートはベロシティbを持ち、残りはすべてベロシティcを持ちます。 a、b、cは
0〜128の範囲です。 パラメータnは、どのノートが「強い」かを決定します。 時間があれば
署名がx / yの場合、各音符には位置番号k = 0、1、2 ..x-1が与えられます。
バー。 nの単位は、単位音符の長さではないことに注意してください。 kがnの倍数の場合、
メモは「強い」です。 ボリューム指定子!ppp! に!fff! 次と同等です
:
!ppp! = %% MIDIビート30 20 10
!pp! = %% MIDIビート45 35 20
!NS! = %% MIDIビート60 50 35
!mp! = %% MIDIビート75 65 50
!mf! = %% MIDIビート90 80 65
!NS! = %% MIDIビート105 95 80
!ff! = %% MIDIビート120 110
!fff! = %% MIDIビート127
%% MIDI beatmod n
記述された速度a、b、およびcによるnの増分(またはnが負の場合は減分)
その上。 指示!crescendo(!および!crescendo)! を挿入するのと同じです
%% MIDI beatmod15が発生する場所。 (または、!<(!および!<)!.を使用することもできます。)
同様に、命令!diminuendo(!および!diminuendo)! %% MIDIと同等です
beatmod-15。
%% MIDI deltaloudness n
ここで、nは小さな正の数です。 デフォルトでは、クレッシェンドとディミヌエンドの指示
ビート変数a、b、cを15ベロシティ単位で変更します。 この命令により、次のことが可能になります。
このデフォルトを値nに設定します。
%% MIDI nobeataccents
ビートノートをあまり強調していない教会オルガンなどの楽器には、
これにより、ノートに関係なく、すべてのノートに「b」ベロシティ(%% MIDIビートを参照)が強制的に使用されます。
バーの位置。 これにより、ダイナミクス(ff、fなど)を通常の方法で使用できます。
%% MIDIビートアクセント
通常の方法でメモを強調するように戻します。 (ディフォルト)
%% MIDIビートストリング
これは、強い応力と弱い応力がどこに落ちるかを指定する別の方法を提供します
バー内。 「f」は速度a(通常は強い)を意味し、「m」は速度b(中程度)を意味します
速度)および「p」は速度c(ソフト速度)を意味します。 たとえば、拍子記号が
7/8バーのXNUMX番目、XNUMX番目、XNUMX番目の音符にストレスがかかると、
フォロー中
%% MIDIビートストリングfppmpmp
%% MIDIトランスポーズn
指定された半音数だけ出力を置き換えます。 nは正または負の場合があります。
%% MIDI rtranspose n
指定された半音数による相対転置。 つまり、%% MIDIは次のように転置します
%% MIDIによってrtransposebは、a + bの移調になります。 %% MIDIトランスポーズbが生成されます
以前の移調に関係なく、b半音の移調で。
%% MIDI cn
cに対応するMIDIピッチを指定します。 デフォルトは60です。この数はXNUMXである必要があります
通常は12の倍数です。
%% MIDI grace a / b
グレースノートが占める次のノートの分数を設定します。 aは1から
b-1。 このアプローチでは、長さの長さが自然に聞こえない場合があります。
個々のグレースノートは、グレースの複雑さと長さによって異なります。
次のメモ。 別のアプローチ(現在はデフォルト)は、猶予を前提としています
ノートの長さは常に固定されています。 指定する他のアプローチを使用するには、
%% MIDI gracedivider b
ここで、bは、L:フィールドで指定された単位長を分割するパーツの数を指定します。
指図。 たとえば、b = 4およびL:= 1/8の場合、すべての猶予音符は1 /(8 * 4)またはaになります。
32番目の音符。 グレースノートが適用されているノートから時間が盗まれます。 もしも
その音符は猶予を処理するのに十分な長さではないため、猶予音符には0が割り当てられます。
期間。
%% MIDIコード名名n1n2 n3 n4 n5 n6
「名前」と呼ばれるギターコードの演奏方法を定義します。 n1は通常0で、n2、n3からn6は
ルートノートを基準にした半音単位の他のノートのピッチ。 少ないかもしれません
コード内の6音より多いが、それ以上ではない。「名前」がすでに定義されている場合、このコマンドは再
それを定義します。 他のほとんどのコマンドとは異なり、コード名の定義はどこからでも有効です
それらはabcファイルの最後に定義されています。 以下は、m、7、m7、および
maj7がまだ定義されていない場合は、設定できます。
%% MIDIコード名m0 3 7
%% MIDIコード名7 0 4 7
%% MIDIコード名m7 0 3 7
%% MIDIコード名maj7 0 4 7
%% MIDIgchord文字列
ギターコードの生成方法を設定します。 文字列は、z、c、fで構成されるシーケンスです。
bは、それぞれ休符、和音、基本音と基本音と和音の音符です。
これは、各バーの再生方法を指定します。 オプションの長さは、
z、c、f、b、例:czf2zf3。 abcにギターコードが含まれている場合、abc2midi
最初のギターコードに遭遇した後、コードとファンダメンタルズを自動的に追加します。 それ
abcで新しいコードが指定されるまで、そのコードを使い続けます。 M:フィールドが
abcで検出されると、適切なデフォルトの文字列が設定されます。
2/4または4/4時間の場合、デフォルトは次と同等です:%% MIDI gchord fzczfzcz
3/4時間の場合、デフォルトは次と同等です:%% MIDI gchord fzczcz
6/8時間の場合、デフォルトは次と同等です:%% MIDI gchord fzcfzc
9/8時間の場合、デフォルトは次と同等です:%% MIDI gchord fzcfzcfzc
gchordコマンドが拡張され、以下を含む個々のノートを演奏できるようになりました。
ギターコード。 これにより、壊れたコードやアルペジオを演奏することができます。 新しいコード
g、h、i、j、G、H、I、Jは、コードの一番下の音から始まる個々の音を参照します
(転倒の場合は必ずしもルートではありません)。 たとえば、ハ長調のコードの場合、g
Cを参照し、hはEを参照し、iはGを参照します。
%% MIDI gchord ghih
Abc2midiは、ハ長調のギターコードをCEGEにアルペジオ化します。 大文字のG、H、I、
とJは、XNUMXオクターブ下に移調されていることを除いて、同じ音符を参照します。 に注意してください
Cメジャーコードの最初の反転(「C / E」で示される)、Eは最低音になるのでg
ノートEを参照します。
他のgchordコードと同様に、音符の長さを示す数字を追加できます。 NS
以前と同じルールが適用されます。 gchordコードの任意の組み合わせを使用できます。
(fcbghijGHIJz)。
%% MIDI chordprog n
コードのMIDIインストゥルメントをnに設定します。 コマンドに文字列が含まれている場合
Octave = nここで、nは-2から2までの数値であり、これによりピッチがシフトします。
nオクターブ単位の楽器。 たとえば、%% MIDI chordprog10オクターブ= 1。)
%% MIDI bassprog n
ベースノートのMIDIインストゥルメントをnに設定します。 コマンドに文字列が含まれている場合
Octave = nここで、nは-2から2までの数値であり、これによりピッチがシフトします。
nオクターブ単位の楽器。 たとえば、%% MIDI bassprog10オクターブ= -1。)
%% MIDI chordvol n
コードノートの音量(ベロシティ)をnに設定します。
%% MIDI bassvol n
低音の音量(ベロシティ)をnに設定します。 対応するメロディボルはありません
メロディには3つのベロシティ値があるため、ビートコマンドを使用して設定します。
%% MIDI gchordon
ギターコードをオンにします(曲の開始時にデフォルトでオンになります)。
%% MIDI gchordoff
ギターコードをオフにします。
%% MIDIドロネオン
XNUMXつの音符で構成される連続ドローン(バグパイプ音楽で使用)をオンにします。 デフォルトでは
音符はAとAで、ファゴットで80のベロシティで演奏されます。これは設定できます。
以下に説明する%% MIDIドローンコマンドによって。
%% MIDIドローンオフ
連続ドローンをオフにします。
%% MIDIドローンn1n2 n3 n4 n5
ドローンのパラメーターを設定します。ここで、n1はMIDIプログラム、n2とn3はMIDIピッチを指定します。
コード内の4つの音符のうち、n5とnXNUMXはXNUMXつの音符のMIDIベロシティを指定します。
これらのパラメータを設定しない場合、デフォルトでは70 45 33 80になります。値がゼロまたは
lessは、このパラメーターの設定をそのままにしておく必要があることを示します。
%% MIDIドラムストリング[ドラムプログラム] [ドラムベロシティ]
これにより、ドラムパターンが設定されます。 文字列は、ドラムビートとドラムがあるときを決定します
プログラム値は、各ドラムストライクがどのように聞こえるかを決定します。
例%% MIDIドラムd2zdd35 38 38 100 50
文字列には、ドラムストライクの場合は「d」、残りの場合は「z」を含めることができます。 デフォルトでは音声が始まります
ドラムパターンがなく、ドラミングを有効にするには「%% MIDIdrumon」が必要です。 ドラム
'%% MIDIドラムオフ'が発生するまで、各バーでパターンが繰り返されます。 %% MIDIドラム
コマンドを曲の中で使用して、ドラムパターンを変更することができます。 このコマンドは、
ドラムはチャンネル10で鳴り、音源がGeneralMidiに準拠していることを前提としています。
標準-そうでない場合は、ドラムサウンドの代わりにトーンが聞こえる場合があります。
gchordコマンドとdrumコマンドの両方で、単一の音符の標準的な音符の長さf、c、z、またはd
L:コマンドでは設定されません。 代わりに、gchord文字列全体または
ドラムストリングはXNUMX本のバーにぴったり収まります。 言い換えれば、各音符の長さは分割されます
文字列の合計継続時間によって。 これは、たとえば、ドラムストリング「dd」が
ドラムストリング「d4d4」に相当します。 現在、分数を直接指定することはできません(例:
C3 / 2)音楽の本文で行われているように、しかしそれでも複雑な表現は可能です
リズム。 たとえば、(3ddd d / d / d / dのようなリズムを示すには、次のように記述します。
string "d4d4d4d3d3d3d3".
%% MIDIドラムバーn
%% MIDIドラムラインは、各小節で繰り返されると非常に単調に聞こえます。 回避するには
この問題は、新しいMIDIコマンド%% MIDIドラムバーn(nは小さい数)が広がります
n個の連続した小節にわたってドラムストリングを出します。 デフォルトでは、ドラムバーは1に設定されています。
既存のabcファイルとの互換性。 ドラムストリングが均等になるように注意する必要があります
ドラムバーバーの間で分割可能。 また、拍子記号は小節間で変更しないでください
ドラムバーユニットで。 (24年2008月XNUMX日のdoc / CHANGESのサンプルabcファイル。)
%% MIDI gchordbars n
このコマンドは、ドラムバー(上記)と同じように、gchordストリングをn個の連続するバーに広げます。
(サンプルは、17年2009月XNUMX日のdoc / CHANGESにあります。)
abc1.54midiのバージョン4 2004年2月XNUMX日では、和音の音符([FAc]など)は
同じ瞬間ですが、オフセットされ、10MIDI時間単位短縮されます。 したがって、最初の音符は
コード(例:F)が指定された時間だけ演奏され、10番目の音(例:A)がXNUMXから始まります。
MIDIユニットは後で、同じ量だけ短縮され、10番目のノートはさらにXNUMXを開始します
MIDIユニットは後で、さらに10ユニット短縮されます。 これは「expressivo」を紹介します
オプションであり、激しい攻撃を回避します。 (これはgchordsまたはmultivoicedには適用されません
コード。)遅延と短縮の量は、MIDIコマンドで設定できます。
%% MIDIコードアタックn
ここで、nは小さな数です。 nがゼロの場合、abc2midiは以前と同じように動作する必要があります
バージョン。 遅延nは、四分音符に480単位あるMIDI時間単位です。
ビート。 nが大きすぎてコードが短いと、プログラムが正しく動作しない場合があります。
%% MIDIランダムコード攻撃n
遅延が0とXNUMXの間で均一に分布する確率変数であることを除いて、上記と同様です。
n-1。
%% MIDIトリムx / y
ここで、xとyはXNUMXつの数値です。 このコマンドは、音符と和音のアーティキュレーションを制御します
音符の間にサイレントギャップを配置することによって。 これらのギャップの長さはx / yによって決定されます
L:コマンドで指定された単位長さ。 これらのギャップは、
同量のノート。 ノートがすでに指定されたギャップよりも短い場合は、
ギャップはノートの半分の長さに設定されます。 分数x / yは、音符の長さを示します。
abcファイルで指定されているのと同じ方法です。 実際の期間はユニットに基づいています
L:フィールドコマンドで指定された長さ。 x / yは端数に近いことをお勧めします
ゼロに。 括弧で指定されているように、スラー内ではトリミングが無効になっていることに注意してください。 あなたは回ることができます
xを0に設定して、すべての音符のトリミングをオフにします(例:0/1)。 デフォルトでは、ノートのトリミングはオフになっています
曲または音声コマンドの開始時。
%% MIDIエキスパンドx / y
ここで、xとyは、1未満の分数を定義するXNUMXつの数値です。このコマンドは、
逆の方法で音符と和音のアーティキュレーション。 これにより音符が長くなります
次の音符の先頭と重なるように分数。
%% MIDIドラムマップノートmidipitch
abcguide.txtをご覧ください。
%% MIDIptstressファイル名
このコマンドは、ファイルファイル名をPhilTaylorストレスを含むabc2midiにロードします
パラメータを設定し、abc2midiをすべてのパラメータにこれらのストレスパラメータを適用するモードにします
ノート。 このモデルは標準のビートモデルとは逆に動作するため、MIDIビート、
beatstring、beatmodコマンドは無効になります。 これはまた、ダイナミック
適応症!f! !pp! などはもう動作しません。
ストレスモデルには1つの異なる実装があります。 モデルXNUMXはメモを変更します
アーティキュレーションとMIDIトリムパラメータの制御も行います。 に戻すには
標準モデルでは、コマンド%% MIDIbeataccentsを入力します。 モデル2は、発症と発症の両方を変更します
各音符の終わりにより、音楽のビートを時間内に拡大または縮小できます。 しかし
音楽メジャーの長さは保持する必要があります。 モデル2を使用している場合は、
現在のデフォルトでは、abc2midiのランタイムパラメータのXNUMXつとして-BFを含める必要があります。
モデルは、バーを等しいセグメントに分割します。 セグメントごとに、ラウドネスまたはMIDIベロシティ
が指定され、期間乗数が指定されます。 ノートが特定のものに該当する場合
セグメント、それはそのセグメントの速度を想定し、その期間はそれに応じて変更されます。
ノートが複数のセグメントと重なっている場合、ノートはそれらの平均を想定します
セグメント値。
入力ファイルは、セグメントの数とラウドネスおよびデュレーションの乗数を指定します
セグメントごとに。 ファイルの形式は次のとおりです。 最初の値は
セグメントと各行は、特定の速度と継続時間の乗数を指定します
セグメント。 速度は127に制限されており、継続時間はXNUMX進数です。 ノート
デュレーションはノート間のギャップを変えることで変更されるため、
ノート。 これにより、音楽の通常のテンポが維持されます。 プログラムの音階、音符の長さ
ここでは1.4である最大値で割って表示します。
%% MIDIストレスモデルn
ここで、nは1または2のいずれかであり、応力モデルの実装を選択します。
bentvelocity、bendstring、controlstringなどの他の%% MIDIコマンドは
最近導入され、ファイルabcguide.txtに記述されています。
互換性の確保 WITH ドラフト STANDARD 2.0
提案された標準は、構文を使用して新しい著作権フィールドを導入します
%% abc-copyright(c)Copyright John Smith 2003
Abc2midiは、これをメタテキスト著作権タグの形式でMIDIファイルに挿入するようになりました。
著作権を処理するために、store.cのevent_specific関数に変更が加えられました
情報。 また、@ Tフィールドとしてカラオケトラック(作成されている場合)にコピーされます。
onworks.netサービスを使用してabc2midiをオンラインで使用する