All Projects → AudioKit → Midisequencer

AudioKit / Midisequencer

Licence: mit
MIDI Sequencer that sends MIDI events to other apps.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Midisequencer

Helio Workstation
One music sequencer for all major platforms, desktop and mobile
Stars: ✭ 2,257 (+2909.33%)
Mutual labels:  midi, sequencer
seq66
Seq66: Seq24-based live MIDI looper/editor. V. 0.99.1 2022-11-27. NSM support; Linux/Windows; PDF user manual. Help access to tutorial and PDF.
Stars: ✭ 95 (+26.67%)
Mutual labels:  sequencer, midi
Mixxx
Mixxx is Free DJ software that gives you everything you need to perform live mixes.
Stars: ✭ 2,510 (+3246.67%)
Mutual labels:  midi, mac
Webmidikit
Simplest MIDI Swift library
Stars: ✭ 100 (+33.33%)
Mutual labels:  midi, mac
recurse
re<urse is a declarative language for generating musical patterns
Stars: ✭ 32 (-57.33%)
Mutual labels:  sequencer, midi
Lick
LiCK, Library for ChucK
Stars: ✭ 118 (+57.33%)
Mutual labels:  midi, sequencer
MIDISequencerAUv3
A great start point for making AUv3 MIDI sequencer apps.
Stars: ✭ 24 (-68%)
Mutual labels:  sequencer, midi
Miti
miti is a musical instrument textual interface. Basically, its MIDI, but with human-readable text. 🎵
Stars: ✭ 103 (+37.33%)
Mutual labels:  midi, sequencer
ws-ldn-12
ARM / STM32F7 DIY synth workshop
Stars: ✭ 62 (-17.33%)
Mutual labels:  sequencer, midi
braid
Polyrhythms in Python: a sequencer and musical notation system for monophonic MIDI synths
Stars: ✭ 34 (-54.67%)
Mutual labels:  sequencer, midi
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+1577.33%)
Mutual labels:  midi, sequencer
Textbeat
🎹 plaintext music sequencer and midi shell, with vim playback 🥁
Stars: ✭ 274 (+265.33%)
Mutual labels:  midi, sequencer
Iannix
IanniX is a graphical open-source sequencer, based on Iannis Xenakis works, for digital art. IanniX syncs via Open Sound Control (OSC) events and curves to your real-time environment.
Stars: ✭ 238 (+217.33%)
Mutual labels:  midi, sequencer
digitakt-song-mode
Song mode for Elektron Digitakt
Stars: ✭ 29 (-61.33%)
Mutual labels:  sequencer, midi
cl-patterns
Library for writing patterns to generate or process (a)musical sequences of mathematically (un)related (non-)compound values in Lisp.
Stars: ✭ 62 (-17.33%)
Mutual labels:  sequencer, midi
Score
ossia score, an interactive sequencer for the intermedia arts.
Stars: ✭ 808 (+977.33%)
Mutual labels:  midi, sequencer
Midichlorian
A Visual Studio extension that allows you to write code and automate the IDE using MIDI musical instruments.
Stars: ✭ 65 (-13.33%)
Mutual labels:  midi
Libremidi
A modern C++ MIDI real-time & file I/O library. Supports Windows, macOS, Linux and WebMIDI.
Stars: ✭ 69 (-8%)
Mutual labels:  midi
Scripts
💡 A collection of random scripts.
Stars: ✭ 65 (-13.33%)
Mutual labels:  mac
Micropython Stm Lib
A collection of modules and examples for MicroPython running on an STM32F4DISCOVERY board
Stars: ✭ 64 (-14.67%)
Mutual labels:  midi

MIDISequencer

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.

Requirements

  • Swift 5.0+
  • iOS 9.0+
  • macOS 10.11+

Install

pod 'MIDISequencer'

Usage

MIDISequencer built top on AudioKit's AKSequencer with MusicTheory library to create sequences just focusing on notes with multiple track support.

  • Create a MIDISequencer instance.
let sequencer = MIDISequencer(name: "Awesome Sequencer")
  • Create a MIDISequencerTrack and add it to sequencer's tracks.
let track = MIDISequencerTrack(
	name: "Track 1", 
	midiChannel: 1)
sequencer.tracks.append(track)
  • Set tempo and time signature
sequencer.tempo = Tempo(
  timeSignature: TimeSignature(
    beats: 4,
    noteValue: .quarter),
  bpm: 80)
  • Add some MIDISequencerSteps to track's steps
track.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)
  • You can even add chords or multiple notes or even both to any step.
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))
  • Create arpeggiated steps with any notes from chords, scales in any octave range with 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
sequencer.playAsync(completion: {
	self.state = .playing
})
  • Call stop() to stop playing.
sequencer.stop()

Documentation

See full documentation

AppStore

This library used in my app ChordBud, check it out!

alt tag

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].