All Projects → manuelescrig → Rhythmbox

manuelescrig / Rhythmbox

Licence: mit
A Rhythm Box System for your iOS app written in Swift. 🎵

Programming Languages

shell
77523 projects
swift
15916 projects

Projects that are alternatives of or similar to Rhythmbox

Pincodeinputview
A input text view for entering pin code.
Stars: ✭ 108 (-6.9%)
Mutual labels:  cocoapods
Shari
Shari is the alternative to the library of UIPickerView(drum roll) in Swift. You can select a item using UITableView.
Stars: ✭ 111 (-4.31%)
Mutual labels:  cocoapods
Lightweightobservable
📬 A lightweight implementation of an observable sequence that you can subscribe to.
Stars: ✭ 114 (-1.72%)
Mutual labels:  cocoapods
Lcnewfeature
几行代码快速集成新特性界面!
Stars: ✭ 109 (-6.03%)
Mutual labels:  cocoapods
Randomkit
Random data generation in Swift
Stars: ✭ 1,458 (+1156.9%)
Mutual labels:  cocoapods
Microfeatures Example
📦📱 Example of iOS app built using the uFeatures architecture
Stars: ✭ 112 (-3.45%)
Mutual labels:  cocoapods
Nvactivityindicatorview
A collection of awesome loading animations
Stars: ✭ 10,031 (+8547.41%)
Mutual labels:  cocoapods
Foundationextension
Foundation/Cocoa/UIKit extension kit. Reference document:
Stars: ✭ 115 (-0.86%)
Mutual labels:  cocoapods
Device
Light weight tool for detecting the current device and screen size written in swift.
Stars: ✭ 1,503 (+1195.69%)
Mutual labels:  cocoapods
Fontawesome.swift
Use FontAwesome in your Swift projects
Stars: ✭ 1,513 (+1204.31%)
Mutual labels:  cocoapods
Tkkeyboardcontrol
TKKeyboardControl adds keyboard awareness and scrolling dismissal (like iMessages app) to any view with only 1 line of code for Swift.
Stars: ✭ 110 (-5.17%)
Mutual labels:  cocoapods
Efautoscrolllabel
A label which can scroll when text length beyond the width of label.
Stars: ✭ 111 (-4.31%)
Mutual labels:  cocoapods
Bottomsheet
Component which presents a dismissible view from the bottom of the screen.
Stars: ✭ 113 (-2.59%)
Mutual labels:  cocoapods
Materialactivityindicator
Material Activity Indicator
Stars: ✭ 109 (-6.03%)
Mutual labels:  cocoapods
Sharaku
(Not maintained)Image filtering UI library like Instagram.
Stars: ✭ 1,497 (+1190.52%)
Mutual labels:  cocoapods
Alamofire
Elegant HTTP Networking in Swift
Stars: ✭ 36,896 (+31706.9%)
Mutual labels:  cocoapods
Workflow
审批王,华炎魔方内置BPM工作流引擎,低代码快速开发平台。
Stars: ✭ 111 (-4.31%)
Mutual labels:  bpm
Edsp
A cross-platform DSP library written in C++ 11/14. This library harnesses the power of C++ templates to implement a complete set of DSP algorithms.
Stars: ✭ 116 (+0%)
Mutual labels:  music-library
Rompr
Web client for Mopidy and MPD
Stars: ✭ 115 (-0.86%)
Mutual labels:  music-library
Uilabel Copyable
A simple category to add copy functionality to UILabel.
Stars: ✭ 113 (-2.59%)
Mutual labels:  cocoapods

RhythmBox

A Rhythm Box System for your iOS app 🎵. The easiest way to create Music Rhythm Patterns in Swift.

BuddyBuild Version License Platform Language

What can I do with RhythmBox?

  • [x] Generate a BPM or RPM Tempo
  • [x] Select the Time Signature
  • [x] Create a Rhythm pattern

Demo Project

To run the example project, clone the repo, and run pod install from the Example directory first.

Getting Started

Requirements

  • iOS 8.0+ / tvOS 9.0+
  • Xcode 8.0+
  • Swift 3.0+

Installation with CocoaPods

CocoaPods is a 3rd-party dependency manager for Swift and Objective-C projects. For more information, refer to the CocoaPods Getting Started Guide. Otherwise, you can install CocoaPods with the following command:

$ gem install cocoapods

Podfile

To integrate RhythmBox into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
pod 'RhythmBox'

Then, run the following command:

$ pod install

Installation Manually

To integrate RhythmBox into your Xcode project manually, just include the filest from /Pod/Classes/ folder in your App’s Xcode project.

Quick Guide

Usage

To Generate a constant BPM signal is as simple as this.

1. Import class
import RhythmBox
2. Create a RhythmBox class
let rhythmBox = RhythmBox(bpm: 120, timeSignature: (4,4))

3. Start the Rhythm
rhythmBox.perform {CurrentBeat, CurrentSubBeat, CurrentNote in

    print("CurrentBeat", CurrentBeat)
    print("CurrentSubBeat", CurrentSubBeat)
    print("CurrentNote", CurrentNote)

    return .resume
}

4. Stop the Rhythm
rhythmBox.stop()

Examples

Example 1

Create a 120 BPM signal with a block.

let rhythmBox = RhythmBox(bpm: 120)
rhythmBox.perform {CurrentBeat, CurrentSubBeat, CurrentNote in

    print("CurrentBeat", CurrentBeat)
    return .resume
}

Example 2

Create a 150 BPM signal with a time signature of 6/8 with default subdivision of

let rhythmBox = RhythmBox(bpm: 150, timeSignature: (6,8))
rhythmBox.perform {CurrentBeat, CurrentSubBeat, CurrentNote in

    print("CurrentBeat", CurrentBeat)
    return .resume
}
Example 3

Create a 90 BPM signal with a time signature of 3/4 and subdivision of

let rhythmBox = RhythmBox(bpm: 90, timeSignature: (3,4), subdivision: "11")
rhythmBox.perform {CurrentBeat, CurrentSubBeat, CurrentNote in

    print("CurrentBeat", CurrentBeat)
    return .resume
}
Example 4

Create a 90 BPM signal with a time signature of 3/4 and subdivision of

let rhythmBox = RhythmBox(bpm: 90, timeSignature: (3,4), subdivision: "111")
rhythmBox.perform {CurrentBeat, CurrentSubBeat, CurrentNote in

    print("CurrentBeat", CurrentBeat)
    return .resume
}
Example 5

Create a 90 BPM signal with a time signature of 3/4 and subdivision of

let rhythmBox = RhythmBox(bpm: 90, timeSignature: (3,4), subdivision: "011")
rhythmBox.perform {CurrentBeat, CurrentSubBeat, CurrentNote in

    print("CurrentBeat", CurrentBeat)
    return .resume
}
Example 6

Create a 90 BPM signal with a time signature of 3/4 and subdivision of

let rhythmBox = RhythmBox(bpm: 90, timeSignature: (3,4), subdivision: "10111")
rhythmBox.perform {CurrentBeat, CurrentSubBeat, CurrentNote in

    print("CurrentBeat", CurrentBeat)
    return .resume
}

Roadmap

  • [x] CocoaPods support
  • [ ] Carthage support
  • [ ] Swift Package Manager support
  • [ ] Tests

Change Log

See Changelog.md

Contribute

Contributions are welcomed and encouraged 💜.

Author

License

RhythmBox is available under the MIT license. See the LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].