BPMAnalyser alternatives and similar libraries
Based on the "Audio" category.
Alternatively, view BPMAnalyser alternatives based on common mentions on social networks and blogs.
-
AudioKit
Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS -
EZAudio
An iOS and macOS audio visualization framework built upon Core Audio useful for anyone doing real-time, low-latency audio processing and visualizations. -
StreamingKit
A fast and extensible gapless AudioPlayer/AudioStreamer for OSX and iOS (iPhone, iPad) -
PandoraPlayer
🅿️ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift. -
SubtleVolume
Replace the system volume popup with a more subtle indicator. -
SwiftySound
SwiftySound is a simple library that lets you play sounds with a single line of code. -
AudioPlayer
AudioPlayer is syntax and feature sugar over AVPlayer. It plays your audio files (local & remote). -
IQAudioRecorderController
A drop-in universal library allows to record audio within the app with a nice User Interface. -
Jukebox
Player for streaming local and remote audio files. Written in Swift. -
TheAmazingAudioEngine2
The Amazing Audio Engine is a sophisticated framework for iOS audio applications, built so you don't have to. -
MusicKit
A framework for composing and transforming music in Swift -
ESTMusicIndicator
Cool Animated music indicator view written in Swift -
QuietModemKit
iOS framework for the Quiet Modem (data over sound) -
FDSoundActivatedRecorder
Start recording when the user speaks -
ModernAVPlayer
ModernAVPlayer is a persistence AVPlayer wrapper -
AudioPlayerSwift
AudioPlayer is a simple class for playing audio in iOS, macOS and tvOS apps. -
Chirp
The easiest way to prepare, play, and remove sounds in your Swift app! -
SRGMediaPlayer-iOS
An advanced media player library, simple and reliable -
sound-fader-ios
A sound fader for AVAudioPlayer written in Swift for iOS, tvOS and macOS. -
QHSpeechSynthesizerQueue
Queue management system for AVSpeechSynthesizer
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of BPMAnalyser or a related project?
README
BPM-Analyser
Analyser BPM in Swift for your music/sounds/records, whatever.. Powered with Superpowered
Preview:
How To:
Copy theese files to your project:
- BMPAnalyzer.swift
- Superpower directory
Also add theese frameworks to your Linked Frameworks and Libraries
- Add AudioToolbox.framework
- CoreMedia.framework
- AVFoundation
- libSuperpoweredAudioIOS.a (From repo: /src/Superpowered, you added it to project in the previous step
In your code implementation you can call Singleton method by:
public func getBpmFrom(_ url: URL, completion: (String?) -> ()) -> String
Example:
guard let filePath = Bundle.main.path(forResource: "TestMusic", ofType: "m4a"),
let url = URL(string: filePath) else {return "error occured, check fileURL"}
BPMAnalyzer.core.getBpmFrom(url, completion: nil)
You can stuck it with MPMediaPicker in delegate like this:
import UIKit
import MediaPlayer
class YourClassViewController: UIViewController {
let mediaPicker: MPMediaPickerController = MPMediaPickerController(mediaTypes: .music)
lazy var bpmLabel: UILabel = {
let label = UILabel()
label.frame.size.height = 300
label.frame.size.width = UIScreen.main.bounds.width - 32
label.numberOfLines = 2
return label
}()
override func viewDidLoad() {
super.viewDidLoad()
mediaPicker.allowsPickingMultipleItems = false
mediaPicker.delegate = self
present(mediaPicker, animated: true, completion: nil)
// Do any additional setup after loading the view, typically from a nib.
}
}
extension YourClassViewController: MPMediaPickerControllerDelegate {
func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems
mediaItemCollection: MPMediaItemCollection) {
guard let asset = mediaItemCollection.items.first,
let url = asset.assetURL else {return}
_ = BPMAnalyzer.core.getBpmFrom(url, completion: {[weak self] (bpm) in
self?.addLabelWith(bpm)
self?.mediaPicker.dismiss(animated: true, completion: nil)
})
}
func addLabelWith(_ bpm: String) {
bpmLabel.text = String(describing:bpm)
view.addSubview(bpmLabel)
bpmLabel.center = view.center
view.layoutIfNeeded()
}
}
Look Example project in case of misunderstanding! :)
WHY?
Cause I can :D But in fact, I did't find any libs/frameworks to get BPM from media files...
WHY Superpowered?
Cause it is the fastest lib I have found
Feel FREE to PR or contribuctions/issues/remarks
BUGS/Fixes Contributors:
@o1exij - for the advice and reseraching the bug in BPM counting
@MikaTck - for alerting fatal error + Swift4 migration