BeatMaker 2のInterAppAudioのバグ

ただいまKQ MiniSynthにシーケンサーを組み込もうとしてるのですが、InterAppAudioをテストしているうちによそのアプリのバグを発見しました。

IAAのプロパティにHostCallbackInfoから取得できるgetMusicalTimeLocationという関数があるのですが、この関数の定義には、第二引数のoutDeltaSampleOffsetToNextBeatは、「現在のバッファの先頭から次のビートまでのサンプル数を返す」となっています。
しかし、BeatMaker 2で試したところ、どうも「前のビートから現在のバッファまでのサンプル数」が返ってくるようです。
GarageBandではちゃんと「次のビートまでのサンプル数」が返ってきます。
報告したいけど私が英語できないから面倒(おい

以下、AudioUnitProperties.hより引用。

/*!
@typedef HostCallback_GetMusicalTimeLocation
@abstract Retrieve information about the musical time state of the host
@discussion
If the host app has set this callback, then the audio unit can use this to obtain
information about the state of musical time in the host. The audio unit can call this
callback only from within the audio unit render call (otherwise the host is unable to
provide information accurately to the audio unit as the information obtained is relate to
the current AudioUnitRender call). If the host cannot provide the requested information, it
will return kAudioUnitErr_CannotDoInCurrentContext.

The AudioUnit can provide NULL for any of the requested parameters (except for
inHostUserData) if it is not interested in that particular piece of information

@param inHostUserData Must be provided by the audio unit when it makes this call. It is the client data provided by the host when it set the HostCallbacks property
@param outDeltaSampleOffsetToNextBeat The number of samples until the next whole beat from the start sample of the current rendering buffer
@param outTimeSig_Numerator The Numerator of the current time signature
@param outTimeSig_Denominator The Denominator of the current time signature (4 is a quarter note, etc)
@param outCurrentMeasureDownBeat The beat that corresponds to the downbeat (first beat) of the current measure that is being rendered

*/
typedef OSStatus (*HostCallback_GetMusicalTimeLocation)(void * __nullable inHostUserData,
UInt32 * __nullable outDeltaSampleOffsetToNextBeat,
Float32 * __nullable outTimeSig_Numerator,
UInt32 * __nullable outTimeSig_Denominator,
Float64 * __nullable outCurrentMeasureDownBeat);

KIRA, Ryouta

キラキュー・テックの代表です。 アプリケーション・システムの開発などをしています。

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。

*