DTMのソースを表示
←
DTM
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Navi|[[音楽]] > 教則本 > '''DTM'''}} ==DTM入門== [[w:デスクトップミュージック|DTM]](DeskTop Music)はコンピュータを使って音楽を作る活動の事です。 DTMは伝統的に高価な機材とソフトウェアを用いて行う活動とされており、廉価な代替物が手に入れにくかった分野です。しかし、現在では[[w:MIDI|MIDI]]の作成から音を出力する過程までが比較的手軽にできるようになっている(もちろん機材があればその過程が簡潔かつより高度な編集が可能であることはいうまでもありません)。 ==準備== 現在、企業や有志の作成した作曲ソフトに音源を読み込ませ、音を鳴らし作曲するという過程が主流となっています。ここでは作曲ソフトのことを'''DAW'''(Digital Audio Workstation)と呼びます。 ===DAW=== DAWについてはある程度機能の揃っているソフトであれば何を使ってもよいですが、人気のあるものを使ったほうが何かあったときに情報が集まりやすく、また機能が充実していることが多いためおすすめです。音楽関連企業によるアンケート<ref>[[https://sleepfreaks-dtm.com/dtm-materials/daw-ranking-2024/|sleepfreaks, 2024年01月03日公開, 03月16日閲覧,【2024年版】最新の人気DAWランキング ベスト10を発表| DTMer3867人が回答]]</ref><ref>[[https://sonicwire.com/news/blog/2023/03/twitter-daw-02|SONICWIRE, 2023年3月17日公開, 03月16日閲覧, Twitterアンケート「第二回 メインで使用しているDAWは何ですか?」結果発表!]]</ref>ではCubaseやStudio One、Logic Proが人気であるという結果が出ています。有料が多いですが、CakewalkやREAPERなど無料であったり制限付きの無料といったソフトも存在しているので、自分にあったDAWを探してみてください。 ====構成==== {{節stub}} <!--トラックやミキサーなどUIの構成を--> ===音源・エフェクト=== DTMでは'''VST'''や'''AU'''と呼ばれるプラグインを導入し、楽器の音源を読み込ませて音を鳴らしたり、エフェクトをかけたりします。音源の中でも'''シンセサイザ'''系音源は自分で音色を調節して鳴らすことができるので今日多くの楽曲で使用されています。シンセサイザの操作については[[DTM#シンセサイザ|シンセサイザ]]項で解説します。 プラグインについては種類も多く、自分で必要に応じて導入していく必要があります。以下によく使われるであろうプラグインのジャンルを挙げていくので検索の参考にしてください。なお、様々な音源が一緒に入っているマルチ音源と呼ばれるものも存在しています。資金に余裕があるならば、導入しても便利でしょう。 '''楽器音源''' * ピアノ * ストリングス * オーケストラ * オルガン * シンセサイザ * ギター * ベース * ドラム '''エフェクト''' * リバーブ * ディレイ * コーラス * アンプシミュレーター * イコライザー(EQ) * コンプレッサー ====導入==== {{節stub}} ==MIDI== {{節stub}} 多くのDAWでは'''MIDI'''と呼ばれるデータに音程などの情報を書き込み再生しています。 現在、MIDIの編集は'''ピアノロール'''と言われるUIで行うことがほとんどです。ピアノロールは縦を半音ごとの音程、横を時間で音を表示する形式で、音程やリズムを視覚的に編集、確認することができます。 <!--ピアノロールの画像を添付したい--> ===DTMをしてみよう=== ここで実際にDAW上でMIDIを触って音楽を作ってみましょう。 まず'''新しいプロジェクト'''、作曲をするうえで作業をするファイルを作ります。ほとんどの場合、起動時にまっさらなプロジェクトが開かれていますが、もし何かしらのアイテムが置かれている、あるいはプロジェクトが開かれていない場合は、手動で新しくプロジェクトを作成してください。筆者の環境の場合「ファイル タブ > 新しいプロジェクト」で開くことができます。 次に'''MIDIを設置します'''。MIDIはトラックに置かれるため、先に新しいトラックを作成します。筆者の環境の場合「トラック タブ > 新規トラックを挿入」で作成できます。その後MIDIの作成、筆者の環境の場合「挿入 タブ > 新規 MIDI アイテム」で実行します。このとき、トラックを2小節分の長さをドラッグで時間選択すると後の作業が楽です。 では'''実際にMIDIを編集してみましょう'''。MIDIの時間軸はグリッドで区切られています、グリッド欄を1/4としてください。まず左に表示されているピアノを参考にドの高さを確認して、その高さにある一番左のグリッドに音符を設置します。音符の設置はグリッドの左端から右端までドラッグすることで行うことができます。<!--ここで画像を入れたい。また、画像のように音符を置くという指示が分かりやすいか-->同様にレ, ミ, ファ, ミ, レ, ドというように音符を置くと、かえるのうたのメロディーになります。さて、聞いてみましょうと言いたいところですが、'''MIDIはあくまでもどう鳴らすかの指示'''となっています。 最後に'''音源を設定して再生してみましょう'''。筆者の環境ではミキサーのInsertsをクリックすると、プラグインを設定する画面が現れます。その画面で新規ボタンを押すと今度は自分の持っているプラグインが表示されます。音源系のプラグインであれば何でも良いのですが、今回はSynth1を選択してみましょう。これで音源が設定されました。 では再生してみましょう。プロジェクトの始まりに移動するボタンを押し、再生ボタンを押してみてください。するとかえるのうたの2小節分のメロディーが再生されたはずです。 実は後の作業で必須な項目は出力だけとなります。これであなたもDTMが出来るようになりました!おめでとうございます! ===編集要素=== {{節stub}} * ベロシティ * パン * ピッチ ==シンセサイザ== ===概要=== {{節stub}} ===オシレータ=== {{節stub}} たいていのシンセサイザでは以下の5つの音形が元となります [[File:Oscillator Waveform.wav|thumb|波形の違い]] *'''正弦波'''/sin波 *'''三角波''' *'''ノコギリ波'''/ソウ(Saw) *'''矩形波'''/スクエア(Square) *'''ノイズ''' ノイズを除いた4つには音程がついています。筆者の所感ですが、上から順番に柔らかい音がする印象を与える音が鳴ります。 ===エンベロープ=== '''エンベロープ'''は一回音がなったときの音量を調節するところです。エンベロープはAttack, (Hold), Decay, Sustain, Releaseから構成されます。 :'''Attack'''は音がなり始めてから最大音量になるまでどれくらいかかるかという時間を調節します。 :'''Hold'''は最大音量になってから音が弱くなり始めるまでの時間を調節します。この項目は物によってはないこともあります。 :'''Decay'''は音が弱くなり始めてから一番弱くなるまでの時間を調節します。 :'''Sustain'''は一番弱くなったときの'''大きさ'''を調節します。ここだけ時間でないので注意してください。 :'''Release'''は音が鳴らなくなったときにどれくらいの時間をかけて音が消えるかを調節します。 [[File:Envelope test.wav|thumb|エンベロープ調節の例]] バイオリンをゆるやかに弾く、ピアノの鍵盤を押すというのはそれぞれ異なる音量の形をしています。前者でしたらAttackを遅くしてSustainを最大にする<ref>Decayは設定しても減衰する音量差がないので意味がありません。</ref>、後者でしたら、Attackを0秒にしてDecayを少し長め、Sustainを0にして残響が残るのでReleaseもDecayと同じくらいに設定するというようにすると似たような音量となります。 ===フィルタ=== 一つの音にも様々な音程の成分が含まれています。'''フィルタ'''は音に含まれる成分を削る機能です。 フィルタは以下の3項目を調節します。 *種類 *周波数 *スロープ *レゾナンス <!--EQ見せながらの映像のほうがいいのでは--> [[File:Filter with noize.wav|thumb|フィルター効果の比較]] 種類は'''ロー/ハイパスフィルタ'''、'''バンドパスフィルタ'''、'''ノッチフィルタ'''の3種類があります。ロー/ハイパスフィルタはその名の通り、指定した周波数より下/上だけを鳴らすフィルタ、バンドパスフィルタは指定した周波数周辺だけを鳴らすフィルタ、ノッチフィルタは逆に指定した周波数のみを削るフィルタです。 周波数、スロープはどの点からどの範囲を削るかという調節項目です。 レゾナンスは削る箇所の直前の音量を逆に上げる項目です。 ===デチューン=== ===LFO=== ===その他効果=== <!--ディレイやリバーブ、ディストーションなどを扱う予定--> 具体的な音作りは[[/シンセサイザ|こちら]]を参照してください。 ==ミックス== ==出力== <!-- ここでは、[[w:Linux|Linux]]を利用してMIDIを作成し、ソフトウェア音源を利用して実際に音を鳴らすまでの手順について述べます。Linuxについては[[UNIX/Linux入門]]などを参照してください。 ===MIDI=== 最初に[[w:MIDI|MIDI]]について解説します。元々計算機で音を扱う方法として、空気の振動を電気的な波形に変換し、それを離散化してデジタルデータとして扱うことができることを[[高等学校情報C]]で述べました。計算機上で、音を扱う方法は基本的にこれ1つしかありません。 コンピュータ上の音楽ファイルとしては[[w:WAV|WAV]]ファイル、[[w:MP3|MP3]]ファイル、[[w:Ogg Vorbis|Ogg Vorbis]]ファイルなど、様々な保存形式があり、これらはどれも異なった方法で音を扱っているように思えます。しかし、実際にはこれらはどれも同じデータ([[w:サンプルレート|サンプルレート]]などの違いはあれど)を扱っており、異なっているのはデータではなくデータを[[w:圧縮|圧縮]]する方法です。 残念なことにデータの圧縮は数学的な過程でこれらの違いを理解することは非常に困難です。フリーな圧縮形式であるOgg Vorbisの圧縮方法はWeb上で公開されているので、もしも興味があれば見てみるのもよいかも知れません<!- - 特に推奨はしないけれど ... 。- ->([http://xiph.org/vorbis/doc/Vorbis_I_spec.html])。 ここまででコンピュータが音を扱う方法は基本的に1通りしか無いことを述べてきました。MIDIはいくつかの方法で用いられますが、MIDIもまたコンピュータ上で音を扱う方法です。しかし、これまでに見てきた方法とは本質的に異なった方法で音を扱います。より正確にいえば、音そのものではなく楽譜のデータを扱う方法といった方がよいかも知れません。 もちろん楽譜と音は互いに異なったものです。楽譜は音そのものではなく、楽譜にそって演奏された音楽が音です。そのため、楽譜の情報を扱うMIDIと音を扱うOggなどの形式は本質的に異なった情報になります。 ただし、ソフトウェアシンセサイザなどのソフトウェアを利用すると、あたかもMIDIファイルが音を扱うファイルであるかのようにMIDIファイルの内容を演奏できてしまいます。そのため、MIDIファイルが音を扱う形式であると述べても決して間違いとはいえません。しかし、MIDIファイルとOggファイルが扱う情報は本質的に異なったものであるということははっきりさせておく必要はあります。 ===MIDIの構成=== 音を扱う情報と楽譜を扱う情報は非常に異なっています。 まず、楽譜が扱う情報は(あまり)曖昧さがありません。例えば、ミとファの間には音階は存在しません。一方、 音自体を情報として扱う視点から見れば、ミの音は周波数659Hzの音であり、ファの音は周波数698Hzの音(周波数については後述)であるので、その間には当然多くの音が存在し得ます。 このことから分かる通り、楽譜が扱う音は実際に音そのものとして存在し得る音よりもかなり少ない種類の音を扱います。このことは、情報をデジタル化する処理を考えるとありがたいことなのです。なぜなら、少ない種類の情報はより少ない量の情報で表すことができるからです(より正確な議論は[[w:情報量|情報量]]を参照)。 ここまででMIDIが扱う情報の性質について述べました。次に、実際のMIDIがどのような情報を扱っているかについて述べます。まず最初に、どんな情報を扱うかを直観的に述べます。そのあと実際の情報の表し方も述べますが、これは[[w:プログラマ|プログラマ]]向けの内容なのでMIDIを使うことが目的ならそこは読まなくてもよいでしょう。 楽譜を扱う上で重要な情報はある音程の音を出力する事である。MIDIでは、この命令のことを{{tt|NOTE_ON}}と呼びます。また、反対の命令として、ある音程の音の出力を取り止めることを{{tt|NOTE_OFF}}と呼びます。 基本的なMIDIは{{tt|NOTE_ON}}と{{tt|NOTE_OFF}}の命令を繰り返すことで構成されます。しかし、楽譜に記述される情報はそれだけではありません。例えばある曲においては、楽譜の複数部分を同時に演奏する必要があります。例えば、[[w:ピアノ|ピアノ]]は両手で演奏される場合には、弾き手は楽譜の2つの部分を同時に演奏する必要があります。MIDIでは、これらの楽譜の部分をチャンネルと呼びます。MIDIを扱う場合には複数のチャンネルを扱う方法を規定する必要があります。 また、実際の演奏で利用される楽器の種類も、楽譜によって指定されます。そのため、MIDIではいくつかの楽器を使い分ける必要があります。<!- - これらの情報は、通常トラックの最前部に記録され、演奏を始めるときに読み出されます。 - -> ここからは実際に上で述べられた情報がどのようにデジタルデータとして扱われているかについて述べます。MIDIは情報を扱う手段として 命令 データ というフォーマットで記述される[[w:バイト]]列を使います。命令、データともにバイト列ですが、データの量は、命令の種類によって変化します。命令の種類は数多いのですが、ここではNOTE_ONと、NOTE_OFFだけを扱います。 各々の命令に対して、トラックを扱う手段が必要です。MIDIが同時に扱えるトラックは少なくとも16種類あることが保証されています。そのため、少なくとも16種類のトラックに対して、NOTE_ON、NOTE_OFFを送る命令があればよいことになります。 チャンネルn(n<16)に対するNOTE_ON命令は次の命令で表されます。 0x9n 0x.. 0x.. ここで、nは、([[w:16進数|16進数]]で)0からfまでの値を取ります(16進数については[[高等学校情報C]]を参照してください)。NOTE_ON命令は2バイトのデータを取ります。最初のデータは音程を表す情報です。音程はキーボードにある順で順に値がふられています。まず、真中のド (C3?) が0x60で、以降ド#:0x61、レ:0x62と続いていきます。次に、2つめのデータは、音が演奏される強さを表します。 NOTE_OFF命令も同じように2バイトのデータをとります。チャンネルnに対するNOTE_OFF命令は 0x8n 0x.. 0x.. となります。ここで、NOTE_OFFの場合には音の強さを指定する必要ないのでデータの2バイト目は任意の値を設定できます。 実際の演奏ではNOTE_ONとNOTE_OFFの間の時間、つまり対応する音の演奏時間も伝達されます。この時間のことをデルタタイム (Delta Time) と呼びます。デルタタイムは特殊な形式で書かれるのでMIDIファイルを読むときには注意が必要になります(rosegardenx.x.x/sound/MidiFile.cppのgetNumberFromMidiBytesを参照)。 まず、デルタタイムを表すバイトについて、最後のバイトについては0、それ以外のバイトについては1と、各バイトの最も左のビットを設定します。これによってMIDIを扱うプログラムはどこまでがデルタタイムを表すバイトなのかを判断できます。実際のバイト列は次のようになります。 1xxxxxxx 1xxxxxxx ... 1xxxxxxx 0xxxxxxx 実際の時間は各々のバイトについて最も左のビットを取り去り、それ以外のビットを全てつなげた値で計算します。例えば、デルタタイムが1バイトで表されるときには、デルタタイムを表すバイト列は 0xxxxxxx で表され、0から127=<math>2^7</math>単位までの時間経過を表すことができます。2バイトでは 1xxxxxxx 0xxxxxxx となり、0から、16384=<math>2^{14}</math>単位までの時間経過を表すことができます。 例えば、童謡'かえるのうた'の最初のフレーズである'ドレミファミレド'をチャンネル0で演奏するには(ただし、デルタタイムは160単位、音の強さは40とします)、 90 60 40 81 20 80 60 7f 00(ド) 90 62 40 81 20 80 62 7f 00(レ) 90 64 40 81 20 80 64 7f 00(ミ) 90 65 40 81 20 80 65 7f 00(ファ) 90 64 40 81 20 80 64 7f 00(ミ) 90 62 40 81 20 80 62 7f 00(レ) 90 60 40 81 20 80 60 7f 00(ド) となります。 ここで、値は全て16進数でかかれています。途中の81 20は、上の数え方を利用すると 1000 0001 0010 0000 -> 000 0010 010 0000 = <math>2^8 + 2^5</math>= 128+32 = 160 となります。 ===MIDIソフトウェアシンセサイザ=== ここまででMIDIがどのように楽譜の情報をデジタル化するかを見てきました。ここからはこの情報を実際に音の情報に変換する方法について述べます。 最も簡単な音の合成は対応する音程の[[w:正弦波]]を順番に書き込んで行くことです。ただし、サンプルレートの問題があるので、手作業で正弦波を作成しても正しい音程で演奏されないことが予想されます。一般に正しいサンプルレートで演奏するには、サンプルレートを指定できる形式で保存し、後にその形式の音楽ファイルを再生するのが簡単です。<!- - (手作業で音楽ファイルを作るのは無駄でも不必要でもないしどちらかといえば面白いことだと思う。しかし、今必ずやるべきことではないようにも思う。もっとも先のことはわからないのだが ... 。) - -> ここでは正弦波を作成するプログラムとして、[[w:en:SoX]]を利用します。SoXは音楽ファイルを扱うための簡潔なコマンドラインプログラムで、機能の1つとして正弦波、矩形波の合成があります。具体的には、n Hz(nは整数)の正弦波を出力するには、 $sox infile outfile synth sine n というコマンドを使います。ここで、infileは音楽ファイルですが、outfileの長さを定めるためだけに使われます。<!- - (sox-12.17.9での場合である。これは少し妙な動作なのでそのうち変わるかも知れない。というか人任せではいけないのだが ... 。) - -> 各々の音の周波数は半音離れるごとに<math>2^{1/12}</math>だけずれることと、440Hzがラの音に対応すること([[音階]]を参照)を考えることで、上で用いたドレミファミレドは、 ド:523Hz レ:587Hz ミ:659Hz ファ:698Hz (小数点以下切捨て)に対応する事がわかります。 SoXでは作成した音楽ファイルをつなげて一つの音楽ファイルを作成することができます。音楽ファイルをつなげるためには、 $sox infile1 infile2 ... infilen outfile のコマンドを利用します。 ここまでで簡単な音楽合成を行う方法を述べました。しかし、実際の音楽演奏では音は正弦波ではなく、より複雑な波形を持っていることが普通です。 このような複雑な波形を合成するには、あらかじめ対応する楽器の波形を記録しておき、適宜その波形を出力することが有効な手段となります。このように波形のデータから音楽データを合成するソフトウェアをシンセサイザ ([[w:en:Synthesizer|en:Synthesizer]]) と呼びます。また、楽器に対応する波形データとしてサウンドフォント[[w:en:SoundFont|en:SoundFont]] (.sf) が知られています。 ここではシンセサイザとしてTimidity++ ([[en:w:Timidity]]) を利用します。ここからはTiMidity++の使い方を説明しますが、既に何らかの方法でMIDIが再生できる場合にはこの章はとばして次に進んでください。 ====Timidity++==== ===MIDIシーケンサ=== ここまででMIDIを再生する方法について述べました。ここからはMIDIを作成する方法について述べます。 MIDIを作成するソフトウェアをMIDIシーケンサと呼んでいます。Linuxで動くMIDIシーケンサとして有名なものに、[[w:en:Rosegarden|en:Rosegarden]]があります。ここからはRosegardenの説明をするので、他の方法でMIDIを作成する人は別の資料を探した方がよいでしょう。 ====Rosegarden==== ==外部リンク== * [http://www.midi.org MIDI Manifacturers association] * [http://timidity.sourceforge.net/ TiMidity++] * [http://www.rosegardenmusic.com/ Rosegarden] --> {{stub}} {{NDC|007.63}} [[Category:音楽|DTM]] [[Category:情報技術|DTM]]
このページで使用されているテンプレート:
テンプレート:NDC
(
ソースを閲覧
)
テンプレート:Navi
(
ソースを閲覧
)
テンプレート:Stub
(
ソースを閲覧
)
テンプレート:節stub
(
ソースを閲覧
)
DTM
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報