Skip to content

Instantly share code, notes, and snippets.

@cemolcay
Last active January 27, 2024 08:58
Show Gist options
  • Save cemolcay/3248a378b42f0c38661c67b0d5bac348 to your computer and use it in GitHub Desktop.
Save cemolcay/3248a378b42f0c38661c67b0d5bac348 to your computer and use it in GitHub Desktop.
Drum Kit MIDI Template
//
// KitTemplate.swift
// AutoFills
//
// Created by Cem Olcay on 1/20/24.
//
import Foundation
enum KitTemplate: Int, Codable, CustomStringConvertible, CaseIterable {
// app
case ar909
case axon2
case blipBox
case dadamachinesAutomat
case digistix
case drumlab
case drumComputer
case egdr606
case egdr808
case egdr909
case facDrumkit
case generalMIDI8
case generalMIDI16
case hammerhead
case koalaSampler2x8
case koalaSampler4x4
case korgGadgetAmsterdam
case korgGadgetBilbao
case korgGadgetGladstone
case korgGadgetLondon
case korgGadgetRecife
case korgGadgetTokyo
case mv08
case nsSlate
case pureAcidDrum
case ruismaker
case ruismakerFM
case sdsx
case sitala
case splatToClat
case vaDrumSM
case vaDrum2_808
case vaDrum2_909
case vatanator
// hardware
case drumbrute
case drumbruteImpact
case electribeEMX
case electribeER1
case volcaBeats
case mfb522
case mc101
case tr08
case tr707
case tr727
case tr808chd
case tr808kenton
case tr8s
case tr909
static var dataSource: [[KitTemplate]] {
let all = KitTemplate.allCases
return [all.filter({ $0.type == .app }), all.filter({ $0.type == .hardware })]
}
enum KitType: CustomStringConvertible {
case app
case hardware
var description: String {
switch self {
case .app: return "App"
case .hardware: return "Hardware"
}
}
}
var type: KitType {
switch self {
case .ar909: return .app
case .axon2: return .app
case .blipBox: return .app
case .dadamachinesAutomat: return .app
case .digistix: return .app
case .drumlab: return .app
case .drumComputer: return .app
case .egdr606: return .app
case .egdr808: return .app
case .egdr909: return .app
case .facDrumkit: return .app
case .generalMIDI8: return .app
case .generalMIDI16: return .app
case .hammerhead: return .app
case .koalaSampler2x8: return .app
case .koalaSampler4x4: return .app
case .korgGadgetAmsterdam: return .app
case .korgGadgetBilbao: return .app
case .korgGadgetGladstone: return .app
case .korgGadgetLondon: return .app
case .korgGadgetRecife: return .app
case .korgGadgetTokyo: return .app
case .mv08: return .app
case .nsSlate: return .app
case .pureAcidDrum: return .app
case .ruismaker: return .app
case .ruismakerFM: return .app
case .sdsx: return .app
case .sitala: return .app
case .splatToClat: return .app
case .vaDrumSM: return .app
case .vaDrum2_808: return .app
case .vaDrum2_909: return .app
case .vatanator: return .app
case .drumbrute: return .hardware
case .drumbruteImpact: return .hardware
case .electribeEMX: return .hardware
case .electribeER1: return .hardware
case .volcaBeats: return .hardware
case .mfb522: return .hardware
case .mc101: return .hardware
case .tr08: return .hardware
case .tr707: return .hardware
case .tr727: return .hardware
case .tr808chd: return .hardware
case .tr808kenton: return .hardware
case .tr8s: return .hardware
case .tr909: return .hardware
}
}
var kit: [MBKit] {
switch self {
case .ar909:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 37),
.init(name: "CL HH", note: 38),
.init(name: "OP HH", note: 39),
.init(name: "Rimshot", note: 40),
.init(name: "Clap", note: 41),
.init(name: "Low Tom", note: 42),
.init(name: "Mid Tom", note: 43),
.init(name: "Hi Tom", note: 44),
.init(name: "Ride", note: 45),
.init(name: "Crash", note: 46),
]
case .axon2:
return [
.init(name: "1", note: 36),
.init(name: "2", note: 37),
.init(name: "3", note: 38),
.init(name: "4", note: 39),
.init(name: "5", note: 40),
.init(name: "6", note: 41),
.init(name: "7", note: 42),
]
case .blipBox:
return [
.init(name: "Kick 2", note: 35),
.init(name: "Kick 1", note: 36),
.init(name: "Rimshot", note: 37),
.init(name: "Snare", note: 38),
.init(name: "Clap", note: 39),
.init(name: "Snare 2", note: 40),
.init(name: "Low Tom 2", note: 41),
.init(name: "CL HH", note: 42),
.init(name: "Low Tom 1", note: 43),
.init(name: "Pedal HH", note: 44),
.init(name: "Mid Tom 2", note: 45),
.init(name: "OP HH", note: 46),
.init(name: "Mid Tom 1", note: 47),
.init(name: "Hi Tom 2", note: 48),
.init(name: "Crash", note: 49),
.init(name: "Hi Tom 1", note: 50),
]
case .dadamachinesAutomat:
return [
.init(name: "1", note: 36),
.init(name: "2", note: 37),
.init(name: "3", note: 38),
.init(name: "4", note: 39),
.init(name: "5", note: 40),
.init(name: "6", note: 41),
.init(name: "7", note: 42),
.init(name: "8", note: 43),
.init(name: "9", note: 44),
.init(name: "10", note: 45),
.init(name: "11", note: 46),
.init(name: "12", note: 47),
]
case .digistix:
return [
.init(name: "Bass Drum", note: 48),
.init(name: "Snare", note: 49),
.init(name: "CL HH", note: 50),
.init(name: "OP HH", note: 51),
.init(name: "Alt Kick", note: 52),
.init(name: "Clap", note: 53),
.init(name: "Rimshot", note: 54),
.init(name: "Side Stick", note: 55),
.init(name: "Hi Tom", note: 56),
.init(name: "Mid Tom", note: 57),
.init(name: "Low Tom", note: 58),
.init(name: "Snare Buzz", note: 59),
.init(name: "Crash", note: 60),
.init(name: "Shaker", note: 61),
.init(name: "Ride", note: 62),
.init(name: "Tambourine", note: 63),
]
case .drumlab:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 38),
.init(name: "CL HH", note: 42),
.init(name: "OP HH", note: 46),
.init(name: "Clap", note: 39),
.init(name: "Rimshot", note: 37),
.init(name: "Cowbell", note: 56),
.init(name: "Tom", note: 43),
.init(name: "Cymbal", note: 49),
]
case .drumComputer:
return [
.init(name: "1", note: 44),
.init(name: "2", note: 32),
.init(name: "3", note: 83),
.init(name: "4", note: 24),
.init(name: "5", note: 36),
.init(name: "6", note: 47),
.init(name: "7", note: 65),
.init(name: "8", note: 55),
]
case .egdr606:
return [
.init(name: "Bass", note: 36),
.init(name: "Snare", note: 38),
.init(name: "Low Tom", note: 43),
.init(name: "Hi Tom", note: 47),
.init(name: "Cymbal", note: 50),
.init(name: "OP HH", note: 37),
.init(name: "CL HH", note: 39),
]
case .egdr808:
return [
.init(name: "BD", note: 36),
.init(name: "SD", note: 38),
.init(name: "LT", note: 43),
.init(name: "MT", note: 47),
.init(name: "HT", note: 50),
.init(name: "RS", note: 37),
.init(name: "CP", note: 39),
.init(name: "CB", note: 56),
.init(name: "CY", note: 49),
.init(name: "OH", note: 46),
.init(name: "CH", note: 42),
]
case .egdr909:
return [
.init(name: "Bass", note: 36),
.init(name: "Snare", note: 38),
.init(name: "Low Tom", note: 43),
.init(name: "Hi Tom", note: 50),
.init(name: "Clap", note: 39),
.init(name: "OP HH", note: 56),
.init(name: "CL HH", note: 49),
.init(name: "Ride", note: 42),
]
case .facDrumkit:
return [
.init(name: "1", note: 36),
.init(name: "2", note: 37),
.init(name: "3", note: 38),
.init(name: "4", note: 39),
.init(name: "5", note: 40),
.init(name: "6", note: 41),
.init(name: "7", note: 42),
.init(name: "8", note: 43),
.init(name: "9", note: 44),
.init(name: "10", note: 45),
.init(name: "11", note: 46),
.init(name: "12", note: 47),
.init(name: "13", note: 48),
.init(name: "14", note: 49),
.init(name: "15", note: 50),
.init(name: "16", note: 51),
]
case .generalMIDI8:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 38),
.init(name: "Clap", note: 39),
.init(name: "Low Tom", note: 45),
.init(name: "Mid Tom", note: 47),
.init(name: "Hi Tom", note: 48),
.init(name: "CL HH", note: 42),
.init(name: "OP HH", note: 46),
]
case .generalMIDI16:
return [
.init(name: "Kick 2", note: 35),
.init(name: "Kick 1", note: 36),
.init(name: "Rimshot", note: 37),
.init(name: "Snare", note: 38),
.init(name: "Clap", note: 39),
.init(name: "Snare 2", note: 40),
.init(name: "Low Tom 2", note: 41),
.init(name: "CL HH", note: 42),
.init(name: "Low Tom 1", note: 43),
.init(name: "Pedal HH", note: 44),
.init(name: "Mid Tom 2", note: 45),
.init(name: "OP HH", note: 46),
.init(name: "Mid Tom 1", note: 47),
.init(name: "Hi Tom 2", note: 48),
.init(name: "Crash", note: 49),
.init(name: "Hi Tom 1", note: 50),
]
case .hammerhead:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 38),
.init(name: "Clap", note: 39),
.init(name: "Rimshot", note: 45),
.init(name: "Snare2", note: 48),
.init(name: "Cowbell", note: 50),
.init(name: "CL HH", note: 42),
.init(name: "OP HH", note: 46),
]
case .koalaSampler2x8:
return [
.init(name: "1", note: 44),
.init(name: "2", note: 45),
.init(name: "3", note: 46),
.init(name: "4", note: 47),
.init(name: "5", note: 48),
.init(name: "6", note: 49),
.init(name: "7", note: 50),
.init(name: "8", note: 51),
.init(name: "9", note: 36),
.init(name: "10", note: 37),
.init(name: "11", note: 38),
.init(name: "12", note: 39),
.init(name: "13", note: 40),
.init(name: "14", note: 41),
.init(name: "15", note: 42),
.init(name: "16", note: 43),
]
case .koalaSampler4x4:
return [
.init(name: "1", note: 48),
.init(name: "2", note: 49),
.init(name: "3", note: 50),
.init(name: "4", note: 51),
.init(name: "5", note: 44),
.init(name: "6", note: 45),
.init(name: "7", note: 46),
.init(name: "8", note: 47),
.init(name: "9", note: 40),
.init(name: "10", note: 41),
.init(name: "11", note: 42),
.init(name: "12", note: 43),
.init(name: "13", note: 36),
.init(name: "14", note: 37),
.init(name: "15", note: 38),
.init(name: "16", note: 39),
]
case .korgGadgetAmsterdam:
return [
.init(name: "1", note: 36),
.init(name: "2", note: 37),
.init(name: "3", note: 38),
.init(name: "4", note: 39),
]
case .korgGadgetBilbao:
return [
.init(name: "1", note: 36),
.init(name: "2", note: 37),
.init(name: "3", note: 38),
.init(name: "4", note: 39),
.init(name: "5", note: 40),
.init(name: "6", note: 41),
.init(name: "7", note: 42),
.init(name: "8", note: 43),
.init(name: "9", note: 44),
.init(name: "10", note: 45),
.init(name: "11", note: 46),
.init(name: "12", note: 47),
.init(name: "13", note: 48),
.init(name: "14", note: 49),
.init(name: "15", note: 50),
.init(name: "16", note: 51),
]
case .korgGadgetGladstone:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 37),
.init(name: "Snare 2", note: 38),
.init(name: "HH Close", note: 39),
.init(name: "HH Open", note: 40),
.init(name: "Tom Hi", note: 41),
.init(name: "Tom Mid", note: 42),
.init(name: "Tom Lo", note: 43),
.init(name: "Crash", note: 44),
.init(name: "Ride", note: 45),
]
case .korgGadgetLondon:
return [
.init(name: "1", note: 36),
.init(name: "2", note: 37),
.init(name: "3", note: 38),
.init(name: "4", note: 39),
.init(name: "5", note: 40),
.init(name: "6", note: 41),
.init(name: "7", note: 42),
.init(name: "8", note: 43),
]
case .korgGadgetRecife:
return [
.init(name: "1", note: 36),
.init(name: "2", note: 37),
.init(name: "3", note: 38),
.init(name: "4", note: 39),
.init(name: "5", note: 40),
.init(name: "6", note: 41),
.init(name: "7", note: 42),
.init(name: "8", note: 43),
.init(name: "9", note: 44),
.init(name: "10", note: 45),
.init(name: "11", note: 46),
.init(name: "12", note: 47),
.init(name: "13", note: 48),
.init(name: "14", note: 49),
.init(name: "15", note: 50),
.init(name: "16", note: 51),
]
case .korgGadgetTokyo:
return [
.init(name: "BD201", note: 36),
.init(name: "SD302", note: 37),
.init(name: "TOM404", note: 38),
.init(name: "PCS503", note: 39),
]
case .mv08:
return [
.init(name: "BD", note: 60),
.init(name: "SN", note: 61),
.init(name: "CLP", note: 62),
.init(name: "LT", note: 63),
.init(name: "MT", note: 64),
.init(name: "HT", note: 65),
.init(name: "RS", note: 66),
.init(name: "CB", note: 67),
.init(name: "CYM", note: 68),
.init(name: "OH", note: 69),
.init(name: "CH", note: 70),
.init(name: "LC", note: 71),
.init(name: "MC", note: 72),
.init(name: "HC", note: 73),
.init(name: "CLV", note: 74),
.init(name: "MRC", note: 75),
]
case .nsSlate:
return [
.init(name: "BD", note: 48),
.init(name: "SD", note: 49),
.init(name: "HH-CL", note: 50),
.init(name: "HH-OP", note: 51),
.init(name: "BD 2", note: 52),
.init(name: "CP 2", note: 53),
.init(name: "HH-CL 2", note: 54),
.init(name: "HH-OP 2", note: 55),
.init(name: "Crash 1", note: 56),
.init(name: "Crash 2", note: 57),
.init(name: "Ride 1", note: 58),
.init(name: "Ride 2", note: 59),
.init(name: "Tom 1", note: 60),
.init(name: "Tom 2", note: 61),
.init(name: "Tom 3", note: 62),
.init(name: "Tom 4", note: 63),
]
case .pureAcidDrum:
return [
.init(name: "BD", note: 36),
.init(name: "BD 2", note: 35),
.init(name: "SD", note: 38),
.init(name: "SD 2", note: 40),
.init(name: "LT", note: 41),
.init(name: "HT", note: 43),
.init(name: "LC", note: 45),
.init(name: "HC", note: 47),
.init(name: "Rim", note: 37),
.init(name: "CLP", note: 39),
.init(name: "CB", note: 56),
.init(name: "MA", note: 44),
.init(name: "HH", note: 42),
.init(name: "OH", note: 46),
.init(name: "OR", note: 49),
.init(name: "RD", note: 51),
]
case .ruismaker:
return [
.init(name: "Kick", note: 49),
.init(name: "Snare", note: 51),
.init(name: "Clap", note: 54),
.init(name: "Lo Tom", note: 56),
.init(name: "Mid Tom", note: 58),
.init(name: "Hi Tom", note: 61),
.init(name: "CL HH", note: 63),
.init(name: "OP HH", note: 66),
]
case .ruismakerFM:
return [
.init(name: "Kick", note: 49),
.init(name: "Snare", note: 51),
.init(name: "FX 1", note: 54),
.init(name: "FX 2", note: 56),
.init(name: "FX 3", note: 58),
.init(name: "Hihat", note: 61),
]
case .sdsx:
return [
.init(name: "Kick", note: 60),
.init(name: "Snare", note: 61),
.init(name: "CL HH", note: 62),
.init(name: "OP HH", note: 65),
.init(name: "Tom L", note: 64),
.init(name: "Tom H", note: 63),
.init(name: "Clap", note: 66),
.init(name: "Tamb", note: 67),
.init(name: "Noise", note: 68),
]
case .sitala:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 37),
.init(name: "CL HH", note: 38),
.init(name: "OP HH", note: 39),
.init(name: "Cymbal", note: 40),
.init(name: "Low Tom", note: 41),
.init(name: "Mid Tom", note: 42),
.init(name: "Hi Tom", note: 43),
.init(name: "Low Conga", note: 44),
.init(name: "Mid Conga", note: 45),
.init(name: "Hi Conga", note: 46),
.init(name: "Clap", note: 47),
.init(name: "Clave", note: 48),
.init(name: "Maraca", note: 49),
.init(name: "Cowbell", note: 50),
.init(name: "Rimshot", note: 51),
]
case .splatToClat:
return [
.init(name: "C3", note: 60),
.init(name: "C#3", note: 61),
.init(name: "D3", note: 62),
.init(name: "D#3", note: 63),
.init(name: "E3", note: 64),
.init(name: "F3", note: 65),
.init(name: "F#3", note: 66),
.init(name: "G3", note: 67),
.init(name: "G#3", note: 68),
.init(name: "A3", note: 69),
.init(name: "A#3", note: 70),
.init(name: "B3", note: 71),
.init(name: "C4", note: 72),
.init(name: "C#4", note: 73),
.init(name: "D4", note: 74),
.init(name: "D#4", note: 75),
]
case .vaDrumSM:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 38),
.init(name: "Clap", note: 39),
.init(name: "Low Tom", note: 41),
.init(name: "Mid Tom", note: 43),
.init(name: "Hi Tom", note: 44),
.init(name: "CL HH", note: 42),
.init(name: "OP HH", note: 46),
.init(name: "Ride", note: 49),
.init(name: "Cowbell", note: 50),
.init(name: "Rimshot", note: 37),
.init(name: "Kick 2", note: 40),
.init(name: "Snare 2", note: 51),
.init(name: "Kick 3", note: 45),
.init(name: "Kick 4", note: 47),
.init(name: "Kick 5", note: 48),
]
case .vaDrum2_808:
return [
.init(name: "Kick 1", note: 36),
.init(name: "Rimshot 1", note: 37),
.init(name: "Snare 1", note: 38),
.init(name: "Clap 1", note: 39),
.init(name: "CL HH 1", note: 40),
.init(name: "OP HH 1", note: 41),
.init(name: "Low Tom 1", note: 42),
.init(name: "Mid Tom 1", note: 43),
.init(name: "Hi Tom 1", note: 44),
.init(name: "Cymbal", note: 45),
.init(name: "Cowbell", note: 46),
.init(name: "Low Conga", note: 47),
.init(name: "Mid Conga", note: 48),
.init(name: "Hi Conga", note: 49),
.init(name: "Maracs", note: 50),
.init(name: "Claves", note: 51),
]
case .vaDrum2_909:
return [
.init(name: "Kick 2", note: 52),
.init(name: "Rimshot 2", note: 53),
.init(name: "Snare 2", note: 54),
.init(name: "Clap 2", note: 55),
.init(name: "CL HH 2", note: 56),
.init(name: "OP HH 2", note: 57),
.init(name: "Low Tom 2", note: 58),
.init(name: "Mid Tom 2", note: 59),
.init(name: "Hi Tom 2", note: 60),
.init(name: "Crash", note: 61),
.init(name: "Ride", note: 62),
]
case .vatanator:
return [
.init(name: "1", note: 24),
.init(name: "2", note: 27),
.init(name: "3", note: 30),
.init(name: "4", note: 33),
.init(name: "5", note: 36),
.init(name: "6", note: 39),
.init(name: "7", note: 42),
.init(name: "8", note: 45),
]
case .drumbrute:
return [
.init(name: "Kick 1", note: 36),
.init(name: "Kick 2", note: 37),
.init(name: "Snare", note: 38),
.init(name: "CLap", note: 39),
.init(name: "Rim", note: 40),
.init(name: "Claves", note: 41),
.init(name: "CL HH", note: 42),
.init(name: "OP HH", note: 43),
.init(name: "Conga H", note: 44),
.init(name: "Tom H", note: 45),
.init(name: "Conga L", note: 46),
.init(name: "Tom L", note: 47),
.init(name: "Cymbal", note: 48),
.init(name: "Rev Cymb", note: 49),
.init(name: "Maracas", note: 50),
.init(name: "Tamb", note: 51),
.init(name: "Zap", note: 52),
]
case .drumbruteImpact:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare 1", note: 37),
.init(name: "Snare 2", note: 38),
.init(name: "Tom H", note: 39),
.init(name: "Tom L", note: 40),
.init(name: "Cymbal", note: 41),
.init(name: "Cowbel", note: 42),
.init(name: "CL HH", note: 43),
.init(name: "OP HH", note: 44),
.init(name: "FM", note: 45),
.init(name: "Kick CL", note: 48),
.init(name: "Snare 1 CL", note: 49),
.init(name: "Snare 2 CL", note: 50),
.init(name: "Tom H CL", note: 51),
.init(name: "Tom L CL", note: 52),
.init(name: "Cymbal CL", note: 53),
.init(name: "CL HH CL", note: 55),
.init(name: "OP HH CL", note: 56),
.init(name: "FM CL", note: 57),
]
case .electribeEMX:
return [
.init(name: "Drum 1", note: 48),
.init(name: "Drum 2", note: 50),
.init(name: "Drum 3", note: 52),
.init(name: "Drum 4", note: 53),
.init(name: "Drum 5", note: 55),
.init(name: "Drum 6A", note: 54),
.init(name: "Drum 6B", note: 58),
.init(name: "Drum 7A", note: 61),
.init(name: "Drum 7B", note: 63),
]
case .electribeER1:
return [
.init(name: "PercSynth1", note: 36),
.init(name: "PercSynth2", note: 38),
.init(name: "PercSynth3", note: 40),
.init(name: "PercSynth4", note: 41),
.init(name: "AudioIn1", note: 43),
.init(name: "AudioIn2", note: 45),
.init(name: "CL HH", note: 42),
.init(name: "OP HH", note: 46),
.init(name: "Crash", note: 49),
.init(name: "Clap", note: 39),
]
case .volcaBeats:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 38),
.init(name: "Lo Tom", note: 43),
.init(name: "Hi Tom", note: 50),
.init(name: "CL HH", note: 42),
.init(name: "OP HH", note: 46),
.init(name: "Clap", note: 39),
.init(name: "Claves", note: 75),
.init(name: "Agogo", note: 67),
.init(name: "Crash", note: 49),
]
case .mfb522:
return [
.init(name: "BD Short", note: 35),
.init(name: "BD Long", note: 36),
.init(name: "Rimshot", note: 37),
.init(name: "SD", note: 38),
.init(name: "Clap Long", note: 39),
.init(name: "Cowbell", note: 40),
.init(name: "Hi-hat", note: 41),
.init(name: "Clave", note: 42),
.init(name: "Hi-hat 2", note: 43),
.init(name: "Low Tom", note: 44),
.init(name: "OP HH", note: 45),
.init(name: "Mid Tom", note: 46),
.init(name: "Mid Tom 2", note: 47),
.init(name: "Cymbal", note: 48),
.init(name: "Hi Tom", note: 49),
]
case .mc101:
return [
.init(name: "1", note: 37),
.init(name: "2", note: 39),
.init(name: "3", note: 42),
.init(name: "4", note: 46),
.init(name: "5", note: 49),
.init(name: "6", note: 51),
.init(name: "7", note: 54),
.init(name: "8", note: 56),
.init(name: "9", note: 36),
.init(name: "10", note: 38),
.init(name: "11", note: 41),
.init(name: "12", note: 45),
.init(name: "13", note: 48),
.init(name: "14", note: 62),
.init(name: "15", note: 63),
.init(name: "16", note: 64),
]
case .tr08:
return [
.init(name: "Kick", note: 36),
.init(name: "Rim", note: 37),
.init(name: "Snare", note: 38),
.init(name: "Clap", note: 39),
.init(name: "CL HH", note: 42),
.init(name: "Low Tom", note: 43),
.init(name: "OP HH", note: 46),
.init(name: "Mid Tom", note: 47),
.init(name: "Cymbal", note: 49),
.init(name: "Hi Tom", note: 50),
.init(name: "Cowbell", note: 56),
.init(name: "Hi Conga", note: 62),
.init(name: "Mid Conga", note: 63),
.init(name: "Low Conga", note: 64),
.init(name: "Maracas", note: 70),
.init(name: "Claves", note: 75),
]
case .tr707:
return [
.init(name: "Kick 1", note: 35),
.init(name: "Kick 2", note: 36),
.init(name: "Rim", note: 37),
.init(name: "Snare 1", note: 38),
.init(name: "Clap", note: 39),
.init(name: "Snare 2", note: 40),
.init(name: "Low Tom", note: 41),
.init(name: "CL HH", note: 42),
.init(name: "Mid Tom", note: 45),
.init(name: "OP HH", note: 46),
.init(name: "Hi Tom", note: 48),
.init(name: "Crash", note: 49),
.init(name: "Ride", note: 51),
.init(name: "Tambourine", note: 54),
.init(name: "Cowbell", note: 56),
]
case .tr727:
return [
.init(name: "Hi Bongo", note: 60),
.init(name: "Low Bongo", note: 61),
.init(name: "Mute Hi Conga", note: 62),
.init(name: "Open Hi Conga", note: 63),
.init(name: "Low Conga", note: 64),
.init(name: "Hi Timbale", note: 65),
.init(name: "Low Timbale", note: 66),
.init(name: "Hi Agogo", note: 67),
.init(name: "Low Agogo", note: 68),
.init(name: "Cabasa", note: 69),
.init(name: "Maracas", note: 70),
.init(name: "Short Whistle", note: 71),
.init(name: "Long Whistle", note: 72),
.init(name: "Quijada", note: 73),
.init(name: "Star Chime", note: 74),
]
case .tr808chd:
return [
.init(name: "Kick", note: 35),
.init(name: "Snare", note: 38),
.init(name: "Low Tom", note: 41),
.init(name: "Mid Tom", note: 45),
.init(name: "Hi Tom", note: 48),
.init(name: "Rimshot", note: 37),
.init(name: "Clap", note: 39),
.init(name: "Cowbell", note: 56),
.init(name: "Cowbell 2", note: 51),
.init(name: "Cymbal", note: 49),
.init(name: "OP HH", note: 46),
.init(name: "CL HH", note: 42),
]
case .tr808kenton:
return [
.init(name: "Kick", note: 36),
.init(name: "Snare", note: 37),
.init(name: "Low Tom", note: 38),
.init(name: "Mid Tom", note: 39),
.init(name: "Hi Tom", note: 40),
.init(name: "Rimshot", note: 41),
.init(name: "Clap", note: 42),
.init(name: "Cowbell", note: 43),
.init(name: "Cymball", note: 46),
.init(name: "OP HH", note: 45),
.init(name: "CL HH", note: 44),
]
case .tr8s:
return [
.init(name: "BD", note: 36),
.init(name: "SD", note: 38),
.init(name: "LT", note: 43),
.init(name: "MT", note: 47),
.init(name: "HT", note: 50),
.init(name: "RS", note: 37),
.init(name: "HC", note: 39),
.init(name: "CH", note: 42),
.init(name: "OH", note: 46),
.init(name: "CC", note: 49),
.init(name: "RC", note: 51),
]
case .tr909:
return [
.init(name: "Kick", note: 35),
.init(name: "Rim", note: 37),
.init(name: "Snare", note: 38),
.init(name: "Clap", note: 39),
.init(name: "Low Tom", note: 41),
.init(name: "CL HH", note: 42),
.init(name: "Mid Tom", note: 45),
.init(name: "OP HH", note: 46),
.init(name: "Hi Tom", note: 48),
.init(name: "Crash", note: 49),
.init(name: "Ride", note: 51),
]
}
}
var description: String {
switch self {
case .ar909: return "AR-909"
case .axon2: return "Axon 2"
case .blipBox: return "Blip Box"
case .dadamachinesAutomat: return "Dadamachines Automat"
case .digistix: return "Digistix"
case .drumlab: return "DM1/DM2/Drumlab"
case .drumComputer: return "Drum Computer"
case .egdr606: return "EGDR606"
case .egdr808: return "EGDR808"
case .egdr909: return "EGDR909"
case .facDrumkit: return "FAC Drumkit"
case .generalMIDI8: return "General MIDI 8"
case .generalMIDI16: return "General MIDI 16"
case .hammerhead: return "Hammerhead"
case .koalaSampler2x8: return "Koala Sampler 2x8"
case .koalaSampler4x4: return "Koala Sampler 4x4"
case .korgGadgetAmsterdam: return "Korg Gadget Amsterdam"
case .korgGadgetBilbao: return "Korg Gadget Bilbao"
case .korgGadgetGladstone: return "Korg Gadget Gladstone"
case .korgGadgetLondon: return "Korg Gadget London"
case .korgGadgetRecife: return "Korg Gadget Recifie"
case .korgGadgetTokyo: return "Korg Gadget Tokyo"
case .mv08: return "MV08"
case .nsSlate: return "NS2 Slate"
case .pureAcidDrum: return "Pure Acid Drums"
case .ruismaker: return "Ruismaker"
case .ruismakerFM: return "Ruismaker FM"
case .sdsx: return "SDS-x"
case .sitala: return "Sitala"
case .splatToClat: return "Splat-to-Clat"
case .vaDrumSM: return "VA Drum SM"
case .vaDrum2_808: return "VA Drum 2 808"
case .vaDrum2_909: return "VA Drum 2 909"
case .vatanator: return "Vatanator"
case .drumbrute: return "Arturia Drumbrute"
case .drumbruteImpact: return "Arturia Drumbrute Impact"
case .electribeEMX: return "Korg Electribe EMX"
case .electribeER1: return "Korg Electribe ER-1"
case .volcaBeats: return "Korg Volca Beats"
case .mfb522: return "MFB 522"
case .mc101: return "Roland MC-101"
case .tr08: return "Roland TR-08"
case .tr707: return "Roland TR-707"
case .tr727: return "Roland TR-727"
case .tr808chd: return "Roland TR-808 (CHD Kit)"
case .tr808kenton: return "Roland TR-808 (Kenton Kit)"
case .tr8s: return "Roland TR-8S"
case .tr909: return "Roland TR-909"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment