Как правильно расширить AKNode из AudioKit в пользовательском классе - PullRequest
0 голосов
/ 27 марта 2019

У меня есть собственный класс с именем harmonizer, который расширяет AKNode и содержит несколько других AKNodes из библиотеки AudioKit.Идея состоит в том, чтобы иметь в Harmonizer цепочку сигналов, которая может быть интегрирована в большую цепочку сигналов другого класса.У меня есть гармонизатор, расширяющий AKNode и принимающий AKNode в качестве входа, однако всякий раз, когда я вызываю цепочку сигналов гармонизатора из другого класса, приложение открывается при открытии.Я думаю, что, возможно, я неправильно определяю выходную сигнальную цепочку гармонизатора.

Вот внешний вызов гармонизатора:

input_signal = AKMicrophone()
input_booster = AKBooster(input_signal)
harmonizer = Harmonizer(input_booster)
output_mix = AKMixer(harmonizer)
AudioKit.output = output_mix

Вот функция init для класса Harmonizer:

init(_ input: AKNode) {
        freq_tracker = AKFrequencyTracker(input)
        chord_degree = 1
        current_chord = one_chord
        shifter1 = AKPitchShifter(freq_tracker)
        shifter2 = AKPitchShifter(freq_tracker)
        shifter3 = AKPitchShifter(freq_tracker)
        shifter4 = AKPitchShifter(freq_tracker)
        shifters = [shifter1, shifter2, shifter3, shifter4]
        lead_shifter = AKPitchShifter(input)
        tonic = 60.0
        super.init()
}
...