課題 (09:サウンド)

作業について

今回の課題は以下のパッケージに作成してください。

パッケージの名前
j1.lesson09

作成するクラスの名前は問題ごとに指示があります。下記を参照してください

課題の提出方法については下記を参照してください。

また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。

新しい内容

音声を追記する

利用するWAVEファイル
harp.wav
kinkon.wav

音声の末尾に別のサンプル配列を追記するには、次のようなプログラムを書きます。

package j1.lesson09;

import gpjava.Clip;

public class Append {

    public static void main(String[] args) {
        new Append().start();
    }

    void start() {
        Clip first = Clip.load();
        Clip second = Clip.load();

        double[] firstSamples = first.getSampleData();
        double[] secondSamples = second.getSampleData();

        Clip result = Clip.create(first.getSamplingRate());
        result.addSampleData(firstSamples);
        result.addSampleData(secondSamples);
        result.addSampleData(secondSamples);

        result.save();
    }
}

次のように、「addSampleData()」メソッドを利用すると、音声の末尾にサンプル配列の内容を追加します。

clip.addSampleData([追記する配列]);

なお、作成した音声を再生する前に、必ず波形を確認してください。

問題

指定した音を作成する

作成するクラスの名前
CreateScale

0から12までの数値を入力させて、以下に対応する音を1秒分作成するようなプログラムを作ってください。

入力 音名 音階 周波数(Hz)
0 A4 440.00
1 A#4 ラ♯ 446.16
2 B4 493.88
3 C5 523.25
4 C#5 ド♯ 554.37
5 D5 587.33
6 D#5 レ♯ 622.25
7 E5 659.26
8 F5 ファ 698.46
9 F#5 ファ♯ 739.99
10 G5 783.99
11 G#5 ソ♯ 830.61
12 A5 880.00

なお、作成した音声を再生する前に、必ず波形を確認してください。

指定した音でメロディーを作成する

作成するクラスの名前
CreateMelody

0から12までの数値を次々と入力させて、以下に対応する音を順に0.2秒ずつ鳴らすような音声ファイルを作成するプログラムを作ってください。

入力 音名 音階 周波数(Hz)
0 A4 440.00
1 A#4 ラ♯ 446.16
2 B4 493.88
3 C5 523.25
4 C#5 ド♯ 554.37
5 D5 587.33
6 D#5 レ♯ 622.25
7 E5 659.26
8 F5 ファ 698.46
9 F#5 ファ♯ 739.99
10 G5 783.99
11 G#5 ソ♯ 830.61
12 A5 880.00

なお、上記以外の値が入力されたら終了です。

たとえば、3, 5, 7, -1 と順に入力した場合、C5, D5, E5を順に0.2秒ずつ鳴らすような音声ファイルを作成します。

なお、作成した音声を再生する前に、必ず波形を確認してください。