Skip to content

REQ: Please add support for TE OP-XY multisample patches #72

@krunchr

Description

@krunchr

Thanks for ConvertWithMoss, which has already helped me a lot. I have owned an OP-XY from Teenage Engineering for some time now. I would be delighted if you could find the time to support this device in ConvertWithMoss at some point.

  • The OP-XY supports multisamples and reads the root key and loop markers from the sample chunk of wave files. However, compiling your own multisamples on the device is tedious and not yet fully developed.
  • Its dedicated format for multisample patches is relatively open: It consists of a folder containing the individual wave files and a .json file with the mapping and meta information (example below).
  • There is a online multisample patch generator that works perfectly but does not convert any other sample formats. You can drag the individual samples onto it and the tool then automatically generates a patch file for the XY (provided the wave files contain the tags).

Here is an example for the .json file mentioned above:

{
"engine": {
"bendrange": 13653,
"highpass": 0,
"modulation": {
"aftertouch": {
"amount": 30719,
"target": 4096
},
"modwheel": {
"amount": 32767,
"target": 10240
},
"pitchbend": {
"amount": 16383,
"target": 0
},
"velocity": {
"amount": 16383,
"target": 0
}
},
"params": [
16384,
16384,
16384,
16384,
16384,
16384,
16384,
16384
],
"playmode": "poly",
"portamento.amount": 0,
"portamento.type": 32767,
"transpose": 0,
"tuning.root": 0,
"tuning.scale": 0,
"velocity.sensitivity": 10240,
"volume": 16466,
"width": 3072
},
"envelope": {
"amp": {
"attack": 0,
"decay": 20295,
"release": 16383,
"sustain": 14989
},
"filter": {
"attack": 0,
"decay": 16895,
"release": 19968,
"sustain": 16896
}
},
"fx": {
"active": false,
"params": [
19661,
0,
7391,
24063,
0,
32767,
0,
0
],
"type": "svf"
},
"lfo": {
"active": false,
"params": [
19024,
32255,
4048,
17408,
0,
0,
0,
0
],
"type": "element"
},
"octave": 0,
"platform": "OP-XY",
"regions": [
{
"framecount": 238140,
"gain": 0,
"hikey": 48,
"lokey": 0,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 48,
"reverse": false,
"sample": "horizon C2.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
},
{
"framecount": 238140,
"gain": 0,
"hikey": 54,
"lokey": 49,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 54,
"reverse": false,
"sample": "horizon F#2.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
},
{
"framecount": 238140,
"gain": 0,
"hikey": 60,
"lokey": 55,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 60,
"reverse": false,
"sample": "horizon C3.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
},
{
"framecount": 238140,
"gain": 0,
"hikey": 66,
"lokey": 61,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 66,
"reverse": false,
"sample": "horizon F#3.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
},
{
"framecount": 238140,
"gain": 0,
"hikey": 72,
"lokey": 67,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 72,
"reverse": false,
"sample": "horizon C4.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
},
{
"framecount": 238140,
"gain": 0,
"hikey": 78,
"lokey": 73,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 78,
"reverse": false,
"sample": "horizon F#4.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
},
{
"framecount": 238140,
"gain": 0,
"hikey": 84,
"lokey": 79,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 84,
"reverse": false,
"sample": "horizon C5.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
},
{
"framecount": 238140,
"gain": 0,
"hikey": 90,
"lokey": 85,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 90,
"reverse": false,
"sample": "horizon F#5.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
},
{
"framecount": 238140,
"gain": 0,
"hikey": 127,
"lokey": 91,
"loop.crossfade": 0,
"loop.end": 238140,
"loop.onrelease": true,
"loop.enabled": true,
"loop.start": 158760,
"pitch.keycenter": 95,
"reverse": false,
"sample": "horizon B5.wav",
"sample.end": 238140,
"sample.start": 0,
"tune": 0
}
],
"type": "multisampler",
"version": 4
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions