[英]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.