问题标签 [juce]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - USB 上可接受的 MIDI 带宽是多少?
我正在使用 C++ 中的 Juce 框架处理 MIDI 效果(一个修改传入 MIDI 的 VST 插件生成新数据并将其转发出去)。我发现在技术上可以使用每个样本生成新的 MIDI 消息,使我的 MIDI 流以 16 到 24 位每秒 41,000 次或更多次。这对于 MIDI 硬件来说似乎完全不可能处理。
当我决定通过 USB 连接新旧硬件合成器的 MIDI 带宽时,我必须遵守任何准则或规则吗?
编辑:我应该补充一点,对于我想要做的事情,更高的带宽会有所帮助,但应该与 Arturia Minibrute 等硬件一起使用。我正在尝试做一些新颖的事情,例如将包络和 LFO 应用于调制和音高轮。
c++ - 如何在 OS X 10.10 上的 Xcode 6 中提供库框架?
我有这个在 OS X 10.9 上工作。
我已将库框架 (aubio) 导入 10.10 SDK 文件夹:/ Applications ▸ Xcode.app ▸ Contents ▸ Developer ▸ Platforms ▸ MacOSX.platform ▸ Developer ▸ SDKs ▸ MacOSX10.10.sdk ▸ System ▸ Library ▸ Frameworks
它显示在 Xcode 中。但是当我去编译项目时它告诉我它找不到标题。
因此,我必须在每次重新保存项目时手动导入框架(有时在使用Introjucer时会很频繁)。然后,这显示了框架的两个副本。然后我可以使用导入语句并构建项目。
如何让框架最初被 Xcode 识别,这样我就可以编译项目而无需每次都重新导入它?
plugins - 使用 JUCE 框架命名音频插件
我最近一直在使用 JUCE 框架开发一些音频插件。我在命名插件时遇到问题。我为完全不同的插件创建了单独的项目。但是,当我通过启动 Logic Pro X 加载插件时,我似乎只获得了我构建的最新插件,但是,该插件始终是我制作的第一个插件的标题。也就是说,好像我做一个新插件的时候,它取了我以前插件的名字并替换了它。
我尝试重命名插件代码,但 AU 验证工具将插件识别为具有前一个插件的插件代码。
有没有人遇到过这个问题或对可能导致它的原因有任何建议?
另外,我在使用 JUCE 之前使用的是 WDL 框架并且遇到了同样的问题。这当然让我认为问题不是特定于 JUCE 或 WDL。
任何输入表示赞赏,谢谢!
c++ - 实时音频应用
我设计了一个音频可视化插件,它绘制输入波形的实时渲染和输入音频数据的一些分析(例如频谱图)。用户可以使用界面上的一些旋钮修改分析引擎设置。从音频线程收集的数据通过使用无锁循环缓冲区传输到事件线程(以更新波形视图和分析视图)。
所以我的问题是,当我从接口传递参数值以重新配置音频引擎时,我应该发送同步通知还是异步通知?使用异步似乎很常见,但我找不到原因。如果有人可以向我解释,那将非常有帮助。
谢谢你。
c++ - 64 位架构的 iOS JUCE 库问题
我正在研究具有 32 位架构的 JUCE 库的非常古老的项目。几天前,我确实将它从 32 位架构转换为 64 位架构,但出现了问题。而且 JUCE 库也有 C++ 代码,很难理解为什么会发生错误。
我得到以下错误。
在pointer_sized_int
变量。
而且我也尝试设置long pointer_sized_int
,但发生了其他一些错误。
我的意思是这个库与 64 位体系结构不兼容。(我正在使用)
基本上我在项目的源代码中使用了“JUCE Amalgamation”库,并且我找到了这个库并包含在我的项目中(我尝试了很多方法来修复它)但没有成功。
以前有人遇到过这类问题吗?请建议我如何解决这个问题。
谢谢。
c++ - 在 JUCE Audio App 中初始化 AudioDeviceManager
我正在尝试在 MainContentComponent 的构造函数中初始化 AudioDeviceManager 的实例:
MainContentComponent(): deviceManager (getSharedAudioDeviceManager())
在哪里
我的声明是:
AudioDeviceManager& deviceManager;
static ScopedPointer<AudioDeviceManager> sharedAudioDeviceManager;
没有编译错误,但我有运行时错误,其中编译器告诉我:
Undefined symbols for architecture x86_64:
"MainContentComponent::sharedAudioDeviceManager", referenced from:
MainContentComponent::getSharedAudioDeviceManager() in MainComponent.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
完全迷失了。帮助!
c++ - C++:是否有一种简单的方法可以将十六进制颜色“0xff2a2620”“映射”到更易读的字符串“lovelyBrown”?
我正在使用具有如下方法的Juce 框架setColour
:
g.setColour (Colour (0xff2a2620));
相反,我想写一些更具可读性的东西,例如:
g.setColour (Colour (lovelyBrown));
, '映射'0xff2a2620
到 'lovelyBrown'。
该方法的原型是:
explicit Colour (uint32 argb) noexcept;
哪里uint32
是:
/** A platform-independent 32-bit unsigned integer type. */
typedef unsigned int uint32;
Juce 已经有了很好的可读颜色名称,例如:
const Colour Colours::tomato (0xffff6347);
,使用一种方法来查找给定名称的颜色:
static JUCE_API Colour findColourForName (const String& colourName,
const Colour& defaultColour);
但是,我不想修改或子类化他们的 Colors 类。我想知道是否有更简单的“映射”0xff2a2620
到“lovelyBrown”的方法?
c++ - JUCE ViewPort 如何
我有一个名为 Obstacle 的组件,我使用 addAndMakeVisible 和 setBounds 函数将它用作 mainContentComponent 中的组件。我希望在我的窗口上滚动这个障碍组件,关于时间。我正在使用计时器和 setBounds 函数来执行此操作。
我意识到使用 setBounds 每次都会调用绘制函数,并且每次调用绘制函数时都会创建我的组件。我想使用 viewPort 类并使用 setViewedComponent 类将我的组件传递给视口对象。我使用了 API,但没有多大帮助。有人可以指出如何使用 ViewPort 来在窗口中滚动我的 juce::component 的示例吗?
非常感谢。
c++ - 如何使用 Juce 为脉冲响应加载音频文件
我目前正在为大学创建一个卷积混响插件,并且我已经下载了一个已经制作好的卷积器库以在插件中使用。我有一些生成脉冲响应的代码,但是我不太确定如何将实际的音频文件加载到进程中。
这是卷积器类:
这是我用来实现脉冲响应的代码(但不是音频文件):
在进程块中......
谁能告诉我如何使用脉冲响应的实际音频文件?
c++ - 在 Juce 中使用 AudioFormatReader 加载脉冲响应
我正在使用 Juce 创建一个卷积混响插件,但在加载脉冲响应音频文件时遇到了一些问题。
我正在使用 AudioFormatReader 类。这是我到目前为止实现的代码,它产生了一些错误:
这只是尝试加载一个音频文件,最终我想要很多。
这是 AudioFormatReader 类文档的链接: