'カンマ区切りの数字の文字列からwaveFile() as byte を返す関数
    '"166,95,16,28,16,28,15,71,17,70,17"のようなStringを受け取り、
    'On,Off,On,Off…という状態になっていると仮定してWAVEファイルのバイト列を作って返す。
    Function makeWave(ByVal readBuffString As String) As Byte()

        ' カンマ区切りで分割して配列に格納する
        Dim readBuffArray() As String = Split(readBuffString, ",")

        '48kサンプリングで、48/5*4=38.4kHzの正弦波8bit WAVファイルをつくる。
        Dim onData() As Byte = {&H80, &H80, &H35, &HCB, &HF9, &H7, &H7, &HF9, &HCB, &H35}    ' バイト配列の定義
        Dim offData() As Byte = {&H80, &H80, &H80, &H80, &H80, &H80, &H80, &H80, &H80, &H80}    ' バイト配列の定義

        'waveFile作成用の配列を準備する。
        Dim waveDataArray() As Byte = {}

        For arrayIndex = 0 To readBuffArray.Length - 1

            For binaryIndex = 0 To CInt(readBuffArray(arrayIndex))
                Array.Resize(waveDataArray, waveDataArray.Length + 2)
                If arrayIndex Mod 2 = 0 Then

                    waveDataArray(waveDataArray.Length - 2) = onData((binaryIndex Mod 5) * 2)
                    waveDataArray(waveDataArray.Length - 1) = onData((binaryIndex Mod 5) * 2 + 1)
                Else

                    waveDataArray(waveDataArray.Length - 2) = offData((binaryIndex Mod 5) * 2)
                    waveDataArray(waveDataArray.Length - 1) = offData((binaryIndex Mod 5) * 2 + 1)
                End If
            Next

        Next



        'データ部分の長さを取得して、バイト列に変換(waveファイルのヘッダ用の長さ)
        Dim waveDataLengthArray() As Byte = BitConverter.GetBytes(waveDataArray.Length)

        '配列からwavefileの作成
        'ヘッダを読み込んで
        Dim waveFileByteArray() As Byte = File.ReadAllBytes("WAVE_HEAD_48000_8BIT_STEREO")

        '結合
        Array.Resize(waveFileByteArray, waveFileByteArray.Length + waveDataLengthArray.Length)
        Array.Copy(waveDataLengthArray, 0, waveFileByteArray, waveFileByteArray.Length - waveDataLengthArray.Length, waveDataLengthArray.Length)
        Array.Resize(waveFileByteArray, waveFileByteArray.Length + waveDataArray.Length)
        Array.Copy(waveDataArray, 0, waveFileByteArray, waveFileByteArray.Length - waveDataArray.Length, waveDataArray.Length)


        Return waveFileByteArray

    End Function