/*
こんにちは、Dj Hinoです。
TWM2に読み込ませて使える追加音色をいくつか作ってみました。

*注意*
この音色集はすべて僕がシンセで合成した音なので、音色の著作権は問題ありません。
ご自由に使っていただいて大丈夫なのですが、何か起きても自己責任でお願いします。

*DLSを読み込ませる方法*
1.僕のHPにDLSをあげたので、それをダウンロード
ttp://hinogarage.sakura.ne.jp/dls.html
2.hinoSynthPack1.DLSをTWM2のDLSフォルダに入れる
3.TWM2を起動する

*音色説明*
-シンセ音色-
@ 20,20,1
Boo Bass
ブーみたいな音のベース

@ 20,20,2
Bee Bass
ビーみたいな音のベース

@ 20,20,3
SUPER SAW
トランスやEDMで幅広く使える"あの"リード音色がついにTWM2で手に入る

@ 20,20,4
Vintage Synth
オシレータ一発の男らしいノコギリ波

@ 20,20,5
boo Synth
ブーみたいな音のクセのあるシンセ

@ 20,20,6
bee Synth
ビーみたいな音のクセのあるシンセ

@ 20,20,7
JP Brass
-THE EUROBEAT-な"あの"ブラス音色がついにTWM2で手に入る

-ドラム音色-
@ 20,20,100
Vintage Synth Drum Kit
ビンテージな感じのシンセドラム
バスドラム、ハンドクラップ、クローズハイハット、オープンハイハットが入っています


上記音色はほぼステレオサンプリングなので音によっては左右に広がりがありますが、その代わりパンが効きません。
モノラルな代わりにパンを振れるようにしたバージョンも入ってます。
音色番号「@ 20,20,○」を「@ 20,21,○」にすることで使えます。

Direct Music ProducerというDLSの作成が可能なソフトが一時期配布終了していてDLS作成が不可能な状態だったんですが、
最近再配布が始まったようで嬉しくなりました。
追加音色、作り方を一度覚えると意外と簡単です!

*/

INT A = 0;//←0にするとEDMっぽいものが流れます。それ以外を入れるとユーロビートブラスのサンプルが流れます

/*
DLSの作り方(適当)

*注意*
この方法を実行するのはくれぐれも自己責任でお願いします。
僕もこのソフトをほとんど使いこなせてないですし、なにせ古いソフトなので、正直何が起こるか分からないです。
でもこのままDLS作成法が消えていくのも悲しいので、自分用に纏めたのをのせておきます。


音ネタを用意する。16bitまでのWAVファイルに対応してるっぽい。
ステレオ/モノラルどちらでもよい。

DirectMusic Producerをダウンロードする。
ダウンロードしたdx81musicproducer.exeを実行→出てきたフォルダDMusProdを開きSetup.exeを実行。

DirectMusic Producerを開き、最初の画面で左上File→New...をクリック

Create New File(s)でDLS Collectionを選択してOK
*この動作は新しいDLSを作るときに行う

作成されたDLS Collection.dlpのツリーを開いていき、
Wavesを右クリック→Insert Wave...でDLSにしたい音色を選択
*この動作は音ネタを追加するときに行う

次にInstrumentsを右クリック→Insert Instrument
するとInstrumentsのツリーにInstrument: 0,1,0が作成される
*この動作は新しい音色を追加するときに行う

Instrument: 0,1,0をダブルクリック
すると様々なパラメータがいじれるようになる

*音色作成の細かなテク
1.取りあえずInstrument ArticulationのDLS1のチェックを外す。
DLS1はステレオに出来ないとか…だったと思う。

2.RegionからWaveで音色にしたい音ネタを選ぶ。

3.Rootは音ネタをどの音程に配置するかを決める。
例えば2オクターブ低いドの音で録音した音ならば「C3」というように設定する。

4.ピアノ画面の上にあるバーは伸び縮み出来る。ここで指定した範囲のみ音が鳴る。

5.デフォルトではモノラル音色の設定なので、ここにステレオサンプリングの音を入れてもモノラルになってしまう。
もしステレオの音に変更したい場合、音のバーを右クリック→PropertiesからMultichannelにチェックを入れて
Stereoになっていることを確認して閉じるとステレオになる。
ただしこれをやると代償としてパンが効かなくなるので、色々と考慮のしどころである。
(ちなみに僕はステレオ版とモノラル版両方用意して解決する)

5.ピアノ画面上で右クリック→Insert Regionをクリック。
これで新しく出たバーをダブルクリックすると別の音色を追加で入れることも可能。
欄が足りなくなったら右クリック→Insert Layerで増やせる。
(これ結構重要テク。
一つの音ネタで全音域カバーさせようとしても、高い音や低い音では変な音になってしまう。
これを防ぐため、別の音域で録音した音も追加して範囲分けし、音程を変えても自然に聴こえるようにする。
この応用でドラムも指定できる。ただしRoot指定をそれぞれ行うのを忘れずに。)

6.InstrumentのMSB,LSB,Patchは音色番号の指定。既存の音色と被らないように指定する。
その方法は少し分かりにくい。
サクラの音色番号は「@ Patch+1, MSB, LSB」となっていて、並びが違う上にPatchが1ずれている。
例えばサクラで「@ 10,20,30」になるよう指定したいとすると、
DMPでは「MSB = 20, LSB = 30, Patch = 9」と指定すれば良い。

7.Drumsにチェックを入れると、ドラムトラック専用音色になる。

8.Instrument Articulationのカラフルなとこは、音の音量やピッチなどの時間変化などが設定できる。
例えばピアノやシンバルのようにノートオフしても余韻が残るようにしたい場合、青のReleaseを長くする。

9.ループポイントの指定の仕方は忘れた。
仕方がないので、長ーく録音した音をそのまま入れてる。


最後に、あらかた出来上がったらDLSとして保存する。
File→Runtime Save as...でDLSとして保存する。
閉じる前に、プロジェクトもちゃんと保存しておく。
(作ったDLSをTWM2で聴いたとき、大体はイメージと違っていたりして手直ししたくなるから)


*番外編*
DLSをいちいちダウンロード出来るようにしたりせず済むように、MMLの中にDLSデータを埋め込む方法もある。
TWM2作者さんのホームページからTW-MUSIC2関連ツール→「DLS→MML変換」というやつ(一番下のサクラMMLに変換のやつ)を
ダウンロードし、実行。
作ったDLSをドラッグ&ドロップするとMMLファイルが作成されるのでそれを開く。
中身の文字列を、DLSを埋め込みたいMMLにコピペし、あとは普通のDLS同様に音色番号を指定してMMLをTWM2で実行すれば
作ったDLSの音で再生される。
ただし、容量の大きなDLSだとデータが絶望的に長くなり、コンパイルがめっちゃくっちゃ重たい!ので、
ちょっとした音色を使いたい用途なら大活躍なのですが、それ以外は普通にDLSを用意した方が良いかも…


*/

