2010-07-09 50 views
2

有人可以提供有關編程樂器模擬器的信息。例如,請參閱here(適用於iPhone的Smule的Ocarina應用程序)。編程樂器模擬器?

我想找到關於此主題的足夠信息。以ocarina應用程序爲例,單個筆記如何生成?由於結果是基於呼吸力度和哪些「洞」被壓低,所以必須以編程方式處理其中的一些,但是是以編程方式生成的全部聲音,或者它將在後端使用聲音樣本並修改(或那些,如果使用多個樣本)?

這個主題是否有任何資源?我的所有搜索都會提供關於如何播放音樂(僅標準音頻)或如何製作音樂(在音樂編輯軟件中)的信息,但沒有關於如何執行該視頻中顯示的內容的信息。

迴應不需要與ocarinas嚴格相關,但我不介意他們是否。

+0

人吹口哨成iphones?這個蘋果業務每天都變得越來越可笑... 無論如何樂器合成是一項艱難的業務,需要一些紮實的物理或數學知識。谷歌搜索「FM綜合」可能會有所幫助。 – 2010-07-09 16:50:50

回答

3

那個特定樂器的聲音,我就像是一個相當簡單的合成模塊,基於方波或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 –,但被警告,這不是數學上的心臟!
0

首先,我不太清楚你的問題是什麼。

有很多種聲音合成。幾個我知道的是:

  • 調頻
  • 振盪波
  • 表(基於樣品)

振盪是相當簡單的,可能開始的地方。如果你在440Hz產生一個方波,你就會發出「A」或更具體的中間音符A.

這種簡單的合成方式真的很有趣,而且很容易做到。也許你可以開始爲PC音箱製作一個簡單的合成器。哦,但我不知道是否所有的操作系​​統都允許你訪問它。 LADSPA有一些很好的例子。有很多用於Linux的庫文件可幫助您開始。你可能想看看CSound的爲首發:http://www.csounds.com/chapter1/index.html

我用它打了一下週圍,並有一對夫婦老土合成器回事...