- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 MusicPlayer API。我知道当您将 .mid 作为序列加载时,API 会为您创建一个默认的 AUGraph,其中包括一个 AUSampler。这个 AUSampler 使用一个简单的基于正弦波的乐器来合成 .mid 中的音符
我的问题是,如何更改 AUSampler 中的默认乐器?我知道您可以使用 SoundFont2 文件 (.sf2) 并使用 AudioUnitSetProperty 方法添加它们。但是,如何访问这个默认的 AUGraph?您是否必须先打开图表才能编辑 AudioUnit,或者打开图表只是为了编辑节点之间的连接?
谢谢:)
最佳答案
我已经写了一个教程,但是 here但这里是流程的概要:
加载声音字体文件的函数(取自 Apple 文档):
-(OSStatus) loadFromDLSOrSoundFont: (NSURL *)bankURL withPatch: (int)presetNumber {
OSStatus result = noErr;
// fill out a bank preset data structure
AUSamplerBankPresetData bpdata;
bpdata.bankURL = (__bridge CFURLRef) bankURL;
bpdata.bankMSB = kAUSampler_DefaultMelodicBankMSB;
bpdata.bankLSB = kAUSampler_DefaultBankLSB;
bpdata.presetID = (UInt8) presetNumber;
// set the kAUSamplerProperty_LoadPresetFromBank property
result = AudioUnitSetProperty([pointer to your AUSampler node here],
kAUSamplerProperty_LoadPresetFromBank,
kAudioUnitScope_Global,
0,
&bpdata,
sizeof(bpdata));
// check for errors
NSCAssert (result == noErr,
@"Unable to set the preset property on the Sampler. Error code:%d '%.4s'",
(int) result,
(const char *)&result);
return result; }
然后您需要从资源文件夹中加载声音字体:
NSURL *presetURL = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Name of sound font" ofType:@"sf2"]];
// Initialise the sound font
[self loadFromDLSOrSoundFont: (NSURL *)presetURL withPatch: (int)10];
希望这对您有所帮助!
关于iphone - 如何编辑 AUGraph 的默认工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9789179/
我有一个带有精心设计的渲染回调的应用程序,我怀疑它可以用 AVAudioEngine 来完成。 无论如何要在 AVAudioEngine 中使用我的 AUGraph 渲染回调(带有多个总线)? 任何示
我正在尝试在播放(渲染)期间重新排列 AUGraph 中的节点。特别是,我试图在这两种设置之间切换: 多 channel 调音台 -> 远程 I/O 多 channel 混频器 -> 转换器 #0 -
当我使用AUGraph实现麦克风播放声音时, 我有一个问题,在设备(iphone 3g)中,我只能从耳机的右侧听到声音, 但在模拟器中效果很好,我可以从耳机的两侧听到声音。 这是我用来将输入连接到输出
我在使用 MixerUnit 和 OutputUnit 从 AUGraph 获取音频时遇到问题。我构建了一个混合 2 个音频文件的图形。这是我创建图表的代码。我没有任何错误。 NSLog(@"init
我正在使用 Apple 的 MixerHost 应用程序。这是如何设置 AuGraph 的一个很好的例子,但是停止按钮实际上是一个暂停按钮。当您点击播放时,它会继续从最后一个位置播放声音文件。我想要一
我正在使用 MusicPlayer API。我知道当您将 .mid 作为序列加载时,API 会为您创建一个默认的 AUGraph,其中包括一个 AUSampler。这个 AUSampler 使用一
我正在尝试创建一个流线型的音频应用程序,它从 iPhone 获取麦克风输入的音量,并使用它来设置从另一个音频单元源播放的声音的音量。 我更愿意使用图表来完成所有这些工作。除了音量水平之外,我不需要来自
当我第一次启动 AUGraph 并使用 kAudioUnitSubType_AudioFilePlayer 组件播放歌曲时,我收到了断断续续的声音。卡顿时间大约为 3 秒,但这足以打扰我,而且我注意到
我正在尝试编写(应该是什么)一个简单的应用程序,该应用程序在 AUGraph 中按顺序包含一堆音频单元,然后将输出写入文件。我使用 AUGraphAddRenderNotify 添加了一个回调。这是我
我的 iOS 应用程序有 4 个文件播放器单元连接到 AUGraph 中的混音器单元。我希望用户能够将四个 filePlayer 单元的“混合”作为一个 .caf 文件通过电子邮件发送。 我通过将回调
我正在为 iOS 应用程序设计 AUGraph,希望能在以下方面提供帮助。 如果我想一次播放多个音频文件,是否每个文件都需要一个音频单元? 来自 Core-Audio 文档 Linear PCM an
我有一个 AUGraph 可以使用此设置播放和录制音频: RemoteIO -> -> RemoteIO
我正在使用 AUGraph 和 AUSampler 将 MIDI 信号转换为音频。该应用程序正常运行良好,但如果应用程序被中断,即被电话或计时器中断,则会出现问题。中断后 AUGraph 停止运行,没
我是 iOS 编程的新手(我更像是一个 Android 人..)并且必须构建一个处理音频 DSP 的应用程序。 (我知道这不是接近 iOS 开发人员的最简单方法;)) 应用需要能够接受来自以下方面的输
在 OSX 上,我正在为我的音频系统创建一个 AUGraph,如下所示: OSStatus result = NewAUGraph(&mGraph); AUNode outputNode; Audio
我有基于 AUGraph 的播放器(我需要均衡器)。播放器可以播放本地音频文件。现在我想添加支持流音频。我可以用它做什么?任何像 AVAssetReader 这样的标准类(AVAssertReader
要开始通话,我们的 VOIP 应用会设置一个 AVAudioSession,然后构建、初始化并运行一个 AUGraph。 在通话期间,我们允许用户使用以下代码在扬声器模式之间来回切换: avSessi
我正在开发一个包含 EQ 部分的合成器,想知道是否有人对音频单元链接在一起的顺序有建议。 目前我的图表看起来像这样: AUSampler -> Lowpass Unit -> Highpass Uni
我实现了一个类似于 iOS Developer's Library 上的 AUGraph .但是,在我的应用程序中,我需要能够以不同的采样率(可能是两个不同的采样率)播放声音。 我一直在查看 Appl
我在将混合器单元插入 AUGraph 时遇到问题,否则在 Mac OS 和 iOS 上都可以正常工作。 我的工作图如下所示: (My Audio render callback) node 2
我是一名优秀的程序员,十分优秀!