サウンド機能の使い方

require 'sgl'
useSound         #この行で、soundを使うことを宣言します。
sound = loadSound('sine.wav')     #この行で、サンプル音を読みこみます。
                 #同じディレクトリーにsine.wavというファイルがあることが前提条件です。
sound.play       #そのサンプル音をならします。
wait             #プログラムがすぐ終了するのをふせぐために待ちます。
                 #プログラムが終了しなくなるので、Ctrl+Cで終了します。

もっとも簡単な使い方です。

元となるサンプル音は、どこからもってくればいいのか? これ は難問で、マイクからサンプリングするとか、CDからサンプリング するとかします。どのようにサンプリングするのか。波形編集ソフ トを使ってMP3ファイルから切り出したりするのですが、その使い 方まで教えると結構大変そうなので躊躇してます。

require 'sgl'
def setup
  useSound
  window -200, -200, 200, 200
  $y = 0
  $sound = loadSound('sine.wav')
end

def onMouseDown(x, y)
  $y = y
  $sound.play(y / 10 + 60)
end

def display
  line -200, $y, 200, $y
end
mainloop

マウスが押されると、その高さに応じた音をだします。

require 'sgl'
def setup
  useSound
  window -200, -200, 200, 200
  $x = 0
  $y = 0
  $sound = loadSound('sine.wav')
end

def onMouseDown(x, y)
  $x = x
  $y = y
  $sound.play(y / 10 + 60, x / 4 + 50)
end

def display
  circle($x, $y, 10)
end
mainloop

音量も変えてみました。

注意点

授業では大急ぎで教えたのでいくつか注意点を教えそこねてしまいました。

音を同時にたくさん出しすぎると、システム全体が固まってしまいます。 プログラムがとまるだけでなく、マシン全体がかたまります。なのであまり にたくさん音を同時に出しすぎないようにプログラム側で調整してください。

波形編集ソフト

Tiny Wave Editor (TWE)というフリーの波形編集ソフトを使ってサンプ ル音を作る方法を教えました。フリーソフトなので自分のマシンにもインス トールできます。

音楽CDからの取り込み

音楽CDからの取り込みにはRealJukebox Basicというソフトを使用しまし た。このソフトは学校のPCにはインストールできませんでした。このソフト もフリーなので、自分のPCにインストールして、自分で取り込めるようにす るといいと思います。

注意点は、TWEがMP3ファイルの読み込みに対応していないため、WAVファ イルにしなくてはいけないというところです。環境設定を変更することで、 WAVファイルとして取り込めるようになります。