CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✗ |
| LangLanguage | SwiftSwift |
| License | MIT |
| ReleasedLast Release | Jan 2018 |
| SwiftSwift Version | 3.0 |
| SPMSupports SPM | ✗ |
Maintained by Cem Olcay, Aurelius Prochazka.
| Depends on: | |
| AudioKit | >= 0 |
| MusicTheorySwift | >= 0 |
MIDI Sequencer that sends MIDI events to other apps.
Built top on AKSequencer of AudioKit for iOS and macOS.
Create smart MIDI sequencer instruments with just focus on notes.
pod 'MIDISequencer'MIDISequencer built top on AudioKit's AKSequencer with MusicTheory library to create sequences just focusing on notes with multiple track support.
MIDISequencer instance.let sequencer = MIDISequencer(name: "Awesome Sequencer")MIDISequencerTrack and add it to sequencer's tracks.let track = MIDISequencerTrack(
name: "Track 1",
midiChannel: 1)
sequencer.tracks.append(track)sequencer.tempo = Tempo(
timeSignature: TimeSignature(
beats: 4,
noteValue: .quarter),
bpm: 80)MIDISequencerSteps to track's stepstrack.steps = [
MIDISequencerStep(
note: Note(type: .c, octave: 4),
noteValue: NoteValue(type: .quarter),
velocity: .standard(100)),
MIDISequencerStep(
note: Note(type: .d, octave: 4),
noteValue: NoteValue(type: .quarter),
velocity: .standard(100)),
MIDISequencerStep(
note: Note(type: .e, octave: 4),
noteValue: NoteValue(type: .quarter),
velocity: .standard(100)),
MIDISequencerStep(
note: Note(type: .f, octave: 4),
noteValue: NoteValue(type: .quarter),
velocity: .standard(100)),
]
sequencer.addTrack(track: track1)MIDISequencerStep(
chord: Chord(type: .maj, key: .c),
octave: 4,
noteValue: NoteValue(type: .quarter),
velocity: .standard(60))
MIDISequencerStep(
notes: [Note(type: .c, octave: 4), Note(type: .d, octave: 4)],
octave: 4,
noteValue: NoteValue(type: .quarter),
velocity: .standard(60))
MIDISequencerStep(
notes: Chord(type: .maj, key: .c).notes(octave: 4) + [Note(type: .c, octave: 4), Note(type: .d, octave: 4)],
noteValue: NoteValue(type: .quarter),
velocity: .standard(60))MIDISequencerArpeggiator.let arpeggiator = MIDISequencerArpeggiator(
scale: Scale(type: .blues, key: .a),
arpeggio: .random,
octaves: [4, 5])
let melody = MIDISequencerTrack(
name: "Melody",
midiChannel: 3,
steps: arpeggiator.steps(noteValue: NoteValue(type: .quarter), velocity: .random(min: 80, max: 120)))
sequencer.addTrack(track: melody)Set isMuted property to true to mute any MIDISequencerStep.
Call one of play() or playAsync() functions to play sequance.
state = .loading
sequancer.playAsync(completion: {
self.state = .playing
})stop() to stop playing.sequencer.stop()See full documentation
This library used in my app ChordBud, check it out!