[英]AudioKit: change sound based upon gyro data / swing phone around?
这是一个AudioKit问题:
我真的是AudioKit和音频领域的新手。
我的问题是:我如何使用AudioKit创建随手机移动而改变的声音? 我已经知道如何获取陀螺仪信息,因此可以说我可以将0到10之间的陀螺仪值设为零,零表示无移动,而10表示电话的大量移动。 我想将其转换为声音,以使其与手机移动的速度有多快。 要开始,只需将声音随着速度的增加而提高音调,将低音调降低到零。 听起来很容易,是吗?
我只是没有足够的经验来知道要使用哪个AudioKit类或如何使用它来实现我的结果。
谢谢! 迈克尔
您必须编写自己的AKOperationGenerator。
enum PitchEnvVCOSynthParameter: Int {
case frequency, gate
}
struct PitchEnvVCO {
static var frequency: AKOperation {
return AKOperation.parameters[PitchEnvVCOSynthParameter.frequency.rawValue]
}
static var gate: AKOperation {
return AKOperation.parameters[PitchEnvVCOSynthParameter.gate.rawValue]
}
}
extension AKOperationGenerator {
var frequency: Double {
get { return self.parameters[PitchEnvVCOSynthParameter.frequency.rawValue] }
set(newValue) { self.parameters[PitchEnvVCOSynthParameter.frequency.rawValue] = newValue }
}
var gate: Double {
get { return self.parameters[PitchEnvVCOSynthParameter.gate.rawValue] }
set(newValue) { self.parameters[PitchEnvVCOSynthParameter.gate.rawValue] = newValue }
}
}
和
let generator = AKOperationGenerator { parameters in
let oscillator = AKOperation.squareWave(
frequency: PitchEnvVCO.frequency
)
return oscillator
}
然后让您的变量控制频率
var vco1Freq: Double = 440.0
{
didSet {
generator.parameters[PitchEnvVCOSynthParameter.frequency.rawValue] = vco1Freq
}
}
取陀螺仪的数据,并使其控制你的变量像描述在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.