atwiki
メニュー
ページ一覧
マリオ4改造 @wiki

  • @メニュー
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • アップロードファイルから新規ページ作成
      • 他のホームページから引用して新規ページ作成
      • スレッド式掲示板から引用して新規ページ作成
      • このページの子ページを作成
    • アットウィキで新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • メニュー非表示でページ編集
    • ページ名変更
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • 表示
    • 最新版変更点 (差分)
    • 編集履歴 (バックアップ)
    • このウィキの全ページ一覧
    • 編集履歴のあるページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ツール
    • このウィキ内を検索
    • このウィキの管理者に連絡
    • このページを通報・違反報告する
  • ヘルプ
    • ご利用ガイド
    • ワープロモードご利用ガイド
    • 初心者ガイド
    • プラグイン一覧
    • よくある質問
    • 編集モードの違いについて
    • 不具合や障害を見つけたら
    • 管理・設定マニュアル

アットウィキホームへ
atwiki
  • @メニュー
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • アップロードファイルから新規ページ作成
      • 他のホームページから引用して新規ページ作成
      • スレッド式掲示板から引用して新規ページ作成
      • このページの子ページを作成
    • アットウィキで新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • メニュー非表示でページ編集
    • ページ名変更
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • 表示
    • 最新版変更点 (差分)
    • 編集履歴 (バックアップ)
    • このウィキの全ページ一覧
    • 編集履歴のあるページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ツール
    • このウィキ内を検索
    • このウィキの管理者に連絡
    • このページを通報・違反報告する
  • ヘルプ
    • ご利用ガイド
    • ワープロモードご利用ガイド
    • 初心者ガイド
    • プラグイン一覧
    • よくある質問
    • 編集モードの違いについて
    • 不具合や障害を見つけたら
    • 管理・設定マニュアル
  • このウィキに参加
  • ログイン

Lunar Magic > 音楽の書き方

メニュー
  • 初めに
  • 準備
  • 全体設定
  • 各チャンネルの設定
  • 音を鳴らす
  • オクターブ
  • 曲の終了について
  • 基本テク
    • 基本音長指定
    • ループ
    • Chip
  • 細かい表現
  • サンプル
  • 初心者向けspcからのリッピング
    • はじめに
    • mml編集ツール「MML Editor」の使い方
    • エラー解説
    • あとがき
  • ご意見箱

初めに

音楽の書き方はASMより簡単です。よってこのページを読めば誰だってできます。

作曲からする人はいいですが、
ここに来る人はほぼ耳コピをするためでしょう。
とりあえず原曲の音源を用意しましょう。
エミュからSPC音源を取り出せるような曲ならば、そうしましょう。
その場合、ページ下で紹介されている「spcからのリッピング」が楽です。
まあ、これでは耳コピとは言わないが。

そんなものが無いなら、WAVかなんかで。
ここでは、真面目に原曲を聞いて、一音一音打ち込んでいくには
どうしたらよいかを説明します。
一応書いている人はaddmusic誕生当時から音楽作り続けている人なので
ある程度信頼できる情報だとは思います。

addmusicの使い方を理解していることを前提に進めていきます。


準備

音楽をtxtファイル上に書き、
それをツールでROMに入れるわけですから、
まずtxtファイルを用意します。
そして、こう書きましょう。

;タイトル名

#0       ;チャンネル0


#1       ;チャンネル1


「 ; 」と書くと、その行の右はメモとなり、命令として扱われません。
便利なので、こうやってタイトル名などを書いておくといいでしょう。
さて、命令として#0、#1と書いたわけですが、これはチャンネルです。
#0 から下にチャンネル0の内容を、
#1 から下にチャンネル1の内容を書いていくことになります。~

#0から#7まで作れますが、最初なので2つのみとします。&br;


ちなみに安定して鳴るチャンネルは、levelでは#0〜#3のみですから、
欠かせない音はこれらのチャンネルで鳴らすようにしましょう。

