2013-03-27 18 views
3

我目前正試圖有效地使用Ausampler單位。我使用了蘋果示例中的代碼:https://developer.apple.com/library/ios/#samplecode/LoadPresetDemo/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011214-Intro-DontLinkElementID_2CoreAudio:Ausampler單位復調

缺點似乎是,如果同一張音符再次進入,它會立即停止音符/音節。 因此,如果我發送例如midi音符60與長號預設加載。然後,當我拿着這張紙時,我再次發送紙幣60。它切斷了第一個音符事件。有沒有人知道是否有可能持有每一張紙幣,直到註銷事件(這個特定筆記)出現爲止?

其他問題: 如何在音符發送後更改音量?例如。我以100的速度發送了midi音符60和70。雖然音符60仍在播放,但我想減少音量但保留音符70。這將被稱爲midi觸後。

希望你能幫助:)

回答

6

的AUSampler(kAudioUnitSubType_Sampler)是monotimbral(referencehere),這樣才能同時播放相同的間距的兩個音符,你將需要兩個「工具」 - 即實例的AUSampler。在我的項目中,我發現這並不會增加內存開銷,因爲聲音資源會被共享。

至於aftertouch - 我還沒有探討,但它似乎是你想要的財產是kAUGroupParameterID_KeyPressure_FirstKey(參考here,也許here)。

Supporting the kAUGroupParameterID_KeyPressure parameter indicates to 
hosts that your audio unit supports polyphonic "aftertouch" key pressure. 

Each of the 128 MIDI key numbers can have its own value for polyphonic 
aftertouch. To respond to aftertouch for a particular key, your audio 
unit needs to support an additional parameter specifically for that key. 
The aftertouch parameter ID for a given MIDI key is equal to the MIDI 
key number plus 256. For example, the aftertouch parameter ID for MIDI 
key #60 (middle C) is: 

60 + kAUGroupParameterID_KeyPressure_FirstKey = 316 

如果您的觸後工作發回一些示例代碼。

+0

嘿,非常感謝這些信息!我做了你所說的,並將3個採樣器放置在測試位置。如果我現在播放很多音符,我的音頻就會爆裂。我把3個採樣器放在一個混音器單元中,然後從那裏輸出到輸出端口。你有沒有做特別的事情來防止這種情況? – Max 2013-03-29 02:27:11

+0

@Max - 我主要使用.sf2(聲音字體),而不是使用LoadPresetDemo的自定義音頻。沒有用.sf2劈啪聲,我的設置也是一樣的:samplers> mixer> remoteIO。也許對自定義音頻有一些特殊的要求,以及它們是如何在預設中定義的 - 您是否爲自己的Apple提供了樣品?看看AULab - 也許在蘋果開發者論壇發佈 - 沒有那麼多信息在這裏@AUSampler/midi的東西。 – 2013-03-29 03:44:35

+0

@Max - 剛剛碰到這個。不@ @ crackles但有趣 - http://www.electricpeelsoftware.com/2013/02/22/creating-aupreset-files.html – 2013-03-29 03:50:23

4

接受的答案是錯誤的。 音色復調是兩個不同東西。單聲道音色意味着MIDI設備(在這種情況下爲AUSampler實例)只能同時播放一個INSTRUMENT/PATCH,與它可以在單個樂器上播放的併發數量無關。 另一方面,多音色設備可同時播放多個樂器/音色(midi聲道)。 複音在AUSampler的iOS版本中似乎有限且硬編碼爲2個音符,似乎沒有公開API來改變它。

+0

感謝您的回答。如何在iOS設備上將語音編號2'硬編碼爲2個音符'?任何API來獲得這個值?謝謝 ! – 2016-07-25 11:29:56

1

我不認爲AUSampler僅限於兩個音符複音。我只是在爲我的項目做研究,這對我來說非常重要。

看一看這個piano keyboard plugin,它的作者提到,這與AUSampler製成,從視頻中可以看到,它發揮四項注意和絃容易

+0

我可以用我寫的一個應用程序來確認,AUSampler可以同時播放超過2個音符。到目前爲止,我還沒有找到任何有關實際限制的信息,或者如果採樣器試圖播放盡可能多的音符(即128個音色,最多128個MIDI音符)。當然,這應該取決於使用的設備。 – bio 2016-12-30 19:42:13