音楽を再生する

概要

講座で音楽を再生する場合はSoundライブラリを使うようにお伝えしましたが、WindowsかつPythonの場合はバグが有るようです。公式が公式謹製サウンドライブラリを出したって言うから、使ったのに😂

https://github.com/processing/processing-sound/issues/23

代わりに、昔から使われているサウンドライブラリminimを使ってください。

ライブラリのインストール

  1. [メニューバー] → [スケッチ] → [ライブラリをインストール…] → [ライブラリを追加]
  2. フィルター欄に「minim」を入れて検索(Enterキーを押下)
  3. [Minim | An audio library that ……](執筆時Ver2.2.2) を選択
  4. Installボタンを押下

サンプル1

サウンドファイルBGM01.mp3~ BGM03.mp3は各自用意してください。

add_library("minim")
mi = None
BGM01, BGM02, BGM03 = None, None, None

def setup():
    global mi, BGM01, BGM02, BGM03
    size(300,300)
    
    mi = Minim(this)
    BGM01 = mi.loadFile("BGM01.mp3")
    BGM02 = mi.loadFile("BGM02.mp3")
    BGM03 = mi.loadFile("BGM03.mp3")

def draw():
    background(220, 232, 148)
    
    if keyPressed:
        BGM01.pause()
        BGM02.pause()
        BGM03.pause()
        
        if key == "1":
            BGM01.play(0)
        if key == "2":
            BGM02.play(0)
        if key == "3":
            BGM03.play(0)
            
        textSize(200)
        textAlign(CENTER)
        fill(255)
        text(key, width/2, height/2 + 100)

使い方

loadFileで読み込んで返されるAudioPlayerの使い方です。
ちなみに効果音などの短いオーディオはloadSampleを使います。

コンストラクタMinim(parent)
parent:thisとする
読み込みloadFile(filename)
filename:ファイル名(string)
.mp3, .wavなどが扱える
再生play()
再生(ループ)void loop(num)…回再生
void loop()…無限再生
num:繰り返し回数(int)
停止ない
一時停止pause()
再生位置はそのまま
音量設定setVolume(value)
value:音量0~1(float)
音量取得left.level()
right.level()
左右の音量を0~1(float)で習得する

サンプル2

サウンド(mp3)を再生して、左右の音量レベルをリアルタイムにコンソール出力するサンプルです。

add_library("minim")
mi = None
BGM01 = None

def setup():
    global mi, BGM01
    size(500, 500)

    mi = Minim(this)
    BGM01 =  mi.loadFile(u"烈火の如く.mp3") # サウンド読み込み
    BGM01.play()                            # サウンド再生

def draw():
    levelLeft = BGM01.left.level()   # 音量レベル(左)の取得
    levelRight = BGM01.right.level() # 音量レベル(右)の取得
    print("{},{}".format(levelLeft, levelRight))

リファレンス(詳しくはこちら(英語))

http://code.compartmental.net/minim/index.html

コメントする