@@ -45,7 +45,6 @@ class Output {
4545 let abl = UnsafeMutableAudioBufferListPointer ( ioData) !
4646 let output = Unmanaged < Output > . fromOpaque ( inRefCon) . takeUnretainedValue ( )
4747 let engine : Engine ! = output. engine!
48- let inputDevice = Driver . device!
4948 let sampleTime = inTimeStamp. pointee. mSampleTime
5049 var currRate = output. varispeed. rate;
5150
@@ -55,7 +54,7 @@ class Output {
5554 Console . log ( " Last Input Time: " , engine. lastSampleTime)
5655 Console . log ( " First Output Time: " , output. firstOutputTime)
5756 Console . log ( " Delta: " , delta)
58- output. computeThruOffset ( inputDevice : inputDevice , outputDevice : output . device )
57+ output. computeOffset ( )
5958
6059 Console . log ( " Initial Offset: " , output. inToOutSampleOffset)
6160 if delta < 0 {
@@ -97,13 +96,15 @@ class Output {
9796 rate = currRate - 0.0002 ;
9897 }
9998 output. varispeed. rate = rate;
100- // Console.log("rate: " , rate, error ) ;
99+ // Console.log("Rate: \( rate)" ) ;
101100 }
102101
103102 let startRead = Int64 ( sampleTime - output. inToOutSampleOffset)
104103 // Console.log("Reading: ", inNumberFrames, startRead)
105104
106- if engine. ringBuffer. fetch ( ioData!, framesToRead: inNumberFrames, startRead: startRead) != . noError {
105+ let err = engine. ringBuffer. fetch ( ioData!, framesToRead: inNumberFrames, startRead: startRead)
106+
107+ if err != . noError {
107108 makeBufferSilent ( abl)
108109 // var bufferStartTime: SampleTime = 0
109110 // var bufferEndTime: SampleTime = 0
@@ -112,7 +113,7 @@ class Output {
112113 output. firstOutputTime = - 1 ;
113114 output. initialOffset = 0 ;
114115 output. varispeed. rate = output. intialCalcRate;
115- Console . log ( " ERROR " ) ;
116+ Console . log ( " ERROR: \( err ) " ) ;
116117 return noErr
117118 }
118119 // Console.log("Output Finished! Silence", bufferSilencePercent(ioData!))
@@ -139,7 +140,7 @@ class Output {
139140 self . device = device
140141 self . engine = engine
141142
142- computeThruOffset ( inputDevice : Driver . device! , outputDevice : device )
143+ computeOffset ( )
143144 outputEngine. setOutputDevice ( device)
144145
145146 let outputSampleRate = device. actualSampleRate ( ) !
@@ -183,12 +184,12 @@ class Output {
183184 Console . log ( " Output Engine started " )
184185 }
185186
186- func computeThruOffset ( inputDevice : AudioDevice ,
187- outputDevice : AudioDevice ) {
187+ func computeOffset ( ) {
188+ let inputDevice = Driver . device!
188189 let inputOffset = inputDevice. safetyOffset ( direction: . recording)
189- let outputOffset = outputDevice. safetyOffset ( direction: . playback)
190190 let inputBuffer = inputDevice. bufferFrameSize ( direction: . recording)
191- let outputBuffer = outputDevice. bufferFrameSize ( direction: . playback)
191+ let outputOffset = device. safetyOffset ( direction: . playback)
192+ let outputBuffer = device. bufferFrameSize ( direction: . playback)
192193 inToOutSampleOffset = Double ( inputOffset! + outputOffset! + inputBuffer + outputBuffer)
193194 }
194195
0 commit comments