全体設定

まずは曲全体にかかわる設定をします。
これは、チャンネル0の先頭に書くだけでOKなものです。

下のように設定を書き込んで行きます。

#0      w220 t30     ;チャンネル0

ここではw(全体音量)を220に、t(テンポ)を30に設定しています。
最低限これだけで大丈夫です。

この種の設定をまとめると、

コマンド 意味 備考
w● 全体音量 ●は0〜255までの数字。
t● テンポ 同じく。大きいほど速い。
$EF $ XX $ YY $ ZZ エコー有効 XX は、どのchにかけるか。詳細は下で。
YY は、左側のエコーの音量。
ZZ は、右側のエコーの音量。
$F1 $ XX $ YY $ ZZ エコー設定 先に$EFが必要。
XX は、ディレイ。
YY は、フィードバック。
ZZ は、FIRフィルタの有無(0か1)。
$F0 エコーOFF


エコーは明らかに上級の物ですので(大切だけど)
最初は気にする必要はありません。

これらは、初期設定として使うだけでなく、曲の途中で変えることも出来ます。
その場合も、チャンネル0にのみ書き込めばいいです。


$EFのXXについて、もう少し詳しく説明します。
16進数の2ケタの数字、00〜FFは、
2進数に直すと00000000〜11111111の8ケタ。

2進数で右からN番目の位の数字は、
N−1番のチャンネルのエコーの有無に対応します。
つまり、右から順に#0、#1、#2、#3、…一番左は#7のエコーの有無に対応します。
それぞれを0にするとOFF、1でONです。
2進数をパソコン付属の電卓かなんかで16進数に戻してXXに入力しましょう。


基本的には、 強いエコーをかけるなら、ドラムパートだけ避ける のがセオリーです。

各チャンネルの設定

次に、各チャンネルの初期設定を行います。
当然用意した全チャンネルの頭に書くことになります。
チャンネル0だけは、先ほど書いた全体設定に書き加えることになります。
例

#0      w220 t30   @0 v250    ;チャンネル0



#1      @2 v220               ;チャンネル1

ここでは、@(音色)とv(チャンネル音量)を設定しています。
この種の命令をまとめると、

コマンド 意味 備考
@● 音色 ●番の音色を使います。
v● ch音量 0〜255。大きいほど大音量。
q●▲ ゲートタイム ●は音の持続性。1〜7で表します。
▲はこれまた音量で、1〜Fで表します。
p●,▲ ビブラート 音を揺らします。●が振動数、▲が振幅。
y● LR位置 chの左右のバランスです。0〜20で表します。
10を中央として、大きいほど左、小さいほど右から聞こえます。


また、音色の表をこちらにも持ってきました。

番号コメント
0ローパス気味の方形波(スクエアリード)。Hollow
1ローパス気味のノコギリ波。木管楽器、ストリングスなど
2鉄琴、オルゴール系。
3木琴
4パルスのようなノコギリ波?(Claviや1/4矩形波を連想)。癖の強い音。金管楽器、弦楽器など
5ピチカートストリングス?
66/16矩形波のような音。木管楽器、弦楽器など
7スチールドラム
8フラットレスベースのような音(一部音が出ないので注意)
9ホンキートンクピアノ。減退音
10打楽器。o4でマーチングドラム。タカタカってやつ。
11@1の音色のアタックを強めた音
12でっていうパーカッション。o5でエコーかけるとクロノのイントロの時計音に。
13エレピ(電気ピアノ)。ゲームオーバーの音
14スラップベース。他の使い方もあるかも
15オーケストラヒット
16@13を減退音にした音
17ディストーションギター。5度の倍音が強い
18@1に若干アタックの癖をつけたもの
21キックベース2。o3でバスドラムとしても使用可能。
22ペダルハイハット。ツッって音。
23ハイハット。ツィッって音。
24スネアみたいな
25スネアみたいな
26花火 大太鼓
27メロティックタム。デュンって音。
2827のちょい小さい音
29Power setのスネアみたいな。低音にすればティンパニっぽくなる。
30ぽ

音を鳴らす

初期設定が終わったら、いよいよ音を鳴らしましょう。
「音を鳴らす」命令は、アルファベットのaからgです。
「 ドレミファソラシ 」の音は、順に「 cdefgab 」で表します。
それらの右に +・- を添えると、それぞれ♯♭になります。
また、 休符はr で表します。

次に、その右に音の長さを添えます。
N分音符ならNです。
さらに、「 . 」を添えると符点N分音符となります。
つまり、N分音符の1.5倍の長さになるわけです。
使用例を示します。

4分音符のド  なら c4
16分音符のソ♯ なら g+16
符点8分休符  なら r8.


音長に関する残りのコマンドを紹介します。

コマンド 意味 備考
^ タイ 指定した長さだけ音を延ばします。
c8^16^32^64とすると、c8c16c32c64を
つなげて鳴らすのと同じ長さになります。
{ } 三連符 カッコ内の音の長さが2/3になります。

オクターブ

一口に「ド」と言っても、
「高いド」とか「低いド」とかがありますね。
これを分けるのが「オクターブ」です。

いわゆる「普通のドレミファソラシ」というのは、
「オクターブ4のドレミファソラシ」です。

その上に、「高いドレミファソラシ」が続きますが、これはオクターブ5。
「低いドレミファソラシ」は、オクターブ3です。

もちろん、音を鳴らす時にはオクターブを指定してやらなければなりません。

コマンド 意味
o● オクターブを数値指定します。
> オクターブを1上げます。
< オクターブを1下げます。


「ドレミファソラシドー」と鳴らすには、
「ドレミファソラシ」がオクターブ4、
「最後の高いド」がオクターブ5であることを考えると、

o4 c8d8e8f8g8a8b8 > c4

これでOKです。

また、音域には限界があり、
「オクターブ1のドからオクターブ6のラ」までしか使えません。
また、音色によっては音域はもっと狭いかもしれません。

曲の終了について

いよいよaddmusicで入れることができる段階まで来ました。

#0      w220 t30   @0 v250    ;チャンネル0

o3 c8d8e8f8g8a8b8 >c4 


#1      @2 v220               ;チャンネル1

こう入れてから、ツールでぶち込んで鳴らしてみましょう。
残念ながら、何一つ鳴りません。
これは、注意しておきたいミスの一つです。

「 用意したチャンネルのうち、どれか一つが終わりまで来たら、はじめに戻る 」
というのがルールです。
この場合、始まったとたんにチャンネル1が終わりとなってしまいます。
だから何も鳴らないのです。

これを防ぐために、用意したもののまだ音を置いていないチャンネルには
長い休符を置いておきましょう。これで大丈夫です。

#0      w220 t30   @0 v250    ;チャンネル0

o3 c8d8e8f8g8a8b8 >c4 


#1      @2 v220               ;チャンネル1

r1r1r1r1r1r1r1r1

ところで、無設定だと、終了時に最初にループしますが、
単純なループじゃなくて、イントロがある曲は多くあります。
ABCDBCDBCDBCD…という構成の曲です。
Aがイントロ、BCDがループする部分です。
これは「 / 」を使うことで実現できます。
イントロの後にこの記号を置きましょう。

A / BCD 

と書き込むことで、ABCDBCDBCDとループします。



以上が最低限の知識となります。
これだけで一通り曲は作れるはずです。
ここからはテクニックとなります。

基本テク

基本音長指定

「 l 」を使うと、基本音長を指定できます。
念のため書いておきますが、このlは「小文字のエル」です。
l8と書くと、「以後特に指定の無い限り、音符は8分音符」となります。
例えば、

c4 d8 e8 f8 g8 a8 b8 > c4

は、

