2016-11-21 50 views
0

我是所有這些的初學者。我的目標是創建一個處理文件,在加載時會播放30秒鐘的旋律。旋律應該在序列中多次改變。處理中音頻的循環和音量增加

我期待循環我的outplaynotes 30秒。還有一種方法可以增加這些音符的音量嗎?我想在playnotes的頂部播放音頻樣本,但樣本比playnotes響得多。衡量它們的最佳方法是什麼,體積明智?

import ddf.minim.*; 
import ddf.minim.ugens.*; 

Minim minim; 
AudioOutput out; 
myDelay; 

void setup() { 
    size(800, 300, P2D); 
    minim = new Minim(this); 
    out = minim.getLineOut(); 
    myDelay = new Delay(1.5,0.5, false,false); 

    out.pauseNotes(); 

    out.setTempo(240); 

    out.playNote(0.00, 1.0, new ToneInstrument(80, 0.5, out)); 
    out.playNote(2.00, 0.5, new ToneInstrument(100, 0.5, out)); 
    out.playNote(3.00, 0.5, new ToneInstrument(250, 0.5, out)); 
    out.playNote(4.00, 1.0, new ToneInstrument(90, 0.5, out)); 
    out.playNote(5.00, 1.0, new ToneInstrument(100, 0.5, out)); 
    out.playNote(6.00, 0.5, new ToneInstrument(120, 0.5, out)); 
    out.playNote(7.00, 0.5, new ToneInstrument(270, 0.5, out)); 
    out.playNote(8.00, 1.0, new ToneInstrument(110, 0.5, out)); 
    out.resumeNotes(); 
} 

class ToneInstrument implements Instrument { 

    Oscil  wave; 
    Damp damp; 

    ToneInstrument(float frequency, float amplitude, AudioOutput output) { 
     out = output; 

     wave = new Oscil(frequency, amplitude, Waves.TRIANGLE); 
     damp = new Damp(0.0001, 1.5); 
     wave.patch(damp); 
     wave.patch(myDelay); 
    } 

    void noteOn(float dur) { 
     damp.setDampTimeFromDuration(dur); 
     damp.activate(); 
     damp.patch(out); 
    } 

    void noteOff() { 
     damp.unpatchAfterDamp(out); 
    } 

} 

void draw() { 
} 

回答

0

對於循環,您可以使用the frameCount variablethe modulo operator做一些事情每X幀。下面是簡單地打印一些東西到控制檯每60幀或每秒一次一個小例子:

void draw(){ 
    if(frameCount % 60 == 0){ 
     println("frameCount: " + frameCount); 
    } 
} 

你會做同樣的事情,但你會彈奏的音符,而不是打印到控制檯。

至於音量,你最好的朋友是the Minim documentation。例如,AudioOutput類具有一些用於設置音量的功能。如果我是你,我會從那裏開始。

+0

我有16個playnotes,我怎樣才能把它們全部放在一起,幀數呢? – Ham

+0

@Ham如果你嘗試一些東西,你會有更好的運氣。您可以將註釋和幀持續時間存儲在數組中,或者可以創建一個包含該信息的類。然後,只需遍歷該數據結構並檢查幀持續時間,然後觸發相應的註釋。如果您遇到問題,請嘗試一下併發布新問題。 –