AudioKit 非常棒,它可以让你启动一些振荡器并即时改变它们的频率。现在我想改变波形的形状,以便为我的振荡器创建自定义音色。
有四种标准类型,实际上是 AudioKit 支持的五种:
- sine
- triangle (good sine approximate)
- square wave
- sawtooth
- reverse sawtooth wave
它们听起来都不同,但如果我可以通过使用内置的波表支持来改变波形的类型,那就太好了。
http://audiokit.io/docs/Structs/AKTable.html#/s:vV8AudioKit7AKTable6valuesGSaSf_提到了AKMorphingOscillator,它就像一个可以改变振荡器波形的奇迹类。默认值都有效,但我对填充 AKTable 字段真的很陌生。
git 页面https://github.com/audiokit/AudioKit/blob/master/AudioKit/Common/Internals/AKTable.swift 显示:
/// A table of values accessible as a waveform or lookup mechanism
public struct AKTable {
// MARK: - Properties
/// Values stored in the table
public var values = [Float]()
/// Number of values stored in the table
var size = 4096
/// Type of table
var type: AKTableType
// MARK: - Initialization
/// Initialize and set up the default table
///
/// - parameter tableType: AKTableType of teh new table
/// - parameter size: Size of the table (multiple of 2)
///
public init(_ tableType: AKTableType = .Sine, size tableSize: Int = 4096) {
type = tableType
size = tableSize
....
所以我的问题是,我可以直接访问values数组并简单地修改它来制作新的波形吗?有没有明智或惯用的方法来做到这一点?
丹克。