@@ -198,13 +198,15 @@ public extension File {
198198 func prepareSongForPractise( outputFolder: Folder , overwrite: Bool = true ) throws {
199199 let inputFolder = parent!
200200
201+ let fileName50 = nameExcludingExtension + " @50.m4a "
201202 let fileName75 = nameExcludingExtension + " @75.m4a "
202203 let fileName90 = nameExcludingExtension + " @90.m4a "
203204 let fileName100 = nameExcludingExtension + " @100.m4a "
204205
205206 if !overwrite {
206207 let outputPath = outputFolder. path
207- if FileManager . default. fileExists ( atPath: outputPath. appendingPathComponent ( path: fileName75) )
208+ if FileManager . default. fileExists ( atPath: outputPath. appendingPathComponent ( path: fileName50) )
209+ && FileManager . default. fileExists ( atPath: outputPath. appendingPathComponent ( path: fileName75) )
208210 && FileManager . default. fileExists ( atPath: outputPath. appendingPathComponent ( path: fileName90) )
209211 && FileManager . default. fileExists ( atPath: outputPath. appendingPathComponent ( path: fileName100) ) { return }
210212 }
@@ -223,11 +225,15 @@ public extension File {
223225 print ( " Normalizing sample rate " )
224226 let normWavFile = try originalWavFile. normalizeSampleRate ( newName: inputFolder. path. appendingPathComponent ( path: " wav-file-norm.wav " ) )
225227
228+ print ( " Converting to 50% speed " )
229+ let file50 = try normWavFile. slowDownAudio ( newName: inputFolder. path. appendingPathComponent ( path: " tempo-50.wav " ) , percent: 0.5 )
226230 print ( " Converting to 75% speed " )
227231 let file75 = try normWavFile. slowDownAudio ( newName: inputFolder. path. appendingPathComponent ( path: " tempo-75.wav " ) , percent: 0.75 )
228232 print ( " Converting to 90% speed " )
229233 let file90 = try normWavFile. slowDownAudio ( newName: inputFolder. path. appendingPathComponent ( path: " tempo-90.wav " ) , percent: 0.9 )
230234
235+ print ( " Adding initial silence to 50% speed file " )
236+ let silencedFile50 = try file50. addSilence ( newName: inputFolder. path. appendingPathComponent ( path: " silence-50.wav " ) )
231237 print ( " Adding initial silence to 75% speed file " )
232238 let silencedFile75 = try file75. addSilence ( newName: inputFolder. path. appendingPathComponent ( path: " silence-75.wav " ) )
233239 print ( " Adding initial silence to 90% speed file " )
@@ -236,20 +242,24 @@ public extension File {
236242 let silencedFile100 = try normWavFile. addSilence ( newName: inputFolder. path. appendingPathComponent ( path: " silence-100.wav " ) )
237243
238244 print ( " Converting to M4A " )
245+ let silencedM4AFile50 = try silencedFile50. convertToM4A ( newName: inputFolder. path. appendingPathComponent ( path: fileName50) )
239246 let silencedM4AFile75 = try silencedFile75. convertToM4A ( newName: inputFolder. path. appendingPathComponent ( path: fileName75) )
240247 let silencedM4AFile90 = try silencedFile90. convertToM4A ( newName: inputFolder. path. appendingPathComponent ( path: fileName90) )
241248 let silencedM4AFile100 = try silencedFile100. convertToM4A ( newName: inputFolder. path. appendingPathComponent ( path: fileName100) )
242249
243250 // Move result to output dir
244251 print ( " Moving to destination folder " )
252+ try silencedM4AFile50. move ( to: outputFolder)
245253 try silencedM4AFile75. move ( to: outputFolder)
246254 try silencedM4AFile90. move ( to: outputFolder)
247255 try silencedM4AFile100. move ( to: outputFolder)
248256
249257 // Clean up
250258 try originalWavFile. delete ( )
259+ try file50. delete ( )
251260 try file75. delete ( )
252261 try file90. delete ( )
262+ try silencedFile50. delete ( )
253263 try silencedFile75. delete ( )
254264 try silencedFile90. delete ( )
255265 try silencedFile100. delete ( )
0 commit comments