870920 Menu

JUCE类库快速上手的最佳方案

首先,对C++这门计算机语言要有所了解,最好有一定的编程经验。能用面向对象的方法,采取不同的维度和角度来分析,解决,提炼并总结所遇到的各类问题。

当然,这不是必须的。直接从实际需求和JUCE类库下手,开门见山,刺刀见红,边干边学,以干促学,其实也未尝不可,甚至效率更高,进步更快。只是C++语言本身和面向对象的思维方式,其内涵实在过于庞杂深远,学习曲线更是公认的陡峭。直接开干,过一段时间之后,尽量还是要回头再深究一下基础性的东西,包括数据结构与算法、设计模式等必修内容。否则,仅靠盲目实践,就算依托于JUCE这样的优秀类库,到了一个点之后,也很难再有精进。

而后……

下载JUCE类库。

用当前平台已安装的主流IDE打开JUCE类库附带的示例程序(JUCE Demo),找到与你的平台对应的该程序的项目文件,地址大概是:examples/JuceDemo/Builds/…

尝试编译Demo程序,运行。

这个Demo程序展示了JUCE类库的许多原生功能,是了解并深入研究该类库最鲜活、最权威的导引与入门指南。我个人强烈建议每个打算使用JUCE类库的程序员,无论水平高低,无论经验多寡,均有必要专门抽出2-3个月的时间,将该Demo的每一个源文件,每一个类,每一行代码都仔细研究一遍,并对关键代码进行详细注释和追根溯源。

研究时建议适当修改源码,每次都重新编译,仔细观察、比较、揣摩、思索。这种体验是学习任何一个C++类库最快速的捷径,没有之一。可辅助画一些类图、思维导图,或做文字笔记,适当复习等等,以加深理解和记忆。

研究完Demo示例之后,最好大体浏览一下JUCE类库的API在线文档。看看每一个类都是干什么的,有什么方法(public函数,静态函数、枚举、属性等等)。如果作为基类,派生类又能干什么……等等。

JUCE类库附带了好几个示例程序。如果要进行专业音频插件、软音源和音频宿主软件的开发,另外两个与之相关的示例绝对不能错过。这两个示例非常经典和精炼,值得反复揣摩。同样建议逐行研究。要深究,必须要深究。我个人强烈建议画出完整、详尽的类图(要注明每个类的重要方法与属性)。不要在计算机或iPad上画类图,买几张最大开的纸,钉在墙上,用彩色铅笔、尺子和橡皮,手工来画。如果对UML比较熟练,除了类关系图之外,用例图、协作图、顺序图等等,都可以逐个画出来。越详细越好。

在此过程中,可编译并随时启动Introjucer,摸摸它的功能与用法。特别是创建和管理项目,创建和管理文件,各平台下IDE编译指令的设置……等等。注意:项目中添加文件,一律在Introjucer中进行,绝对不要在IDE中搞。Introjucer是用JUCE类库编程的最佳伴侣和贴心助手,须臾不可或缺。

尽管Introjucer可以进行GUI界面设计,但初期阶段,建议还是手工编码来设计GUI。这些,说实话并没有什么技术含量,类似做网页的前台设计与修改,但是相当耗时费力,如果不熟,编码效率难免很低,而且反复做无用功,让人审美疲劳,满腔怒火。(当然,GUI部分对程序员的艺术品位和美学鉴赏力的要求还是很高的)。

研究示例代码和Introjucer的过程中,随时可参考Hello World示例,看看界面元素、主界面(基础组件)、文档窗口、主程序类和启动宏是个什么关系,每个玩意儿主要负责什么,如何一个套一个,有条不紊的线性“串联”,以及它们启动及退出时的执行顺序,也就是说,一个GUI程序用JUCE类库来编码,是如何跑起来的,又是如何关闭的。

随时可动手码字母。创建GUI项目,弄个窗口,窗口带主界面(这几个最基础、最重要的步骤,Introjucer可以全部代劳,当然,也可以从无到有,手工敲出来)。然后,在主界面(基础组件)里画点东西,贴个图片,绘制文本啥的,接着添加若干可以交互的GUI元素,或者执行个小功能,等等。多体验和摸索摸索。

感觉差不多了,随便想个什么小项目,无论软件还是插件,动手编起来。完工后在不同的操作系统上编译,修改完善,尽力保证多平台下程序运行和用户界面的一致性(特别是字体样式及大小)。

尽量多试验一些JUCE的类。至少搞出来无太多废话的万把行代码,三四个有实际意义和具体作用的小程序后,基本就算上手了。