Match standard OP-XY drum layout from community drum tool

Reorder: kicks, snares, rim/clap, tamb/shaker, hats, clave,
toms interleaved with ride/crash, then congas/cowbell/guiro.
Engine settings matched to opxy-drum-tool defaults (poly, octave 0).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-30 20:07:15 -04:00
parent a7c9ab6a7f
commit bf5adc5083
119 changed files with 313 additions and 314 deletions
+34 -35
View File
@@ -20,33 +20,32 @@ HIT_DURATION = 0.5 # seconds per drum hit
# ── Drum kits: name -> list of (DrumSound, display_name) ─────────────────────
KITS = {
# 808/909-style layout matching OP-XY factory kits (Rytm classic)
# Kicks at bottom, snare/rim/clap, toms interleaved with hats, cymbals top
# Standard OP-XY layout (matches community opxy-drum-tool)
"standard": [
(DrumSound.KICK, "kick"), # 53 kick
(DrumSound.KICK, "kick2"), # 54 kick variation
(DrumSound.KICK, "kick2"), # 54 kick (alt)
(DrumSound.SNARE, "snare"), # 55 snare
(DrumSound.RIMSHOT, "rimshot"), # 56 rimshot
(DrumSound.CLAP, "clap"), # 57 clap
(DrumSound.COWBELL, "cowbell"), # 58 cowbell
(DrumSound.PEDAL_HAT, "pd_hat"), # 59 pedal hat
(DrumSound.LOW_TOM, "lo_tom"), # 60 low tom
(DrumSound.SNARE, "snare2"), # 56 snare (alt)
(DrumSound.RIMSHOT, "rimshot"), # 57 rim
(DrumSound.CLAP, "clap"), # 58 clap
(DrumSound.TAMBOURINE, "tamb"), # 59 tamb/perc
(DrumSound.SHAKER, "shaker"), # 60 shaker
(DrumSound.CLOSED_HAT, "cl_hat"), # 61 closed hat
(DrumSound.MID_TOM, "mid_tom"), # 62 mid tom
(DrumSound.CLOSED_HAT, "cl_hat2"), # 62 closed hat (alt)
(DrumSound.OPEN_HAT, "op_hat"), # 63 open hat
(DrumSound.HIGH_TOM, "hi_tom"), # 64 high tom
(DrumSound.TAMBOURINE, "tamb"), # 65 tambourine
(DrumSound.CLAVE, "clave"), # 64 clave
(DrumSound.LOW_TOM, "lo_tom"), # 65 low tom
(DrumSound.RIDE, "ride"), # 66 ride
(DrumSound.RIDE_BELL, "ride_bell"),# 67 ride bell
(DrumSound.MID_TOM, "mid_tom"), # 67 mid tom
(DrumSound.CRASH, "crash"), # 68 crash
(DrumSound.SHAKER, "shaker"), # 69 shaker
(DrumSound.CLAVE, "clave"), # 70 clave
(DrumSound.CONGA_LOW, "conga_lo"), # 71 conga low
(DrumSound.CONGA_HIGH, "conga_hi"),# 72 conga high
(DrumSound.BONGO_LOW, "bongo_lo"), # 73 bongo low
(DrumSound.BONGO_HIGH, "bongo_hi"),# 74 bongo high
(DrumSound.TIMBALE_LOW, "timbal_lo"),# 75 timbale low
(DrumSound.TIMBALE_HIGH, "timbal_hi"),# 76 timbale high
(DrumSound.HIGH_TOM, "hi_tom"), # 69 high tom
(DrumSound.RIDE_BELL, "ride_bell"),# 70 triangle/bell
(DrumSound.CONGA_LOW, "conga_lo"), # 71 low conga
(DrumSound.CONGA_HIGH, "conga_hi"),# 72 high conga
(DrumSound.COWBELL, "cowbell"), # 73 cowbell
(DrumSound.GUIRO, "guiro"), # 74 guiro
(DrumSound.PEDAL_HAT, "pd_hat"), # 75 pedal hat
(DrumSound.AGOGO_HIGH, "agogo"), # 76 agogo
],
"latin": [
(DrumSound.KICK, "kick"),
@@ -211,36 +210,36 @@ def make_drum_patch_json(regions: list) -> dict:
"velocity": {"amount": 16383, "target": 0},
},
"params": [16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0,
},
"envelope": {
"amp": {"attack": 0, "decay": 0, "release": 0, "sustain": 32767},
"amp": {"attack": 0, "decay": 0, "release": 1000, "sustain": 32767},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062,
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983,
},
},
"fx": {
"active": False,
"params": [6963, 16711, 10382, 5632, 0, 32767, 0, 0],
"type": "z lowpass",
"params": [22014, 0, 30285, 11880, 0, 32767, 0, 0],
"type": "ladder",
},
"lfo": {
"active": False,
"params": [9168, 6334, 23210, 29491, 0, 0, 0, 18186],
"params": [20309, 5679, 19114, 15807, 0, 0, 0, 12287],
"type": "random",
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": regions,
"type": "drum",
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,59 +30,59 @@
16384,
16384
],
"playmode": "mono",
"portamento.amount": 128,
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 12,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 3045,
"velocity.sensitivity": 6879,
"volume": 24901,
"tuning.scale": 0,
"velocity.sensitivity": 19660,
"volume": 18348,
"width": 0
},
"envelope": {
"amp": {
"attack": 0,
"decay": 0,
"release": 0,
"release": 1000,
"sustain": 32767
},
"filter": {
"attack": 3932,
"decay": 13167,
"release": 9502,
"sustain": 18062
"attack": 0,
"decay": 3276,
"release": 23757,
"sustain": 983
}
},
"fx": {
"active": false,
"params": [
6963,
16711,
10382,
5632,
22014,
0,
30285,
11880,
0,
32767,
0,
0
],
"type": "z lowpass"
"type": "ladder"
},
"lfo": {
"active": false,
"params": [
9168,
6334,
23210,
29491,
20309,
5679,
19114,
15807,
0,
0,
0,
18186
12287
],
"type": "random"
},
"octave": -1,
"octave": 0,
"platform": "OP-XY",
"regions": [
{
@@ -140,7 +140,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "rimshot.wav",
"sample": "snare2.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -155,7 +155,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "clap.wav",
"sample": "rimshot.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -170,7 +170,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "cowbell.wav",
"sample": "clap.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -185,7 +185,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "pd_hat.wav",
"sample": "tamb.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -200,7 +200,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "lo_tom.wav",
"sample": "shaker.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -230,7 +230,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "mid_tom.wav",
"sample": "cl_hat2.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -260,7 +260,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "hi_tom.wav",
"sample": "clave.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -275,7 +275,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "tamb.wav",
"sample": "lo_tom.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -305,7 +305,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "ride_bell.wav",
"sample": "mid_tom.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -335,7 +335,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "shaker.wav",
"sample": "hi_tom.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -350,7 +350,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "clave.wav",
"sample": "ride_bell.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -395,7 +395,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "bongo_lo.wav",
"sample": "cowbell.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -410,7 +410,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "bongo_hi.wav",
"sample": "guiro.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -425,7 +425,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "timbal_lo.wav",
"sample": "pd_hat.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
@@ -440,7 +440,7 @@
"pitch.keycenter": 60,
"playmode": "oneshot",
"reverse": false,
"sample": "timbal_hi.wav",
"sample": "agogo.wav",
"sample.end": 22050,
"transpose": 0,
"tune": 0
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More