13.サウンド
1.Audio モジュール
音楽や音の演奏は、Audio モジュールで行われています。
次の4種類が演奏可能で、種類によってメソッドを使い分けます。
BGM (背景音楽)背景で流す音楽です。ループします。
BGS (背景音)雨や鳥の鳴き声などです。ループします。
ME (効果音楽)戦闘勝利など派手な演出音楽。BGMが一時停止します。
SE (効果音)ちょっとした音。

演奏開始のメソッドは、どれも同じ引数のようですね。
xx_play(filename[, volume = 100[, pitch = 100]])
 filename は、フォルダ名から指定します。
 volume は、0〜100
 pitch は、50〜150
Audio.se_play("Audio/SE/Cancel", 80)
BGS、SEの音量は、デフォルトで 80 のようですので、効果音を鳴らす場合は、
第2引数も 80 で指定します。
2.RPG::AudioFile データ構造
RPG::BGM, RPG::BGS, RPG::ME, RPG::SEを使用する場合は、
ファイル名にフォルダ名を含めずに指定できます。
データベースで設定した音楽は、この機能を使用しています。

演奏自体は、Audio モジュールを使用して行っていますが、
その演奏に必要な情報を一まとめにして、管理しやすくしたものです。
また、最後(現在)に演奏した音楽を取得するとこも可能です。
# 現在のBGMを記憶
last_bgm = RPG::BGM.last
# 新しいBGMを演奏
bgm = RPG::BGM.new("Scene1")
bgm.play
# 古いBGMに戻す
last_bgm.play
3.Sound モジュール
こちらでは、データベースで設定された音を簡単に鳴らすためのメソッドが定義されています。
データベースで設定されたものは、配列で管理されているので、
そのまま使おうとすると、番号で指定する必要があり、わかりにくいためです。
$data_system.sounds[0].playとするよりSound.play_cursorとした方が、
カーソルの音を鳴らしているんだと、わかりますよね?
4.効果音を追加しよう
Sound モジュールに効果音を追加してみましょう。
効果音(SE)に関しては、Audioモジュールをそのまま使用しても問題ないと思います。
# Sound モジュールへの追加定義
module Sound
  # 効果音
  def self.play_se
    Audio.se_play("Audio/SE/SoundEffect", 80)
  end
end
# 効果音の演奏
Sound.play_se
デフォルトと同じようにするには、次のような感じでしょうか?
# Sound モジュールへの追加定義
module Sound
  @@se = RPG::SE.new("SoundEffect", 80)
  def self.play_se
    @@se.play
  end
end
# 効果音の演奏
Sound.play_se
5.音楽を追加しよう
音楽を演奏するモジュールは用意されていないので、自分で作成しちゃいましょう。
BGSは、効果音に分類される気もしますが、こっちに入れてあげることにします。
module Music
  # 音楽の内容を作成
  @@bgm_scene8 = RPG::BGM.new("Scene8")         # ほのぼの
  @@me_discovery = RPG::ME.new("Discovery")     # 新発見!
  @@bgs_warning = RPG::BGS.new("Warning", 80)   # 警報
  
  # BGMを演奏
  def self.play_scene8
    @@bgm_scene8.play
  end
  # MEを演奏
  def self.play_discovery
    @@me_discovery.play
  end
  # BGSを演奏
  def self.play_warning
    @@bgs_warning.play
  end

シーン移動でBGMを変更する例です。
マップからの呼び出しなら、callメソッドを定義するでしょうか?
class Scene_Map < Scene_Base
  def call_newscene
    # マップで演奏していた BGM, BGS を記憶
    $game_temp.map_bgm = RPG::BGM.last
    $game_temp.map_bgs = RPG::BGS.last
    # 演奏中の BGM, BGS を停止
    RPG::BGM.stop
    RPG::BGS.stop
    # 新しいBGMを演奏
    Music.play_scene8
    # 予約を消す
    $game_temp.next_scene = nil
    # シーンを変更
    $scene = Scene_New.new
  end
end
マップへ戻る時などシーン変更の際に、次のスクリプトを実行すると記憶した音楽の演奏を開始します。
$game_temp.map_bgm.play
$game_temp.map_bgs.play
他にも、$game_map.autoplayでマップに設定されている音楽の演奏を開始することもできます。

直接呼び出すタイプなら、次のようにするでしょうか?
class Scene_New < Scene_Base
  def initialize
    # 演奏中の BGM, BGS を記憶
    @last_bgm = RPG::BGM.last
    @last_bgs = RPG::BGS.last
    # 演奏中の BGM, BGS を停止
    RPG::BGM.stop
    RPG::BGS.stop
    # 新しいBGMを演奏
    Music.play_scene8
  end
  def return_scene
    # 演奏中の BGM を停止
    RPG::BGM.stop
    # BGM, BGS を元に戻す
    @last_bgm.play
    @last_bgs.play
    # シーンを変更
    $scene = Scene_Map.new
  end
end
これらは、単なる一例にすぎませんので、どのようにされてもいいのですが、
サウンドの操作をする場合は、Audioモジュールを直接使用せずに、
RPG::AudioFile データ構造で作成されているデータクラスを使用するようにしましょう。