l8 c4 defgab > c4

とできます。
最も良く使う音長をlに指定しておけば、
見やすく作りやすくなります。
ただ、サイズの節約とは関係無いようです。

ループ

[ ]n  は、カッコの中をn回繰り返す命令です。

l8 cdefcdefcdefcdefcdefcdefcdefc2

は、

l8 [ cdef ]7 c2

とスッキリ纏めることができ、
ファイルサイズも劇的に小さくなります。
というか、これを使わずに作るとサイズ大きすぎて
使い物になりません。
必ず使いましょう。

ただし、
ループの中にループは使えない
ループ命令自体が少々サイズを喰う
ことに注意しましょう。

つまり、
なるべく大きなカタマリでループを使う
ことを心がけましょう。

[cd]4 とかやっても、大してサイズは減らない上に、
これがあるために、ここを含むさらに大きなループを使えなくなります。

ループ[]←これは6バイト(ループの回数にかかわらず)
一つの音は1バイトなので[cd]4は8バイトとなる([cd]10でも8バイト)
cdcdcdcdは音8個なので8バイトとなります。
ちなみにループ再利用(*1)は一つ4バイトとなります(これも回数にかかわらず)
悪い例をあげると[cd]10aaa*1aaaなんかは2バイト損します。



そして、もう一つ。
*n  は、1つ前に出てきた[ ]をn回繰り返す命令です。
「*」はWikiでは小文字だと見にくいので大文字で書いてますが、
実際は「小文字の*」を使ってください。

例えば、○◇○△という構成を含む曲は多いものです。これを

[ ○ ]1 ◇  *1 △

とすることで、○1つ分浮きます。

@1 v200で「ドレミファソラシド」と鳴らした後に、
@0 v220で「ドレミファソラシド」と鳴らしたい場合は、

@1 v200 [cdefgab>c<]1 @0 v220 *1
このように、普通のループではできないことが*でできます。
ただし、これを使っての音色変えでは、
音ずれのある音色(@2など)と、他の音色をはさむとおかしくなることに気をつけて下さい。

Chip

ver1.21でこの問題は修正されたようです。

Carol氏作のAddmusicを使うと、曲が変な場所でループすることがあります。
これはその曲のループの記述方式に原因があります。
変な場所でループする曲はたいてい「*」の後に数字指定が無いのです。
旧式のものはこれを「*1」とみなしていますが、Carol氏作のものはそうなっていないようです。
なので、変な場所でループする曲を見つけたら「*が怪しい!」と思って間違いないようです。

細かい表現

完成度を上げるのに必要な、重要なコマンドを紹介します。

コマンド 意味 備考
v● $E8 $ XX $ YY 音量フェード XX 時間かけて、音量を●から YY に滑らかに変化。
$EB $ XX $ YY $ ZZ EGリリース XX 時間後に、 YY 時間かけて
音程が$ ZZ だけ滑らかに変化。
$EC $ XX $ YY $ ZZ EGアタック XX 時間後に、 YY 時間かけて
音程が$ ZZ ズレているのを戻す。
$EE $ XX チューニング この先の全音符の音程をわずかに上昇。
100で半音。0〜FFで指定。


EGリリース、アタック、チューニングは、
一度書くとその先ずっとに影響します。
使わないときは各命令のXXYYZZを全て00にしたものを
改めて命令して消しましょう。

@0や@1は、かなり単純な音です。
こういった音は、EGやフェードでの音の入り、
ビブラート、エコー等によって別物になります。
例えば、@1は何やら安い音ですが、
@1のハモリを用意して、フェードで入り方を柔らかくしてやると
ストリングスとして使えます。


このように、単品ではへちょい(?)音でも複数のチャンネルで協力して
迫力を出すことができるのです。

ハモリとは「同じ音色で違う音程」をぶつけることですが、
「同じ音程で違う音色」をぶつけるのも、
組み合わせによっては綺麗に音が融合して迫力がでます。



