Latest 1.1.0
Homepage https://github.com/manuelescrig/RhythmBox
License MIT
Platforms ios 8.0
Authors

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 RhythmBox


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 RhythmBox


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 RhythmBox


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 RhythmBox


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 RhythmBox


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.

Latest podspec

{
    "name": "RhythmBox",
    "version": "1.1.0",
    "summary": "A Rhythm Box System for your iOS app ud83cudfb5",
    "description": "The easiest way to create Music Rhythm Patterns in Swift. A **Rhythm Box** System for your iOS app ud83cudfb5.",
    "homepage": "https://github.com/manuelescrig/RhythmBox",
    "screenshots": "https://github.com/manuelescrig/RhythmBox/blob/master/Slice%201.png?raw=true",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Manuel Escrig Ventura": "[email protected]"
    },
    "source": {
        "git": "https://github.com/manuelescrig/RhythmBox.git",
        "tag": "1.1.0"
    },
    "social_media_url": "https://twitter.com/manuelescrig",
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "RhythmBox/Classes/**/*",
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This