IF(A==0){
ResetGS

Tempo 130

CH(11) SysEx$ = f0,41,10,42,12,{40,1a,15,02},f7;
CH(12) SysEx$ = f0,41,10,42,12,{40,1b,15,02},f7;
CH(13) SysEx$ = f0,41,10,42,12,{40,1c,15,02},f7;
CH(14) SysEx$ = f0,41,10,42,12,{40,1d,15,02},f7;

//CuePoint={"TwmReverb(127,117,70,127)"}
//Include(delay.h)
//Include (unison.h)
//Include(groove.h)
//MidiDelay({},3,!8)
//OctaveUnison (
//Swing16(6)


TR 1
@ 20,20,3
V 127
v 127
EP 127
q 80
REV 20
CHO 30
[
['"bb`d'8.]
['"f+f+a'8.]
[6'"ggb'8.]
r8
['d`d`f+'8.]
['"aa`c+'8.]
[6'"bb`d'8.]
r8]


TR 2
@ 20,20,2
V 127
v 127
EP 110
q 90
REV 0
CHO 0
<<<
S{[32EP.T(40,127,!8)r]}
[b8.b8.f+8.f+8.g8.g8.g8.g8.g8.g16`g16`a16`b16``c+16
`d8.`d8.a8.a8.b8.b8.b8.b8.b8.b16`b16`a16`g16`f+16]



TR 3
@ 20,21,4
V 127
v 127
EP 60
REV 0
CHO 0
q 100
P 127
[
'"bdf+'4.
'"f+"ac+'4.
'"g"bd'4^2.r
'df+a'4.
'"ac+e'4.
'"bdf+'4^2.r]

TR 4
@ 20,21,4
V 127
v 127
EP 60
REV 0
CHO 0
q 100
P 0
t3
[
'"bdf+'4.
'"f+"ac+'4.
'"g"bd'4^2.r
'df+a'4.
'"ac+e'4.
'"bdf+'4^2.r]






TR 10
@ 20,21,100
V 127
v 127
EP 110
REV 0
CHO 0
BR 100
p 64
P 64
<<
Key 0

[8[4c]]


TR 11
@ 20,21,100
V 127
v 127
EP 127
REV 10
CHO 0
P 64
q 100
<<
[16rd+]


TR 13
@ 20,21,100
V 127
v 127
EP 110
REV 0
CHO 0
P 90
<<
[8[4f+8b-8]]


}ELSE{


ResetGS

Tempo 155

CH(11) SysEx$ = f0,41,10,42,12,{40,1a,15,02},f7;
CH(12) SysEx$ = f0,41,10,42,12,{40,1b,15,02},f7;
CH(13) SysEx$ = f0,41,10,42,12,{40,1c,15,02},f7;
CH(14) SysEx$ = f0,41,10,42,12,{40,1d,15,02},f7;

//CuePoint={"TwmReverb(127,117,70,127)"}
//Include(delay.h)
//Include (unison.h)
//Include(groove.h)
//MidiDelay({},3,!8)
//OctaveUnison (
//Swing16(6)


TR 1
@ 20,20,7
V 127
v 127
EP 127
q 96
REV 0
CHO 0

[e16e16b16e16a16e16b16e16
a16b16a16g8e16d16e16
d16d16b16d16a16d16b16d16
a16d16b16d16a16g16f+16d16

e16e16b16e16a16e16b16e16
a16b16a16g8e16d16e16
d16d16b16d16a16d16b16d16
`d16`c16b16a8g16f+16g16]

TR 5
@ 39,1
V 127
v 127
EP 127
REV 0
CHO 0
q 100
<<<
[4
[e8`e8]
[c8`c8]
[g8`g8]
[d8`d8]]

/*
TR 6
@ 39,8
V 127
v 127
EP 127
REV 0
CHO 0
q 80
[[r8'egb'8]
[r8'ceg'8]
[r8'gb`d'8]
[r8'df+a'8]]

*/

TR 10
@ 20,21,100
V 127
v 127
EP 110
REV 0
CHO 0
BR 100
p 65
P 64
<<
[[16c]]


TR 11
@ 20,21,100
V 127
v 127
EP 110
REV 10
CHO 0
q 100
BR 100
p 66
<<
[[8rd+]]


TR 13
@ 20,21,100
V 127
v 127
EP 100
REV 0
CHO 0
P 90
<<
[[16f+16f+16b-8]]

}