SwiftLAME is a lightweight Swift wrapper around the open-source LAME project for encoding audio files to MP3 format. This project was created to support the MP3 conversion feature of our Producer Toolkit macOS App.
SwiftLAME has been tested on macOS 12+, and iOS 15+, although older versions are likely supported. Consider contributing a change to Package.swift if you find this to be the case.
Add the dependency to your Package.swift
file:
dependencies: [
.package(url: "https://github.com/hidden-spectrum/swiftlame", .upToNextMajor(from: "0.1.0")),
]
import SwiftLAME
let progress = Progress()
let lameEncoder = try SwiftLameEncoder(
sourceUrl: URL("file:///path/to/source/file.wav"),
configuration: .init(
sampleRate: .constant(44100)
bitrateMode: .constant(320)
quality: .mp3Best
),
destinationUrl: URL("file:///path/to/destination/file.wav"),
progress: progress // optional
)
try await lameEncoder.encode(priority: .userInitiated)
SwiftLAME supports converting from the following codecs:
- WAV
- AIFF
- Raw PCM
- SwiftLAME is still in early alpha. There may be bugs or missing features.
SwiftLAME, like the LAME project, is distributed under the LGPL License.