AudioKit 入门教程

原文:AudioKit Tutorial: Getting Started 作者:Colin Eberhardt 同时感谢:kmyhy


近来手上有一些音频相关的开发工作,搜搜基Hub,目前最为强大,性能屌爆,编码炫酷的开源库也只有AudioKit了。Raywenderlich也能找到相关教程,介于作者是3.0+的教程,很多代码都不能跑了,特此整理一趴。 本文不仅是一篇iOS开发教程,更是一篇精彩的科普文。关于编程与艺术的结合,声学物理与音乐的碰撞,尽在此文。推荐所有程序员都好好读一读它,让我们的生活除了代码,还有艺术,还有音乐。感谢作者Colin Eberhardt

iOS 设备提供了丰富的多媒体体验,比如绚丽的视觉效果、声音和可触摸的交互界面。尽管能够使用各种各样的特性,但作为开发者,我们更多地关注了应用的视觉设计,而忽略了用户体验的声学效果。

AudioKit是一个高级音频框架,由声学设计师、程序员和音乐家为 iOS 专门打造。AudioKit底层混合了SwiftObjective-CC++C,负责和苹果音频已硬件的Api打交道。所有神奇(同时十分复杂的)技术都封装成为极其友好的 Swift Api ,你甚至可以直接在XcodePlayground中使用它。

本文无法全面覆盖 AudioKit 的知识点。相反,我们会通过介绍声音合成和计算机声频的历史,来带你进行一次有趣和时尚的 AudioKit 之旅。通过这种方式,你会学到基本的声学物理,了解早期的合成器比如电子琴是如何工作的。最终来到现代,一个大混音时代。

请给自己来一杯咖啡,拖过一张椅子,开始我们的旅程!

开始

原教程的原始内容使用的是 3.4.0 版本,用的是Playground做案例,本文使用最新的 4.3.0 ,用Xcode创建的Swift项目做案例。

港真,教程的第一步并不是特别鸡冻的。为了在 Playground 中使用 AudioKit,我们必须提前进行一些准备工作。

我们需要先到AudioKit下源码AudioKit-4.3,或者自行clone:

git clone https://github.com/AudioKit/AudioKit.git
复制代码

解压好后用Terminal进入AudioKit-4.3文件夹执行编译命令:

$ cd Frameworks
$ ./build_frameworks.sh
复制代码

编译时间较长(14的顶配编译的近十分钟吧),你阔以继续阅读,或者撸一把,或者鸡一把。

一定要编译完成,编译好后进入Playgrounds文件,打开下面的AudioKitPlaygrounds.xcodeproj,这里我们就阔以看官方为我们写好的示例代码,提前体验一把 AudioKit 的强大。体验完了别忘了纸巾,进入正题开始教程之旅。

新建一个名为JorneryPlayground。录入一下代码:

import AudioKitPlaygrounds
import AudioKit


let oscillator = AKOscillator()

AudioKit.output = oscillator
try? AudioKit.start()

oscillator.start()

sleep(10)
复制代码

编译时,你会听到大约 10 秒钟的蜂鸣声。你可以点击 Playground 调试窗口左下角的 Play/Stop 按钮停止或运行 Playground。

注意:建议打开工程的时候就直接Command + B编译一遍,再跑想看的代码。如果 Playground 执行出错,并在 Debug 窗口中出现错误,你可以重启 Xcode。不幸的是,当 Playground 和框架一起使用时,总是容易出现一些小问题,并且无法预知。 另外建议把 Run 方式改为 Manually RunAutomatically Run太容易故障了。

振荡器和声学基础

人类通过物体制造音乐——通过击打、拖拉或者弹奏等形式——有数千年的历史。我们的许多民族乐器,比如鼓、吉他,已经发明几个世纪了。电子乐器的第一个次使用记录,或者是第一次通过电路发声,是 1874 年 Elisha Gray 创下的,他从事电信行业。Elisha 发明了振荡器,最原始的声音合成装置,你的探索将从这个东西开始。

右键点击 Playground,选择 New Playground Page,创建一个新的 Playground 文件 Oscillators

将 Xcode 产生的代码替换为:

import AudioKitPlaygrounds
import AudioKit


// 1. Create an oscillator
let oscillator = AKOscillator()

// 2. Start the AudioKit 'engine'
AudioKit.output = oscillator
try? AudioKit.start()

// 3. Start the oscillator
oscillator.star
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值