こういったハーモニーを使う場合は、
音量のバランス、各chのLR位置、ビブラート、フェードとかを
試行錯誤してみましょう。
結構化けます。


実は音を打ち込むことよりも、
このような微調整こそが出来を分ける、腕の見せ所なのです。
当然マリオワールド音源に限界はありますが、
「これが限界だな」と諦めない事が何よりも大切です。

コマンドに関してはここを参照してみるといいかもです。

サンプル

http://vip.rgr.jp/sm4wiki/index.php?plugin=attach&pcmd=open&file=sumple.txt&refer=Lunar%20Magic%2F%B2%BB%B3%DA%A4%CE%BD%F1%A4%AD%CA%FD

ここでは、

 標準コマンド
 L16の使い道
 チューニング(ループすると音が少し上がる)
 []、*の使い方

の使い方が分かります。分かりにくかったら編集お願いします><

初心者向けspcからのリッピング

はじめに

ここでは、初心者向けのspcからmmlへのリッピングを説明します。~spcはエミュレーターを使用し作成して下さい。

  1. spcをmmlに変換 SPCtoMML V1000 ここに表示テキスト
  2. mmlの編集
    mmlが出来てもまだすぐにSMWに挿入できるわけではありません。編集しやすい様にスクリプトを使います。
    攻略Wikiの人のページにある[http://mario.ellize.com/g3/mml.cgi tinymmで生成したMMLを見やすくするスクリプト]
    そこでmmlを見やすくします。結果をメモ帳にでもコピペして保存してください。拡張子は.txtでいいです。
    MMLプレイヤで聞いてみましょう。(個人的にmmlクリップボードプレイヤがいいです。)
    SMWで正しく再生させるために[>]と[<]の入れ替えをします。メモ帳内のものを全部入れ替えましょう。軽量化のあとでも構いませんが。
    軽量化については上に詳しく書かれているのでそちらを参考にして行いましょう。

mml編集ツール「MML Editor」の使い方

スクリプトが消滅してしまったわけですが、それにとって変わるソフトが「MML Editor」です。
初心者でもかなり簡単にMMLを編集できます。

ダウンロードは[http://bin.smwcentral.net/44457/MML_Editor_V2.1.zip こちら](V2.1)

  • テスト再生(簡易版)
    画面上で選択した部分をメロディで奏でてくれます。ちょっと雑ですがw
    要はMMLプレイヤの事ね。
  • オクターブを上げる/下げる
    その名の通り、全体のオクターブを1上げて(下げて)くれます。「音程が高/低すぎます」のエラーが出た時に試してみると最高にちょうどいい。
  • tinymmバグ修正
    "<"と">"を入れ替えます。上記にあるバグの事だね。
  • 簡易テンポ変換ツール
    midなどに使用されるテンポと、addmusic向けのテンポを相互変換できます。何かと使える。
  • ADSR作成ツール
    more.asmを追加するとできる、「ADSR」なるものを簡単に編集できます。
    詳しくは[http://vip.rgr.jp/sm4wiki/?cmd=read&page=Lunar%20Magic%2F%E9%9F%B3%E6%A5%BD%E4%B8%8A%E7%B4%9A 音楽上級]を参照のこと。
  • mml書式変換ツール
    tinymmで変換したmmlを、Carol氏のaddmusicの書式に自動変換してくれます。
    あと、各トラックの先頭に"o4"をつけてくれます。
    これであの忌々しい「音程が高/低すぎます」のエラーはほぼ回避されることでしょう。
    「基本情報」タブでは、全体設定や各チャンネルの設定をグラフィカルに見ることができます。 編集はできないけどw

エラー解説

addmusicで音楽挿入の際に出るエラーの解説です。

エラー名 解説 対処法
音程が高/低すぎます エラー名通りの状況です、たぶん一番目にするエラーです その行でo1とかo6とかあるとよく出ますので、oの数字を増減させたりするといいでしょう
オクターブの指定が不正です オクターブ(o)の表記の仕方が違ってます リッピングするとよくo7とか入ったりするので下げるなりしましょう
ループ回数の値が不正です ループ表記が違っています [ か ] のどちらかを忘れてたり、ループ回数を入れるのを忘れています
誤った数値指定です(10進数) ↑のループ回数を入れ忘れると一緒に出るエラーです ちゃんとループ回数を入れましょう
ROM名.smc が見つかりません。 一生懸命探しましたが見つかりませんでした ちゃんとaddmusic内にsmcを置きましょう

あとがき

あと、これは自分が初めてspcから音楽を挿入した方法ですので間違いなどあるかもです。発見したら勝手になおしちゃいましょう。

ご意見箱

コメントログ

  • SPC2MIDIでファイル開いても鳴らないよ どーして? MIDIデバイスも正常 - 獨毒 2012-11-04 13:27:08
  • MID2MMLがどこに行ってもないんですが・・・ - ヨッシー 2012-12-13 19:57:48
  • MIDI2MMLがありません。 - ああああ 2013-01-12 23:31:08
  • mml書式変換ツール使うと応答なしになるんですが - ちゃ 2013-01-24 01:15:07
  • ↑↑↑と↑↑SMWCにあるTinymm (correct octave output)を使えばMMLに変換できる。 - 3 up 2013-01-26 16:56:20
  • ↑↑Tinymmで変換したMMLならできるはず - 1 up 2013-01-26 16:59:47
  • addmusicで曲挿入しても鳴らない。挿入してるROMも正常だしどうして? - Giva 2013-03-24 17:18:44
  • ↑エミュの問題かbinファイルの導入 - 名無し 2013-04-01 11:43:53
  • あ - 名無しさん 2016-03-14 21:16:27
  • 音を重ねるにはどうしたらよいですか? - 2017-09-11 16:56:45
  
メニュー2

メニュー

トップページ

マリオワールド改造

メイン
  • Lunar Magic
マップ
  • Overworld Editor


共同開発

  • 共同開発について
  • 自作物公開場

その他

  • ビギナーズガイド
  • みんなのFAQ
  • 良ステと呼ばれるステージの作り方
  • 良作改造マリオ紹介
  • 65C816プログラミング
  • 65c816資料
  • HDMA入門
  • xkasについて
  • 上級ASMコーディング


アクセスカウンター

総数:2304
今日:2
昨日:2
現在:4

リンク

  • 避難所
  • あっぷろだえっくす

  • SMW Central
  • 改造マリオリンク集

  • マリオ64改造Wiki
  • マリオWii改造Wiki


更新されたページ

2019-05-04

  • コメント/Lunar Magic/みんなのFAQ

2019-04-30

  • コメント/Overworld Editor/作り方

2019-04-27

  • 編集練習ページ

2019-03-25

  • 投票ページ

2019-02-27

  • コメント/Lunar Magic/ゲーム内の文字を日本語化する

2019-02-14

  • Lunar Magic/ページを作るまでもない小技集

2019-02-04

  • 自作物公開場

2019-02-03

  • xkasについて

2019-01-25

  • トップページ
  • 改造マリオの共同開発6

2019-01-24

  • Lunar Magic/ExGFXを使ってのグラフィック変更

2019-01-21

  • Lunar Magic/新型スクロール土管の作り方
  • Lunar Magic/スクロール土管の作り方
  • Lunar Magic/levelASMの使い方

2019-01-20

  • 上級者向けの情報
  • Lunar Magic/How to レイヤー3
  • 65c816資料

2019-01-19

  • Lunar Magic/オリジナルブロックを作る
  • 65C816プログラミング

2019-01-13

  • 編集者向けの情報
  • アットウィキ
  • 利用規約
  • プライバシーポリシー
© 2005- Atfreaks Limited.