那個特定樂器的聲音,我就像是一個相當簡單的合成模塊,基於方波或FM,加入混響濾波器。所以我猜測它是人爲產生的聲音。如果您要自己製作其中一種樂器,您可以根據需要使用樣本集作爲您的基礎。還有另一種可能性,我將在下面提及一種方法。
處理呼吸輸入:呼吸輸入通常轉換爲表示輸入麥克風上的氣壓的值。這可以通過對輸入音頻信號進行小塊處理並計算每個塊的峯值或RMS來完成。我喜歡RMS,其通過類似計算:
int BUFFER_SIZE = 1024; // just for purposes of this example
float buffer[BUFFER_SIZE]; // 1 channel of float samples between -1.0 and 1.0
float rms = 0.0f;
for (int i=0; i<BUFFER_SIZE; ++i) {
rms += buffer[i]*buffer[i];
}
rms = sqrt(rms/BUFFER_SIZE);
在MIDI,該值通常在信道CC2爲0和127之間的值該值隨後被用於連續控制的體積傳輸輸出聲音。 (在iPhone上,MIDI可能會或可能不會在內部使用,但概念是一樣的,無論如何,我都會從此處調用此值CC2。)
處理按鍵:這種情況下的按鍵可能只是直接映射到它們對應的筆記。這些將作爲新的音符事件發送到樂器。我不認爲那裏有什麼奇特的造型。
控制的其他形式:的笛儀器使用iPhone的傾斜來控制顫音頻率和音量。通常通過低頻振盪器(LFO)對其進行建模,該低頻振盪器的縮放,偏移和乘以樂器其餘部分的輸出以產生顫動音量效果。它也可以用來控制你的樂器的音調,它會導致音高波動。 (如果你使用的是樣品,這很難做到,但如果你使用的是波形,相對容易)。迷你MIDI風控制器也跟蹤手指壓力和咬合壓力,並且可以將這些參數作爲參數展示給你塑造你的聲音。
呼吸儀器201:有一些技巧,人拉,使聲音更具表現力,當他們由呼吸控制器控制:
- 確保您的輸出只打一個音符在一個時間;切換到新的音符會自動結束前一個音符。
- 如果呼吸壓力恆定並且連接了按鍵,請確保從舊音符到新音符的音量保持平穩。這可以讓您區分連奏和分離演奏。
呼吸儀器301:然後我們到了有趣的東西:如何模擬超吹,音色變化,部分指法等像一個真正的管樂器可以做。還有我能想到的在這裏的幾種方法:
- 混合的氣息輸入本身,或許以某種方式過濾的聲音,賦予自然chiff或breathiness到您的聲音。
- 使用速度層之間的交叉漸變將高速聲音轉換爲完全不同的聲音。換句話說,當你淡入新的聲音時,你逐漸淡出舊的聲音;他們演奏的音調相同,但新聲音的新音色特徵會使他們逐漸明顯。
- 使用具有大量高頻分量的複雜聲音。連接截止頻率由CC2控制的低通濾波器。截止頻率隨着CC2值的增加而增加。當您對輸入進行更加嚴重的打擊時,這可以以一種有趣的方式增加高頻內容。
- 這樣做的核心方式被稱爲物理建模。它涉及到創建你試圖仿效的樂器的物理行爲的詳細數學模型。這樣做可以給你一個相當逼真的吹泡效果,並且它可以捕捉呼吸輸入和指法如何塑造聲音的許多細微影響。在Princeton's Sound Lab有一個這種方法的快速概覽和一個示例工具戳in the STK C++ library –,但被警告,這不是數學上的心臟!
人吹口哨成iphones?這個蘋果業務每天都變得越來越可笑... 無論如何樂器合成是一項艱難的業務,需要一些紮實的物理或數學知識。谷歌搜索「FM綜合」可能會有所幫助。 – 2010-07-09 16:50:50