This commit is contained in:
SatyrDiamond 2023-11-12 12:41:13 -05:00
parent 38be22f2d9
commit bfe7e5127e
29 changed files with 38337 additions and 0 deletions

816
data_dset/adlib_rol.dset Normal file
View File

@ -0,0 +1,816 @@
{
"inst": {
"midi_to": {
"ACCORDN": 21,
"BAGPIPE1": 109,
"BAGPIPE2": 109,
"BANJO1": 105,
"BASS1": 34,
"BASS2": 35,
"BASSOON1": 70,
"BRASS1": 62,
"CELESTA": 8,
"CLAR1": 71,
"CLAR2": 71,
"CLARINET": 71,
"ELGUIT1": 26,
"ELGUIT2": 27,
"ELGUIT3": 26,
"ELGUIT4": 27,
"ELORGAN1": 16,
"ELPIANO1": 4,
"ELPIANO2": 5,
"EPIANO1A": 4,
"EPIANO1B": 5,
"FLUTE": 73,
"FLUTE1": 73,
"FLUTE2": 75,
"FRHORN1": 60,
"FRHORN2": 60,
"GUITAR1": 24,
"HARP1": 46,
"HARP2": 46,
"HARP3": 46,
"HARPSI1": 6,
"HARPSI2": 6,
"HARPSI3": 6,
"HARPSI4": 6,
"HARPSI5": 6,
"JAZZGUIT": 26,
"KEYBRD1": 3,
"KEYBRD2": 5,
"KEYBRD3": 2,
"MARIMBA1": 12,
"MARIMBA2": 12,
"OBOE1": 68,
"ORGAN1": 16,
"ORGAN2": 17,
"ORGAN3": 18,
"ORGAN3A": 19,
"ORGAN3B": 20,
"ORGNPERC": 17,
"PIAN1A": 0,
"PIAN1B": 0,
"PIAN1C": 0,
"PIANO": 0,
"PIANO1": 0,
"PIANO2": 1,
"PIANO3": 2,
"PIANO4": 3,
"PIANOBEL": 98,
"SAX1": 64,
"SITAR1": 104,
"SITAR2": 104,
"SOLOVLN": 40,
"STEELGT1": 24,
"STEELGT2": 25,
"SYNBASS1": 38,
"SYNBASS2": 39,
"SYNBASS4": 39,
"TROMB1": 57,
"TROMB2": 57,
"TRUMPET1": 56,
"TRUMPET2": 56,
"TRUMPET3": 56,
"TRUMPET4": 56,
"TUBA1": 58,
"VIBRA1": 11,
"VIBRA2": 11,
"VIBRA3": 11,
"VIOLIN1": 40,
"VIOLIN2": 40,
"VIOLIN3": 40,
"VLNPIZZ1": 45,
"XYLO1": 13,
"XYLO2": 13,
"XYLO3": 13
},
"objects": {
"ACCORDN": {
"visual": {
"name": "Accordion"
}
},
"BAGPIPE1": {
"visual": {
"name": "Bagpipe 1"
}
},
"BAGPIPE2": {
"visual": {
"name": "Bagpipe 2"
}
},
"BANJO1": {
"visual": {
"name": "Banjo"
}
},
"BASS1": {
"visual": {
"name": "Bass 1"
}
},
"BASS2": {
"visual": {
"name": "Bass 2"
}
},
"BASSHARP": {
"visual": {
"name": "Bass Harp"
}
},
"BASSOON1": {
"visual": {
"name": "Bassoon"
}
},
"BASSTRLG": {
"visual": {
"name": "Bass String Long"
}
},
"BDRUM1": {
"visual": {
"name": "Bass Drum"
}
},
"BELLONG": {
"visual": {
"name": "Bell Long"
}
},
"BELLS": {
"visual": {
"name": "Bells"
}
},
"BELSHORT": {
"visual": {
"name": "Bell Short"
}
},
"BNCEBASS": {
"visual": {
"name": "BnceBass"
}
},
"BRASS1": {
"visual": {
"name": "Brass"
}
},
"CBASSOON": {
"visual": {
"name": "C Bassoon"
}
},
"CELESTA": {
"visual": {
"name": "Celesta"
}
},
"CLAR1": {
"visual": {
"name": "Clarinet 1"
}
},
"CLAR2": {
"visual": {
"name": "Clarinet 2"
}
},
"CLARINET": {
"visual": {
"name": "Clarinet"
}
},
"CLAVECIN": {
"visual": {
"name": "Clavecin"
}
},
"CROMORNE": {
"visual": {
"name": "Cromorne"
}
},
"CYMBAL1": {
"visual": {
"name": "Cymbal"
}
},
"ELCLAV1": {
"visual": {
"name": "Elec Clav 1"
}
},
"ELCLAV2": {
"visual": {
"name": "Elec Clav 2"
}
},
"ELECFL": {
"visual": {
"name": "Elec Flute"
}
},
"ELECVIBE": {
"visual": {
"name": "Elec Vibe"
}
},
"ELGUIT1": {
"visual": {
"name": "Electric Guitar"
}
},
"ELGUIT2": {
"visual": {
"name": "Electric Guitar 2"
}
},
"ELGUIT3": {
"visual": {
"name": "Electric Guitar 3"
}
},
"ELGUIT4": {
"visual": {
"name": "Electric Guitar 4"
}
},
"ELORGAN1": {
"visual": {
"name": "Electric Organ"
}
},
"ELPIANO1": {
"visual": {
"name": "Electric Piano 1"
}
},
"ELPIANO2": {
"visual": {
"name": "Electric Piano 2"
}
},
"EPIANO1A": {
"visual": {
"name": "Electric Piano 1a"
}
},
"EPIANO1B": {
"visual": {
"name": "Electric Piano 1b"
}
},
"FLUTE": {
"visual": {
"name": "Flute"
}
},
"FLUTE1": {
"visual": {
"name": "Flute 1"
}
},
"FLUTE2": {
"visual": {
"name": "Flute 2"
}
},
"FRHORN1": {
"visual": {
"name": "French Horn 1"
}
},
"FRHORN2": {
"visual": {
"name": "French Horn 2"
}
},
"FSTRP1": {
"visual": {
"name": "fstrp1"
}
},
"FSTRP2": {
"visual": {
"name": "fstrp2"
}
},
"FUZGUIT1": {
"visual": {
"name": "Fuzz Guitar 1"
}
},
"FUZGUIT2": {
"visual": {
"name": "Fuzz Guitar 2"
}
},
"GUITAR1": {
"visual": {
"name": "Guitar"
}
},
"HARP1": {
"visual": {
"name": "Harp 1"
}
},
"HARP2": {
"visual": {
"name": "Harp 2"
}
},
"HARP3": {
"visual": {
"name": "Harp 3"
}
},
"HARPE1": {
"visual": {
"name": "Harpe"
}
},
"HARPSI1": {
"visual": {
"name": "Harpsichord 1"
}
},
"HARPSI2": {
"visual": {
"name": "Harpsichord 2"
}
},
"HARPSI3": {
"visual": {
"name": "Harpsichord 3"
}
},
"HARPSI4": {
"visual": {
"name": "Harpsichord 4"
}
},
"HARPSI5": {
"visual": {
"name": "Harpsichord 5"
}
},
"HELICPTR": {
"visual": {
"name": "Helicopter"
}
},
"HIHAT1": {
"visual": {
"name": "Hi-Hat 1"
}
},
"HIHAT2": {
"visual": {
"name": "Hi-Hat 2"
}
},
"JAVAICAN": {
"visual": {
"name": "Javaican"
}
},
"JAZZGUIT": {
"visual": {
"name": "Jazz Guitar"
}
},
"JEWSHARP": {
"visual": {
"name": "Jew's harp"
}
},
"KEYBRD1": {
"visual": {
"name": "Keyboard 1"
}
},
"KEYBRD2": {
"visual": {
"name": "Keyboard 2"
}
},
"KEYBRD3": {
"visual": {
"name": "Keyboard 3"
}
},
"LASER": {
"visual": {
"name": "Laser"
}
},
"LOGDRUM1": {
"visual": {
"name": "Log Drum"
}
},
"MARIMBA1": {
"visual": {
"name": "Marimba 1"
}
},
"MARIMBA2": {
"visual": {
"name": "Marimba 2"
}
},
"MDRNPHON": {
"visual": {
"name": "Mdrnphon"
}
},
"MLTRDRUM": {
"visual": {
"name": "Mltrdrum"
}
},
"MOOGSYNT": {
"visual": {
"name": "Moog Synth"
}
},
"NOISE1": {
"visual": {
"name": "Noise"
}
},
"OBOE1": {
"visual": {
"name": "Oboe"
}
},
"ORGAN1": {
"visual": {
"name": "Organ"
}
},
"ORGAN2": {
"visual": {
"name": "Organ 2"
}
},
"ORGAN3": {
"visual": {
"name": "Organ 3"
}
},
"ORGAN3A": {
"visual": {
"name": "Organ 3a"
}
},
"ORGAN3B": {
"visual": {
"name": "Organ 3b"
}
},
"ORGNPERC": {
"visual": {
"name": "Percussive Organ"
}
},
"PHONE1": {
"visual": {
"name": "Phone"
}
},
"PHONE2": {
"visual": {
"name": "Phone 2"
}
},
"PIAN1A": {
"visual": {
"name": "Piano 1a"
}
},
"PIAN1B": {
"visual": {
"name": "Piano 1b"
}
},
"PIAN1C": {
"visual": {
"name": "Piano 1c"
}
},
"PIANO": {
"visual": {
"name": "Piano"
}
},
"PIANO1": {
"visual": {
"name": "Piano 1"
}
},
"PIANO2": {
"visual": {
"name": "Piano 2"
}
},
"PIANO3": {
"visual": {
"name": "Piano 3"
}
},
"PIANO4": {
"visual": {
"name": "Piano 4"
}
},
"PIANOBEL": {
"visual": {
"name": "Piano Bell"
}
},
"PIANOF": {
"visual": {
"name": "Piano F"
}
},
"POPBASS1": {
"visual": {
"name": "Pop Bass"
}
},
"RKSNARE1": {
"visual": {
"name": "RK Snare"
}
},
"SAX1": {
"visual": {
"name": "Sax"
}
},
"SCRATCH": {
"visual": {
"name": "Scratch"
}
},
"SCRATCH4": {
"visual": {
"name": "Scratch 4"
}
},
"SDRUM2": {
"visual": {
"name": "Snare Drum 2"
}
},
"SHRTVIBE": {
"visual": {
"name": "Short Vibe"
}
},
"SITAR1": {
"visual": {
"name": "Sitar 1"
}
},
"SITAR2": {
"visual": {
"name": "Sitar 2"
}
},
"SNAKEFL": {
"visual": {
"name": "Snakefl"
}
},
"SNARE1": {
"visual": {
"name": "Snare 1"
}
},
"SNRSUST": {
"visual": {
"name": "Snare Sustain"
}
},
"SOLOVLN": {
"visual": {
"name": "Solo Violin"
}
},
"STEELGT1": {
"visual": {
"name": "Acoustic Guitar 1"
}
},
"STEELGT2": {
"visual": {
"name": "Acoustic Guitar 2"
}
},
"STRINGS1": {
"visual": {
"name": "Strings 1"
}
},
"STRNLONG": {
"visual": {
"name": "strnlong"
}
},
"SYN1": {
"visual": {
"name": "Synth 1"
}
},
"SYN2": {
"visual": {
"name": "Synth 2"
}
},
"SYN3": {
"visual": {
"name": "Synth 3"
}
},
"SYN4": {
"visual": {
"name": "Synth 4"
}
},
"SYN5": {
"visual": {
"name": "Synth 5"
}
},
"SYN6": {
"visual": {
"name": "Synth 6"
}
},
"SYN9": {
"visual": {
"name": "Synth 9"
}
},
"SYNBAL1": {
"visual": {
"name": "Synbal 1"
}
},
"SYNBAL2": {
"visual": {
"name": "Synbal 2"
}
},
"SYNBASS1": {
"visual": {
"name": "Synth Bass"
}
},
"SYNBASS2": {
"visual": {
"name": "Synth Bass 2"
}
},
"SYNBASS4": {
"visual": {
"name": "Synth Bass 4"
}
},
"SYNSNR1": {
"visual": {
"name": "Synth Snare"
}
},
"SYNSNR2": {
"visual": {
"name": "Synth Snare 2"
}
},
"TINCAN1": {
"visual": {
"name": "Tin Can"
}
},
"TOM1": {
"visual": {
"name": "Tom 1"
}
},
"TOM2": {
"visual": {
"name": "Tom 2"
}
},
"TRAINBEL": {
"visual": {
"name": "Train Bell"
}
},
"TRIANGLE": {
"visual": {
"name": "Triangle"
}
},
"TROMB1": {
"visual": {
"name": "Trombone 1"
}
},
"TROMB2": {
"visual": {
"name": "Trombone 2"
}
},
"TRUMPET1": {
"visual": {
"name": "Trumpet 1"
}
},
"TRUMPET2": {
"visual": {
"name": "Trumpet 2"
}
},
"TRUMPET3": {
"visual": {
"name": "Trumpet 3"
}
},
"TRUMPET4": {
"visual": {
"name": "Trumpet 4"
}
},
"TUBA1": {
"visual": {
"name": "Tuba"
}
},
"VIBRA1": {
"visual": {
"name": "Vibraphone 1"
}
},
"VIBRA2": {
"visual": {
"name": "Vibraphone 2"
}
},
"VIBRA3": {
"visual": {
"name": "Vibraphone 3"
}
},
"VIOLIN1": {
"visual": {
"name": "Violin 1"
}
},
"VIOLIN2": {
"visual": {
"name": "Violin 2"
}
},
"VIOLIN3": {
"visual": {
"name": "Violin 3"
}
},
"VLNPIZZ1": {
"visual": {
"name": "Violin Pizzicato"
}
},
"WAVE": {
"visual": {
"name": "Wave"
}
},
"XYLO1": {
"visual": {
"name": "Xylophone 1"
}
},
"XYLO2": {
"visual": {
"name": "Xylophone 2"
}
},
"XYLO3": {
"visual": {
"name": "Xylophone 3"
}
}
}
}
}

4199
data_dset/amped.dset Normal file

File diff suppressed because it is too large Load Diff

470
data_dset/audiosauna.dset Normal file
View File

@ -0,0 +1,470 @@
{
"plugin": {
"objects": {
"0": {
"params": {
"aOp1": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Osc 1 Attack",
"noauto": false,
"type": "float"
},
"aOp2": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Osc 2 Attack",
"noauto": false,
"type": "float"
},
"attack": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Attack",
"noauto": false,
"type": "float"
},
"dOp1": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Osc 1 Decay",
"noauto": false,
"type": "float"
},
"dOp2": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Osc 2 Decay",
"noauto": false,
"type": "float"
},
"decay": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Decay",
"noauto": false,
"type": "float"
},
"fine1": {
"def": 0,
"max": 100,
"min": 0,
"name": "Osc 1 Fine",
"noauto": false,
"type": "int"
},
"fine2": {
"def": 0,
"max": 100,
"min": 0,
"name": "Osc 2 Fine",
"noauto": false,
"type": "int"
},
"fm": {
"def": 0,
"max": 100,
"min": 0,
"name": "FM",
"noauto": false,
"type": "int"
},
"oct1": {
"def": 0,
"max": 8,
"min": 0,
"name": "Osc 1 Octave",
"noauto": false,
"type": "int"
},
"oct2": {
"def": 0,
"max": 8,
"min": 0,
"name": "Osc 2 Octave",
"noauto": false,
"type": "int"
},
"osc1Vol": {
"def": 0.0,
"max": 0.5,
"min": 0.0,
"name": "Osc 1 Volume",
"noauto": false,
"type": "float"
},
"osc2Vol": {
"def": 0.0,
"max": 0.5,
"min": 0.0,
"name": "Osc 2 Volume",
"noauto": false,
"type": "float"
},
"portamento": {
"def": 0.0,
"max": 2.0,
"min": 0.0,
"name": "Portamento",
"noauto": false,
"type": "float"
},
"release": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Release",
"noauto": false,
"type": "float"
},
"sOp1": {
"def": 0.0,
"max": 1.0,
"min": 0.0,
"name": "Osc 1 Sustain",
"noauto": false,
"type": "float"
},
"sOp2": {
"def": 0.0,
"max": 1.0,
"min": 0.0,
"name": "Osc 2 Sustain",
"noauto": false,
"type": "float"
},
"semi1": {
"def": 0,
"max": 12,
"min": -12,
"name": "Osc 1 Semi",
"noauto": false,
"type": "int"
},
"semi2": {
"def": 0,
"max": 12,
"min": -12,
"name": "Osc 2 Semi",
"noauto": false,
"type": "int"
},
"sustain": {
"def": 0.0,
"max": 1.0,
"min": 0.0,
"name": "Sustain",
"noauto": false,
"type": "float"
},
"wave1": {
"def": 0,
"max": 4,
"min": 0,
"name": "Osc 1 Wave",
"noauto": false,
"type": "int"
},
"wave2": {
"def": 0,
"max": 4,
"min": 0,
"name": "Osc 2 Wave",
"noauto": false,
"type": "int"
},
"waveform": {
"def": 0,
"max": 2,
"min": 0,
"name": "Waveform",
"noauto": false,
"type": "int"
}
},
"visual": {
"color": [
0.2235294133424759,
0.2235294133424759,
0.2235294133424759
],
"name": "Analog Synth"
}
},
"1": {
"params": {
"aOp1": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Op1 Attack",
"noauto": false,
"type": "float"
},
"aOp2": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Op2 Attack",
"noauto": false,
"type": "float"
},
"aOp3": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Op3 Attack",
"noauto": false,
"type": "float"
},
"aOp4": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Op4 Attack",
"noauto": false,
"type": "float"
},
"attack": {
"def": 0.0,
"max": 2.0,
"min": 0.0,
"name": "Attack",
"noauto": false,
"type": "float"
},
"dOp1": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Op1 Decay",
"noauto": false,
"type": "float"
},
"dOp2": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Op2 Decay",
"noauto": false,
"type": "float"
},
"dOp3": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Op3 Decay",
"noauto": false,
"type": "float"
},
"dOp4": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Op4 Decay",
"noauto": false,
"type": "float"
},
"decay": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Decay",
"noauto": false,
"type": "float"
},
"fine1": {
"def": 0.0,
"max": 0.5,
"min": -0.5,
"name": "Op1 Fine",
"noauto": false,
"type": "float"
},
"fine2": {
"def": 0.0,
"max": 0.5,
"min": -0.5,
"name": "Op2 Fine",
"noauto": false,
"type": "float"
},
"fine3": {
"def": 0.0,
"max": 0.5,
"min": -0.5,
"name": "Op3 Fine",
"noauto": false,
"type": "float"
},
"fine4": {
"def": 0.0,
"max": 0.5,
"min": -0.5,
"name": "Op4 Fine",
"noauto": false,
"type": "float"
},
"fmAlgorithm": {
"def": 0,
"max": 8,
"min": 0,
"name": "Algorithm",
"noauto": false,
"type": "int"
},
"fmFeedBack": {
"def": 0,
"max": 200,
"min": 0,
"name": "Feedback",
"noauto": false,
"type": "int"
},
"frq1": {
"def": 0,
"max": 32,
"min": 0,
"name": "Op1 FreqMul",
"noauto": false,
"type": "int"
},
"frq2": {
"def": 0,
"max": 32,
"min": 0,
"name": "Op2 FreqMul",
"noauto": false,
"type": "int"
},
"frq3": {
"def": 0,
"max": 32,
"min": 0,
"name": "Op3 FreqMul",
"noauto": false,
"type": "int"
},
"frq4": {
"def": 0,
"max": 32,
"min": 0,
"name": "Op4 FreqMul",
"noauto": false,
"type": "int"
},
"opAmp1": {
"def": 0,
"max": 100,
"min": 0,
"name": "Op1 Amp",
"noauto": false,
"type": "int"
},
"opAmp2": {
"def": 0,
"max": 100,
"min": 0,
"name": "Op2 Amp",
"noauto": false,
"type": "int"
},
"opAmp3": {
"def": 0,
"max": 100,
"min": 0,
"name": "Op3 Amp",
"noauto": false,
"type": "int"
},
"opAmp4": {
"def": 0,
"max": 100,
"min": 0,
"name": "Op4 Amp",
"noauto": false,
"type": "int"
},
"portamento": {
"def": 0.0,
"max": 2.0,
"min": 0.0,
"name": "Portamento",
"noauto": false,
"type": "float"
},
"release": {
"def": 0.0,
"max": 5.0,
"min": 0.0,
"name": "Release",
"noauto": false,
"type": "float"
},
"sOp1": {
"def": 0,
"max": 100,
"min": 0,
"name": "Op1 Sustain",
"noauto": false,
"type": "int"
},
"sOp2": {
"def": 0,
"max": 100,
"min": 0,
"name": "Op2 Sustain",
"noauto": false,
"type": "int"
},
"sOp3": {
"def": 0,
"max": 100,
"min": 0,
"name": "Op3 Sustain",
"noauto": false,
"type": "int"
},
"sOp4": {
"def": 0,
"max": 100,
"min": 0,
"name": "Op4 Sustain",
"noauto": false,
"type": "int"
},
"sustain": {
"def": 0.0,
"max": 1.0,
"min": 0.0,
"name": "Sustain",
"noauto": false,
"type": "float"
},
"waveform": {
"def": 0.0,
"max": 2.0,
"min": 0.0,
"name": "Waveform",
"noauto": false,
"type": "float"
}
},
"visual": {
"color": [
0.0,
0.49803921580314636,
0.7215686440467834
],
"name": "FM-Synth"
}
}
}
}
}

1126
data_dset/beepbox.dset Normal file

File diff suppressed because it is too large Load Diff

1975
data_dset/boscaceoil.dset Normal file

File diff suppressed because it is too large Load Diff

3023
data_dset/caustic.dset Normal file

File diff suppressed because it is too large Load Diff

5378
data_dset/lmms.dset Normal file

File diff suppressed because it is too large Load Diff

340
data_dset/mariopaint.dset Normal file
View File

@ -0,0 +1,340 @@
{
"inst": {
"midi_to": {
"bobomb": 111,
"bulletbill": 46,
"car": 15,
"coin": 0,
"egg": 44,
"feather": 72,
"flower": 55,
"fruit": 11,
"gameboy": 79,
"ghost": 45,
"goomba": 69,
"heart": 31,
"luigi": 113,
"mario": 163,
"moon": 80,
"peach": 39,
"plane": 23,
"plant": 29,
"shyguy": 47,
"spiny": 20,
"star": 12,
"swan": 44
},
"objects": {
"boat": {
"visual": {
"color": [
0.96,
0.0,
0.01
],
"name": "Hat"
}
},
"bobomb": {
"visual": {
"color": [
0.0,
0.0,
0.0
],
"name": "Bell"
}
},
"bulletbill": {
"visual": {
"color": [
0.0,
0.0,
0.0
],
"name": "Timpani"
}
},
"car": {
"visual": {
"color": [
0.88,
0.53,
0.17
],
"name": "Organ"
}
},
"cat": {
"visual": {
"color": [
0.98,
0.75,
0.51
],
"name": "Meow"
}
},
"coin": {
"visual": {
"color": [
0.93,
0.75,
0.2
],
"name": "Piano 2"
}
},
"dog": {
"visual": {
"color": [
1.0,
1.0,
1.0
],
"name": "Bark"
}
},
"egg": {
"visual": {
"color": [
0.0,
0.97,
0.0
],
"name": "Pizzicato strings"
}
},
"face": {
"visual": {
"color": [
0.98,
0.76,
0.51
],
"name": "Face"
}
},
"feather": {
"visual": {
"color": [
0.97,
0.47,
0.0
],
"name": "Flute"
}
},
"flower": {
"visual": {
"color": [
0.96,
0.5,
0.0
],
"name": "Trumpet"
}
},
"fruit": {
"visual": {
"color": [
0.97,
0.0,
0.0
],
"name": "Marimba"
}
},
"gameboy": {
"visual": {
"color": [
0.76,
0.76,
0.76
],
"name": "Square Wave"
}
},
"ghost": {
"visual": {
"color": [
0.57,
0.96,
0.99
],
"name": "Harp"
}
},
"gnome": {
"visual": {
"color": [
0.0,
0.5,
0.25
],
"name": "Clown Horn"
}
},
"goomba": {
"visual": {
"color": [
0.75,
0.25,
0.13
],
"name": "Bassoon"
}
},
"heart": {
"visual": {
"color": [
0.96,
0.0,
0.0
],
"name": "Bass Guitar"
}
},
"luigi": {
"visual": {
"color": [
0.0,
0.97,
0.48
],
"name": "Steel Drum"
}
},
"mario": {
"visual": {
"color": [
0.92,
0.77,
0.56
],
"name": "Piano"
}
},
"moon": {
"visual": {
"color": [
0.97,
0.97,
0.0
],
"name": "Sawtooth Wave"
}
},
"oneup": {
"visual": {
"color": [
0.0,
0.97,
0.0
],
"name": "Hi-Hat"
}
},
"peach": {
"visual": {
"color": [
0.97,
0.31,
0.56
],
"name": "Violin"
}
},
"pig": {
"visual": {
"color": [
0.96,
0.75,
0.52
],
"name": "Oink"
}
},
"plane": {
"visual": {
"color": [
1.0,
1.0,
1.0
],
"name": "Acoustic Guitar"
}
},
"plant": {
"visual": {
"color": [
0.73,
0.0,
0.01
],
"name": "Distorted Guitar"
}
},
"shyguy": {
"visual": {
"color": [
0.64,
0.0,
0.01
],
"name": "String"
}
},
"spiny": {
"visual": {
"color": [
0.97,
0.5,
0.0
],
"name": "Accordion"
}
},
"star": {
"visual": {
"color": [
0.97,
0.98,
0.0
],
"name": "Xylophone"
}
},
"swan": {
"visual": {
"color": [
0.75,
0.75,
0.76
],
"name": "String Hit"
}
},
"toad": {
"visual": {
"color": [
0.98,
0.0,
0.0
],
"name": "Tom"
}
},
"yoshi": {
"visual": {
"color": [
0.0,
0.98,
0.02
],
"name": "SMW Yoshi"
}
}
}
}
}

1857
data_dset/midi.dset Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,177 @@
{
"inst": {
"midi_to": {
"0": 0,
"1": 35,
"10": 11,
"14": 105,
"4": 13,
"5": 24,
"6": 73,
"7": 112,
"9": 13
},
"objects": {
"0": {
"visual": {
"color": [
0.0,
0.27,
0.55
],
"name": "Piano (Air)"
}
},
"1": {
"visual": {
"color": [
0.13,
0.43,
0.18
],
"name": "Double Bass (Wood)"
}
},
"10": {
"visual": {
"color": [
0.0,
0.44,
0.61
],
"name": "Iron Xylophone (Iron Block)"
}
},
"11": {
"visual": {
"color": [
0.61,
0.04,
0.05
],
"name": "Cow Bell (Soul Sand)"
}
},
"12": {
"visual": {
"color": [
0.61,
0.23,
0.06
],
"name": "Didgeridoo (Pumpkin)"
}
},
"13": {
"visual": {
"color": [
0.0,
0.61,
0.0
],
"name": "Bit (Block of Emerald)"
}
},
"14": {
"visual": {
"color": [
0.61,
0.0,
0.23
],
"name": "Banjo (Hay)"
}
},
"15": {
"visual": {
"color": [
0.24,
0.24,
0.24
],
"name": "Pling (Glowstone)"
}
},
"2": {
"visual": {
"color": [
0.61,
0.3,
0.31
],
"name": "Bass Drum (Stone)"
}
},
"3": {
"visual": {
"color": [
0.61,
0.61,
0.0
],
"name": "Snare Drum (Sand)"
}
},
"4": {
"visual": {
"color": [
0.49,
0.24,
0.48
],
"name": "Click (Glass)"
}
},
"5": {
"visual": {
"color": [
0.4,
0.18,
0.12
],
"name": "Guitar (Wool)"
}
},
"6": {
"visual": {
"color": [
0.61,
0.58,
0.25
],
"name": "Flute (Clay)"
}
},
"7": {
"visual": {
"color": [
0.61,
0.0,
0.61
],
"name": "Bell (Block of Gold)"
}
},
"8": {
"visual": {
"color": [
0.21,
0.44,
0.49
],
"name": "Chime (Packed Ice)"
}
},
"9": {
"visual": {
"color": [
0.61,
0.61,
0.61
],
"name": "Xylophone (Bone Block)"
}
}
}
}
}

1312
data_dset/notessimo_v2.dset Normal file

File diff suppressed because it is too large Load Diff

4072
data_dset/notessimo_v3.dset Normal file

File diff suppressed because it is too large Load Diff

1538
data_dset/onlineseq.dset Normal file

File diff suppressed because it is too large Load Diff

66
data_dset/orgyana.dset Normal file
View File

@ -0,0 +1,66 @@
{
"drums": {
"objects": {
"0": {
"visual": {
"name": "Bass 1"
}
},
"1": {
"visual": {
"name": "Bass 2"
}
},
"10": {
"visual": {
"name": "Bass 3"
}
},
"11": {
"visual": {
"name": "Tom 2"
}
},
"2": {
"visual": {
"name": "Snare 1"
}
},
"3": {
"visual": {
"name": "Snare 2"
}
},
"4": {
"visual": {
"name": "Tom 1"
}
},
"5": {
"visual": {
"name": "Hi-Hat Close"
}
},
"6": {
"visual": {
"name": "Hi-Hat Open"
}
},
"7": {
"visual": {
"name": "Crash"
}
},
"8": {
"visual": {
"name": "Perc 1"
}
},
"9": {
"visual": {
"name": "Perc 2"
}
}
}
}
}

3005
data_dset/soundation.dset Normal file

File diff suppressed because it is too large Load Diff

2629
data_dset/soundclub2.dset Normal file

File diff suppressed because it is too large Load Diff

2250
data_dset/synth_nonfree.dset Normal file

File diff suppressed because it is too large Load Diff

2164
data_dset/waveform.dset Normal file

File diff suppressed because it is too large Load Diff

766
editor_dataset.py Normal file
View File

@ -0,0 +1,766 @@
from enum import Enum
from imgui_bundle import hello_imgui, icons_fontawesome, imgui, immapp
from imgui_bundle.demos_python import demo_utils
from typing import List
import argparse
import json
from functions import xtramath
from functions import data_dataset
table_flags = (
imgui.TableFlags_.row_bg
| imgui.TableFlags_.borders
| imgui.TableFlags_.resizable
| imgui.TableFlags_.sizing_stretch_same
)
def clamp(n, minn, maxn): return max(min(maxn, n), minn)
# --------------------------------------------------------------------------------- Widgits
def widgit_txt_manip(i_text):
wc_txtfield, wi_txtfield = imgui.input_text('##', i_text)
if wc_txtfield: i_text = wi_txtfield
btn_add = False
btn_del = False
if i_text != '':
imgui.same_line()
btn_add = imgui.button("Add")
imgui.same_line()
btn_del = imgui.button("Del")
return btn_add, btn_del, i_text
def widgit_list_manip(i_text, i_list, i_numname, i_vlist):
imgui.separator()
imgui.push_item_width(400)
c_listdata, w_listdata = imgui.list_box('##', i_numname[0], i_list if i_vlist == None else i_vlist)
if c_listdata:
i_numname[0] = w_listdata
i_numname[1] = i_list[i_numname[0]]
i_text = i_numname[1]
return i_text, i_numname, c_listdata, w_listdata
def widgit_txt_but(i_text, i_list, i_numname, i_vlist):
btn_add, btn_del, i_text = widgit_txt_manip(i_text)
i_text, i_numname, c_listdata, w_listdata = widgit_list_manip(i_text, i_list, i_numname, i_vlist)
return btn_add, btn_del, i_text, i_numname, w_listdata
def widgit_txtint_but(i_text, i_value, i_list, i_numname, i_vlist):
btn_add, btn_del, i_text = widgit_txt_manip(i_text)
val_m, i_value = imgui.input_text("##val", i_value)
i_text, i_numname, c_listdata, w_listdata = widgit_list_manip(i_text, i_list, i_numname, i_vlist)
return btn_add, btn_del, i_text, i_value, i_numname, c_listdata, w_listdata, val_m
def widgit_dict_txt(dict_data, dict_name, ctrl_txt, ctrl_type):
paramfound = False
ismodded = False
ctrl_data = ''
if dict_data != None:
if dict_name in dict_data:
ctrl_data = dict_data[dict_name]
paramfound = True
if paramfound:
if ctrl_type == 0: ismodded, ctrl_data = imgui.input_text(ctrl_txt, ctrl_data)
if ctrl_type == 1: ismodded, ctrl_data = imgui.input_int(ctrl_txt, ctrl_data)
if ctrl_type == 2: ismodded, ctrl_data = imgui.input_float(ctrl_txt, ctrl_data)
if ismodded:
if dict_data == None: dict_data = {}
dict_data[dict_name] = ctrl_data
else:
if imgui.button('Create '+ctrl_txt):
ismodded = True
if dict_data == None: dict_data = {}
dict_data[dict_name] = ''
return ismodded, dict_data
def widgit_visualmod(visual_data):
ismodded = False
obj_color = None
if visual_data:
if 'color' in visual_data: obj_color = visual_data['color']
name_modded, visual_data = widgit_dict_txt(visual_data, 'name', 'Name', 0)
if name_modded: ismodded = True
if obj_color != None:
c_color, v_color = imgui.color_edit3('Color', obj_color)
if c_color:
ismodded = True
visual_data['color'] = v_color
else:
if visual_data == None: visual_data = {}
if imgui.button('Create Color'): visual_data['color'] = [0,0,0]
return ismodded, visual_data
def current_txt(i_text, i_type):
imgui.text("Current "+i_type+": "+i_text if i_text else "No "+i_type+" Selected")
def visual_txt(i_text, visual_data):
vispart = i_text
if visual_data: vispart += ' - '+visual_data['name'] if 'name' in visual_data else ''
return vispart
# --------------------------------------------------------------------------------- Vars
g_current_object = [0, None]
g_current_cat = [0, None]
g_current_param = [0, None]
g_current_map = [0, None]
g_current_group = [0, None]
g_current_drumset = [0, None]
# ####################################################################################################
# ####################################################################################################
# --- Category List
# ####################################################################################################
# ####################################################################################################
txtbox_cat_name = ''
def window___category_list():
window_data = hello_imgui.DockableWindow()
window_data.label = "Category List"
window_data.dock_space_name = "LeftSpace"
window_data.gui_function = widgits___category_list
return window_data
def widgits___category_list():
global txtbox_cat_name
global main_dataset
global g_current_cat
current_txt(g_current_cat[1], 'Category')
imgui.separator()
btn_add, btn_del, txtbox_cat_name, g_current_cat, ismodded = widgit_txt_but(txtbox_cat_name, main_dataset.category_list, g_current_cat, None)
if btn_add:
main_dataset.category_add(txtbox_cat_name)
g_current_cat = [0, main_dataset.category_list[g_current_cat[0]]]
if btn_del:
if main_dataset.category_del(txtbox_cat_name): g_current_cat[0] = 0
# ####################################################################################################
# ####################################################################################################
# --- Object Visual Window
# ####################################################################################################
# ####################################################################################################
def window___object_vis_editor():
window_data = hello_imgui.DockableWindow()
window_data.label = "Object Editor"
window_data.dock_space_name = "objvisSpace"
window_data.gui_function = widgits___object_vis_editor
return window_data
def widgits___object_vis_editor():
global main_dataset
global g_current_cat
global g_current_object
group_isobjfound, group_data = main_dataset.object_group_get(g_current_cat[1], g_current_object[1])
if group_isobjfound:
if group_data == None: group_data = ''
c_pard_group, v_pard_group = imgui.input_text('Group', group_data)
if c_pard_group: main_dataset.object_group_set(g_current_cat[1], g_current_object[1], v_pard_group)
# ####################################################################################################
# ####################################################################################################
# --- Object List Window
# ####################################################################################################
# ####################################################################################################
txtbox_object_name = ''
def window___object_list():
window_data = hello_imgui.DockableWindow()
window_data.label = "Object List"
window_data.dock_space_name = "LeftSpaceObj"
window_data.gui_function = widgits___object_list
return window_data
def widgits___object_list():
global txtbox_object_name
global main_dataset
global g_current_object
if main_dataset.category_list:
catobj_list = main_dataset.object_list(g_current_cat[1])
if catobj_list != None:
catobj_list_vis = []
for catobjn in catobj_list:
isobjfound, visual_data = main_dataset.object_visual_get(g_current_cat[1], catobjn)
catobj_list_vis.append(visual_txt(catobjn, visual_data))
obj_id = main_dataset.category_list[g_current_cat[0]]
current_txt(g_current_object[1], 'Object')
imgui.separator()
btn_add, btn_del, txtbox_object_name, g_current_object, ismodded = widgit_txt_but(txtbox_object_name, catobj_list, g_current_object, catobj_list_vis)
if btn_add:
main_dataset.object_add(g_current_cat[1], txtbox_object_name)
if btn_del:
if main_dataset.object_del(g_current_cat[1], txtbox_object_name): g_current_object[0] = 0
# ####################################################################################################
# ####################################################################################################
# --- Param List Window
# ####################################################################################################
# ####################################################################################################
txtbox_param_name = ''
g_current_param_num = 0
def window___param_list():
window_data = hello_imgui.DockableWindow()
window_data.label = "Param List"
window_data.dock_space_name = "ParamListSpace"
window_data.gui_function = widgits___param_list_selector
return window_data
def widgits___param_list_selector():
global g_current_object
global g_current_cat
global g_current_param
global txtbox_param_name
if g_current_cat[1] and g_current_object[1]:
paramlist = main_dataset.params_list(g_current_cat[1], g_current_object[1])
if paramlist == None:
if imgui.button('Create Params'): main_dataset.params_create(g_current_cat[1], g_current_object[1])
else:
btn_add, btn_del, txtbox_param_name, g_current_param, ismodded = widgit_txt_but(txtbox_param_name, paramlist, g_current_param, None)
if btn_add: main_dataset.params_i_add(g_current_cat[1], g_current_object[1], txtbox_param_name)
if btn_del: main_dataset.params_i_del(g_current_cat[1], g_current_object[1], txtbox_param_name)
# ####################################################################################################
# ####################################################################################################
# --- Visual Editor Window
# ####################################################################################################
# ####################################################################################################
visedit_mode = 'object'
def window___visual_editor():
window_data = hello_imgui.DockableWindow()
window_data.label = "Visual Editor"
window_data.dock_space_name = "VisualEditor"
window_data.gui_function = widgits___visual_editor
return window_data
def widgits___visual_editor():
global visedit_mode
global main_dataset
global g_current_cat
global g_current_object
global g_current_group
global g_current_drumset
imgui.text('Mode: '+visedit_mode)
if imgui.button('Object'): visedit_mode = 'object'
imgui.same_line()
if imgui.button('Group'): visedit_mode = 'group'
imgui.same_line()
if imgui.button('Drum'): visedit_mode = 'drum'
imgui.separator()
if visedit_mode == 'object':
visual_isobjfound, visual_data = main_dataset.object_visual_get(g_current_cat[1], g_current_object[1])
if visual_isobjfound:
vismodded, visual_data = widgit_visualmod(visual_data)
if vismodded and visual_data: main_dataset.object_visual_set(g_current_cat[1], g_current_object[1], visual_data)
if visedit_mode == 'group':
grouplist = main_dataset.groups_list(g_current_cat[1])
if g_current_group[1] and grouplist:
isobjfound, visual_data = main_dataset.groups_visual_get(g_current_cat[1], g_current_group[1])
vismodded, visual_data = widgit_visualmod(visual_data)
if vismodded and visual_data: main_dataset.groups_visual_set(g_current_cat[1], g_current_group[1], visual_data)
if visedit_mode == 'drum':
drumsetlist = main_dataset.drumset_list(g_current_cat[1], g_current_object[1])
if g_current_cat[1] and g_current_object[1] and g_current_drumset[1] and drumsetlist:
isobjfound, visual_data = main_dataset.drumset_visual_get(g_current_cat[1], g_current_object[1], g_current_drumset[1])
vismodded, visual_data = widgit_visualmod(visual_data)
if vismodded and visual_data: main_dataset.drumset_visual_set(g_current_cat[1], g_current_object[1], g_current_drumset[1], visual_data)
# ####################################################################################################
# ####################################################################################################
# --- Data Editor Window
# ####################################################################################################
# ####################################################################################################
paramvaltype = ['none', 'int', 'float', 'bool', 'string']
def window___param_editor():
window_data = hello_imgui.DockableWindow()
window_data.label = "Param Editor"
window_data.dock_space_name = "DataEditorSpace"
window_data.gui_function = widgits___param_editor
return window_data
def widgits___param_editor():
global g_current_object
global g_current_cat
global g_current_param
global main_dataset
if main_dataset.params_list(g_current_cat[1], g_current_object[1]) != None and g_current_param[1]:
paramname = g_current_param[1]
paramdata = main_dataset.params_i_get(g_current_cat[1], g_current_object[1], paramname)
if paramdata != None:
if paramname: imgui.text( 'Param: '+ paramname )
imgui.separator()
ismodded = False
c_prd_name, v_prd_name = imgui.input_text('Name', paramdata[5])
for valtypetable in [['Bool','bool'],['Int','int'],['Float','float'],['String','string']]:
if imgui.button(valtypetable[0]):
paramdata[1] = valtypetable[1]
ismodded = True
imgui.same_line()
imgui.text('Type:'+paramdata[1])
c_prd_noauto, v_prd_noauto = imgui.checkbox('Is Data', paramdata[0])
if c_prd_name:
ismodded = True
paramdata[5] = v_prd_name
if c_prd_noauto:
ismodded = True
paramdata[0] = v_prd_noauto
imgui.separator()
if paramdata[1] in ['int', 'float', 'bool']:
if isinstance(paramdata[2], str): paramdata[2] = 0
if isinstance(paramdata[3], str): paramdata[3] = 0
if isinstance(paramdata[4], str): paramdata[4] = 0
if paramdata[1] == 'int':
paramdata[2] = int(paramdata[2])
paramdata[3] = int(paramdata[3]) if paramdata[3] != None else 0
paramdata[4] = int(paramdata[4]) if paramdata[4] != None else 0
c_prd_def, v_prd_def = imgui.input_int('Defualt', paramdata[2])
c_prd_minmax, v_prd_min, v_prd_max = imgui.drag_int_range2('Min-Max', paramdata[3], paramdata[4])
if c_prd_def:
ismodded = True
paramdata[2] = int(v_prd_def)
if c_prd_minmax:
ismodded = True
paramdata[3] = int(v_prd_min)
paramdata[4] = int(v_prd_max)
if paramdata[1] == 'float':
paramdata[2] = float(paramdata[2])
paramdata[3] = float(paramdata[3]) if paramdata[3] != None else 0
paramdata[4] = float(paramdata[4]) if paramdata[4] != None else 0
c_prd_def, v_prd_def = imgui.input_float('Defualt', paramdata[2])
c_prd_minmax, v_prd_min, v_prd_max = imgui.drag_float_range2('Min-Max', paramdata[3], paramdata[4])
if c_prd_def:
ismodded = True
paramdata[2] = v_prd_def
if c_prd_minmax:
ismodded = True
paramdata[3] = v_prd_min
paramdata[4] = v_prd_max
if paramdata[1] == 'string':
paramdata[2] = str(paramdata[2])
paramdata[3] = None
paramdata[4] = None
c_prd_def, v_prd_def = imgui.input_text('Defualt', paramdata[2])
if c_prd_def:
ismodded = True
paramdata[2] = v_prd_def
if paramdata[1] == 'bool':
paramdata[2] = int(paramdata[2])
paramdata[3] = None
paramdata[4] = None
c_prd_def, v_prd_def = imgui.checkbox('Defualt', bool(paramdata[2]))
if c_prd_def:
ismodded = True
paramdata[2] = v_prd_def
if ismodded:
main_dataset.params_i_set(g_current_cat[1], g_current_object[1], paramname, paramdata)
# ####################################################################################################
# ####################################################################################################
# --- Extra Editor
# ####################################################################################################
# ####################################################################################################
txtbox_midito_name = ''
int_midito_bank = 0
int_midito_patch = 0
int_midito_isdrum = False
def window___gm_map():
window_data = hello_imgui.DockableWindow()
window_data.label = "MIDI To"
window_data.dock_space_name = "ExEditorSpace"
window_data.gui_function = widgits___gm_map
return window_data
def widgits___gm_map():
global txtbox_midito_name
global int_midito_bank
global int_midito_patch
global int_midito_isdrum
global g_current_map
if g_current_cat[1]:
maplist = main_dataset.midito_list(g_current_cat[1])
if maplist != None:
btn_add, btn_del, txtbox_midito_name = widgit_txt_manip(txtbox_midito_name)
_, int_midito_bank = imgui.input_int('bank', clamp(int_midito_bank, 0, 127))
_, int_midito_patch = imgui.input_int('patch', clamp(int_midito_patch, 0, 127))
_, int_midito_isdrum = imgui.checkbox('is drum', int_midito_isdrum)
maplist_vis = []
for x in maplist:
value_b,value_p,value_d = main_dataset.midito_get(g_current_cat[1], x)
vispart = ('D' if value_d == True else 'I ')+' '+str(value_b)+' '+str(value_p)+' '+x
visual_isobjfound, visual_data = main_dataset.object_visual_get(g_current_cat[1], x)
maplist_vis.append(visual_txt(vispart, visual_data))
txtbox_midito_name, g_current_map, c_listdata, w_listdata = widgit_list_manip(txtbox_midito_name, maplist, g_current_map, maplist_vis)
if c_listdata and g_current_map[1]:
value_b,value_p,value_d = main_dataset.midito_get(g_current_cat[1], g_current_map[1])
int_midito_bank = value_b
int_midito_patch = value_p
int_midito_isdrum = value_d
if btn_add: main_dataset.midito_add(g_current_cat[1], txtbox_midito_name, int_midito_bank, int_midito_patch, int_midito_isdrum)
if btn_del: main_dataset.midito_del(g_current_cat[1], txtbox_midito_name)
else:
if imgui.button('Create MIDI Map'): main_dataset.midito_create(g_current_cat[1])
# ####################################################################################################
txtbox_group_name = ''
txtbox_group_data = ''
def window___group_list():
window_data = hello_imgui.DockableWindow()
window_data.label = "Groups"
window_data.dock_space_name = "ExEditorSpace"
window_data.gui_function = widgits___group_list
return window_data
def widgits___group_list():
global txtbox_group_name
global txtbox_group_data
global g_current_group
global g_current_cat
if g_current_cat[1]:
grouplist = main_dataset.groups_list(g_current_cat[1])
if grouplist != None:
btn_add, btn_del, txtbox_group_name, g_current_group, ismodded = widgit_txt_but(txtbox_group_name, grouplist, g_current_group, None)
if btn_add: main_dataset.groups_add(g_current_cat[1], txtbox_group_name)
if btn_del: main_dataset.groups_del(g_current_cat[1], txtbox_group_name)
else:
if imgui.button('Create GroupList'): main_dataset.groups_create(g_current_cat[1])
# ####################################################################################################
txtbox_drumset_name = ''
def window___drumset_editor():
window_data = hello_imgui.DockableWindow()
window_data.label = "Drumset"
window_data.dock_space_name = "ExEditorSpace"
window_data.gui_function = widgits___drumset_editor
return window_data
def widgits___drumset_editor():
global g_current_cat
global g_current_object
global g_current_drumset
global txtbox_drumset_name
if g_current_cat[1] and g_current_object[1]:
drumsetlist = main_dataset.drumset_list(g_current_cat[1], g_current_object[1])
if drumsetlist != None:
drumsetlist_vis = []
for drumid in drumsetlist:
visualtxt = None
isfound, visuald = main_dataset.drumset_visual_get(g_current_cat[1], g_current_object[1], drumid)
if isfound and visuald: visualtxt = visuald['name'] if 'name' in visuald else None
drumsetlist_vis.append(visual_txt(drumid, visualtxt))
btn_add, btn_del, txtbox_drumset_name, g_current_drumset, ismodded = widgit_txt_but(txtbox_drumset_name, drumsetlist, g_current_drumset, drumsetlist_vis)
if btn_add: main_dataset.drumset_i_set(g_current_cat[1], g_current_object[1], txtbox_drumset_name)
if btn_del: main_dataset.drumset_i_del(g_current_cat[1], g_current_object[1], txtbox_drumset_name)
else:
if imgui.button('Create Drumset'): main_dataset.drumset_create(g_current_cat[1], g_current_object[1])
# ####################################################################################################
# ####################################################################################################
# --- Param Viewer Window
# ####################################################################################################
# ####################################################################################################
def window___param_viewer():
window_data = hello_imgui.DockableWindow()
window_data.label = "Param Viewer"
window_data.dock_space_name = "ParamViewerSpace"
window_data.gui_function = widgits___param_viewer
return window_data
def widgits___param_viewer():
global g_current_object
global g_current_cat
global g_current_param
global main_dataset
table_flags = (
imgui.TableFlags_.row_bg
| imgui.TableFlags_.borders
| imgui.TableFlags_.sizing_stretch_same
)
imgui.begin_child("TableChild", hello_imgui.em_to_vec2(0, 0))
if imgui.begin_table("Apps", 8, table_flags):
imgui.table_setup_column("ID", 0, 0.4)
imgui.table_setup_column("NoAuto", 0, 0.15)
imgui.table_setup_column("Type", 0, 0.2)
imgui.table_setup_column("Defualt", 0, 0.3)
imgui.table_setup_column("Min", 0, 0.3)
imgui.table_setup_column("Max", 0, 0.3)
imgui.table_setup_column("Name", 0, 0.4)
imgui.table_setup_column("Name", 0, 0.4)
imgui.table_next_column()
for textdata in ['ID','NoAuto','Type','Defualt','Min','Max','Name']:
imgui.text(textdata)
imgui.table_next_column()
# [pv_noauto,pv_type,pv_def,pv_min,pv_max,pv_name]
if g_current_cat[1] and g_current_object[1]:
paramlist = main_dataset.params_list(g_current_cat[1], g_current_object[1])
if paramlist:
for paramname in paramlist:
imgui.table_next_row()
imgui.table_next_column()
imgui.text(paramname)
paramdata = main_dataset.params_i_get(g_current_cat[1], g_current_object[1], paramname)
imgui.table_next_column()
imgui.text(str(paramdata[0]) if paramdata != None else '')
imgui.table_next_column()
imgui.text(str(paramdata[1]) if paramdata != None else '')
imgui.table_next_column()
pi_def = False
pi_min = False
pi_max = False
if paramdata[1] == 'float':
imgui.push_item_width(100)
pi_def, paramdata[2] = imgui.input_float('##def_'+paramname, paramdata[2])
imgui.table_next_column()
imgui.push_item_width(100)
pi_min, paramdata[3] = imgui.input_float('##min_'+paramname, paramdata[3])
imgui.table_next_column()
imgui.push_item_width(100)
pi_max, paramdata[4] = imgui.input_float('##max_'+paramname, paramdata[4])
if paramdata[1] == 'int':
imgui.push_item_width(100)
pi_def, paramdata[2] = imgui.input_int('##def_'+paramname, int(paramdata[2]))
imgui.table_next_column()
imgui.push_item_width(100)
pi_min, paramdata[3] = imgui.input_int('##min_'+paramname, int(paramdata[3]))
imgui.table_next_column()
imgui.push_item_width(100)
pi_max, paramdata[4] = imgui.input_int('##max_'+paramname, int(paramdata[4]))
if paramdata[1] == 'string':
imgui.push_item_width(100)
pi_def, paramdata[2] = imgui.input_text('##def_'+paramname, str(paramdata[2]))
imgui.table_next_column()
imgui.text('')
imgui.table_next_column()
imgui.text('')
if paramdata[1] == 'bool':
imgui.push_item_width(100)
pi_def, paramdata[2] = imgui.checkbox('##def_'+paramname, paramdata[2])
imgui.table_next_column()
imgui.text('')
imgui.table_next_column()
imgui.text('')
imgui.table_next_column()
imgui.push_item_width(200)
pi_name, paramdata[5] = imgui.input_text('##name_'+paramname, paramdata[5])
if paramdata[1] == 'float':
imgui.table_next_column()
imgui.text( str(xtramath.between_to_one(paramdata[3], paramdata[4], paramdata[2])) )
if True in [pi_name, pi_def, pi_min, pi_max]:
main_dataset.params_i_set(g_current_cat[1], g_current_object[1], paramname, paramdata)
imgui.end_table()
imgui.end_child()
# ####################################################################################################
# ####################################################################################################
# --- Docking Data
# ####################################################################################################
# ####################################################################################################
def create_default_docking_splits() -> List[hello_imgui.DockingSplit]:
split_w_cat = hello_imgui.DockingSplit()
split_w_cat.initial_dock = "MainDockSpace"
split_w_cat.new_dock = "LeftSpace"
split_w_cat.direction = imgui.Dir_.left
split_w_cat.ratio = 0.3
split_w_objvis = hello_imgui.DockingSplit()
split_w_objvis.initial_dock = "LeftSpace"
split_w_objvis.new_dock = "objvisSpace"
split_w_objvis.direction = imgui.Dir_.up
split_w_objvis.ratio = 0.2
split_w_objl = hello_imgui.DockingSplit()
split_w_objl.initial_dock = "LeftSpace"
split_w_objl.new_dock = "LeftSpaceObj"
split_w_objl.direction = imgui.Dir_.up
split_w_objl.ratio = 0.65
split_w_param_list = hello_imgui.DockingSplit()
split_w_param_list.initial_dock = "MainDockSpace"
split_w_param_list.new_dock = "ParamListSpace"
split_w_param_list.direction = imgui.Dir_.left
split_w_param_list.ratio = 0.4
split_w_param_editor = hello_imgui.DockingSplit()
split_w_param_editor.initial_dock = "ParamListSpace"
split_w_param_editor.new_dock = "DataEditorSpace"
split_w_param_editor.direction = imgui.Dir_.up
split_w_param_editor.ratio = 0.3
split_w_extra_editor = hello_imgui.DockingSplit()
split_w_extra_editor.initial_dock = "MainDockSpace"
split_w_extra_editor.new_dock = "ExEditorSpace"
split_w_extra_editor.direction = imgui.Dir_.left
split_w_extra_editor.ratio = 0.3
split_w_visual = hello_imgui.DockingSplit()
split_w_visual.initial_dock = "ExEditorSpace"
split_w_visual.new_dock = "VisualEditor"
split_w_visual.direction = imgui.Dir_.up
split_w_visual.ratio = 0.3
split_w_param_viewer = hello_imgui.DockingSplit()
split_w_param_viewer.initial_dock = "MainDockSpace"
split_w_param_viewer.new_dock = "ParamViewerSpace"
split_w_param_viewer.direction = imgui.Dir_.left
split_w_param_viewer.ratio = 1
splits = [
split_w_cat,
split_w_objvis,
split_w_objl,
split_w_extra_editor,
split_w_visual,
split_w_param_list,
split_w_param_editor,
split_w_param_viewer,
]
return splits
def create_dockable_windows() -> List[hello_imgui.DockableWindow]:
return [
window___category_list(),
window___object_list(),
window___object_vis_editor(),
window___param_list(),
window___visual_editor(),
#window___mode(),
window___gm_map(),
window___group_list(),
window___drumset_editor(),
window___param_editor(),
window___param_viewer(),
]
def create_default_layout() -> hello_imgui.DockingParams:
docking_params = hello_imgui.DockingParams()
docking_params.docking_splits = create_default_docking_splits()
docking_params.dockable_windows = create_dockable_windows()
return docking_params
# ####################################################################################################
# ####################################################################################################
# --- Main
# ####################################################################################################
# ####################################################################################################
g_dataset = {}
____debug____ = False
def main():
global main_dataset
aparser = argparse.ArgumentParser()
aparser.add_argument("inp", default=None, nargs='?')
args = aparser.parse_args()
in_file = args.inp
print(in_file)
main_dataset = data_dataset.dataset(in_file)
if ____debug____:
main_dataset.category_add('test1')
main_dataset.object_add('test1', 'insideobj')
main_dataset.params_create('test1', 'insideobj')
main_dataset.params_i_add('test1', 'insideobj', 'yh54vbwh4')
main_dataset.params_i_add('test1', 'insideobj', '3h5qchq64')
main_dataset.params_i_add('test1', 'insideobj', '3qvh53q')
main_dataset.category_add('test2')
main_dataset.category_add('test3')
hello_imgui.set_assets_folder(demo_utils.demos_assets_folder())
runner_params = hello_imgui.RunnerParams()
runner_params.app_window_params.restore_previous_geometry = True
runner_params.app_window_params.window_geometry.size = (1000, 600)
runner_params.app_window_params.window_title = "DawVert DataSet Editor"
runner_params.docking_params = create_default_layout()
runner_params.imgui_window_params.default_imgui_window_type = hello_imgui.DefaultImGuiWindowType.provide_full_screen_dock_space
runner_params.imgui_window_params.enable_viewports = True
runner_params.imgui_window_params.menu_app_title = "DawVert DataSet Editor"
runner_params.imgui_window_params.show_menu_bar = True
runner_params.imgui_window_params.show_status_bar = True
hello_imgui.run(runner_params)
if in_file != None:
with open(in_file, "w") as fileout:
json.dump(main_dataset.dataset, fileout, indent=4, sort_keys=True)
if __name__ == "__main__":
main()

289
functions/data_dataset.py Normal file
View File

@ -0,0 +1,289 @@
import json
from functions import data_values
class dataset:
def __init__(self, in_dataset):
print(in_dataset)
if in_dataset != None:
f = open(in_dataset, "r")
self.dataset = json.load(f)
self.category_list = [x for x in self.dataset]
else:
self.dataset = {}
self.category_list = []
self.midi_dataset = None
def check_exists_one(self, c_name, t_name):
if c_name in self.dataset:
if t_name in self.dataset[c_name]:
return True
def check_exists_two(self, c_name, o_name, p_name, t_name):
if c_name in self.dataset:
if o_name in self.dataset[c_name][p_name]:
if t_name in self.dataset[c_name][p_name][o_name]:
return True
# ####################################################################################################
# ####################################################################################################
# --- Category
# ####################################################################################################
# ####################################################################################################
def category_add(self, c_name):
if c_name not in self.dataset:
self.dataset[c_name] = {'objects': {}}
self.category_list.append(c_name)
def category_del(self, c_name):
if c_name in self.dataset:
del self.dataset[c_name]
self.category_list.remove(c_name)
return True
else:
return False
# ####################################################################################################
# ####################################################################################################
# --- Object
# ####################################################################################################
# ####################################################################################################
def object_list(self, c_name):
data_out = None
if c_name in self.dataset: data_out = [x for x in self.dataset[c_name]['objects']]
return data_out
def object_add(self, c_name, o_name):
if c_name in self.dataset:
if o_name not in self.dataset[c_name]['objects']:
self.dataset[c_name]['objects'][o_name] = {}
def object_del(self, c_name, o_name):
if c_name in self.dataset:
if o_name in self.dataset[c_name]['objects']:
del self.dataset[c_name]['objects'][o_name]
return True
def object_visual_get(self, c_name, o_name):
visual_data = None
isobjfound = False
if c_name in self.dataset:
if o_name in self.dataset[c_name]['objects']:
objdata = self.dataset[c_name]['objects'][o_name]
isobjfound = True
if 'visual' in objdata: visual_data = objdata['visual']
return isobjfound, visual_data
def object_visual_set(self, c_name, o_name, visual_data):
if c_name in self.dataset:
if o_name in self.dataset[c_name]['objects']:
objdata = self.dataset[c_name]['objects'][o_name]
if visual_data != None: objdata['visual'] = visual_data
def object_group_get(self, c_name, o_name):
group_data = None
isobjfound = False
if c_name in self.dataset:
if o_name in self.dataset[c_name]['objects']:
objdata = self.dataset[c_name]['objects'][o_name]
isobjfound = True
if 'group' in objdata: group_data = objdata['group']
return isobjfound, group_data
def object_group_set(self, c_name, o_name, group_data):
if c_name in self.dataset:
if o_name in self.dataset[c_name]['objects']:
objdata = self.dataset[c_name]['objects'][o_name]
if group_data != None: objdata['group'] = group_data
def object_get_name_color(self, c_name, o_name):
visualdata = data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'visual'])
name = None
color = None
if visualdata != None:
if 'name' in visualdata: name = visualdata['name']
if 'color' in visualdata: color = visualdata['color']
return name, color
# ####################################################################################################
# ####################################################################################################
# --- Params
# ####################################################################################################
# ####################################################################################################
def params_list(self, c_name, o_name):
plist = None
if c_name in self.dataset:
if o_name in self.dataset[c_name]['objects']:
if 'params' in self.dataset[c_name]['objects'][o_name]:
plist = [x for x in self.dataset[c_name]['objects'][o_name]['params']]
if all(ele.isdigit() for ele in plist):
plist = [int(x) for x in plist]
plist.sort()
plist = [str(x) for x in plist]
return plist
def params_create(self, c_name, o_name):
if c_name in self.dataset:
if o_name in self.dataset[c_name]['objects']: self.dataset[c_name]['objects'][o_name]['params'] = {}
def params_i_add(self, c_name, o_name, p_name):
if c_name in self.dataset:
if o_name in self.dataset[c_name]['objects']:
paramdata = {}
paramdata['noauto'] = False
paramdata['type'] = 'none'
paramdata['def'] = 0
paramdata['min'] = 0
paramdata['max'] = 0
paramdata['name'] = ''
self.dataset[c_name]['objects'][o_name]['params'][p_name] = paramdata
def params_i_del(self, c_name, o_name, p_name):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'params', p_name]) != None:
del self.dataset[c_name]['objects'][o_name]['params'][p_name]
def params_i_get(self, c_name, o_name, p_name):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'params', p_name]) != None:
paramdata = self.dataset[c_name]['objects'][o_name]['params'][p_name]
pv_noauto = paramdata['noauto'] if 'noauto' in paramdata else False
pv_type = paramdata['type'] if 'type' in paramdata else 'none'
pv_def = paramdata['def'] if 'def' in paramdata else 0
pv_min = paramdata['min'] if 'min' in paramdata else 0
pv_max = paramdata['max'] if 'max' in paramdata else 0
pv_name = paramdata['name'] if 'name' in paramdata else ''
return [pv_noauto,pv_type,pv_def,pv_min,pv_max,pv_name]
def params_i_set(self, c_name, o_name, p_name, value):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'params', p_name]) != None:
self.dataset[c_name]['objects'][o_name]['params'][p_name] = {'noauto': value[0], 'type': value[1], 'def': value[2], 'min': value[3], 'max': value[4], 'name': value[5]}
# ####################################################################################################
# ####################################################################################################
# --- Midi Map
# ####################################################################################################
# ####################################################################################################
def midid_to_num(self, i_bank, i_patch, i_isdrum): return i_bank*256 + i_patch + int(i_isdrum)*128
def midid_from_num(self, value): return (value>>8), (value%128), int(bool(value&0b10000000))
def midito_list(self, c_name):
pmap = None
if data_values.nested_dict_get_value(self.dataset, [c_name, 'midi_to']) != None:
pmap = [x for x in self.dataset[c_name]['midi_to']]
return pmap
def midito_create(self, c_name):
if c_name in self.dataset: self.dataset[c_name]['midi_to'] = {}
def midito_del(self, c_name, i_name):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'midi_to']) != None:
if i_name in self.dataset[c_name]['midi_to']: del self.dataset[c_name]['midi_to'][str(i_name)]
def midito_add(self, c_name, i_name, i_bank, i_patch, i_isdrum):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'midi_to']) != None:
self.dataset[c_name]['midi_to'][str(i_name)] = self.midid_to_num(i_bank, i_patch, i_isdrum)
def midito_get(self, c_name, i_name):
outval = None, None, None
if data_values.nested_dict_get_value(self.dataset, [c_name, 'midi_to']) != None:
if i_name in self.dataset[c_name]['midi_to']:
outval = self.midid_from_num(self.dataset[c_name]['midi_to'][str(i_name)])
return outval
# ####################################################################################################
# ####################################################################################################
# --- Groups
# ####################################################################################################
# ####################################################################################################
def groups_list(self, c_name):
pmap = None
if data_values.nested_dict_get_value(self.dataset, [c_name, 'groups']) != None:
pmap = [x for x in self.dataset[c_name]['groups']]
return pmap
def groups_create(self, c_name):
if c_name in self.dataset: self.dataset[c_name]['groups'] = {}
def groups_add(self, c_name, g_name):
if c_name in self.dataset:
if g_name not in self.dataset[c_name]['groups']:
self.dataset[c_name]['groups'][g_name] = {}
def groups_del(self, c_name, g_name):
if c_name in self.dataset:
if g_name in self.dataset[c_name]['groups']:
del self.dataset[c_name]['groups'][g_name]
return True
def groups_visual_get(self, c_name, g_name):
visual_data = None
isobjfound = False
if c_name in self.dataset:
if 'groups' in self.dataset[c_name]:
if g_name in self.dataset[c_name]['groups']:
objdata = self.dataset[c_name]['groups'][g_name]
isobjfound = True
if 'visual' in objdata: visual_data = objdata['visual']
return isobjfound, visual_data
def groups_visual_set(self, c_name, g_name, visual_data):
if c_name in self.dataset:
if g_name in self.dataset[c_name]['groups']:
objdata = self.dataset[c_name]['groups'][g_name]
if visual_data != None: objdata['visual'] = visual_data
# ####################################################################################################
# ####################################################################################################
# --- Drumset
# ####################################################################################################
# ####################################################################################################
def drumset_list(self, c_name, o_name):
plist = None
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'drumset']) != None:
plist = [x for x in self.dataset[c_name]['objects'][o_name]['drumset']]
return plist
def drumset_create(self, c_name, o_name):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name]) != None:
self.dataset[c_name]['objects'][o_name]['drumset'] = {}
def drumset_i_set(self, c_name, o_name, keynum):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'drumset']) != None:
self.dataset[c_name]['objects'][o_name]['drumset'][keynum] = {}
def drumset_i_del(self, c_name, o_name, keynum):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'drumset', keynum]) != None:
del self.dataset[c_name]['objects'][o_name]['drumset'][keynum]
def drumset_i_get(self, c_name, o_name, keynum):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'drumset', keynum]) != None:
return self.dataset[c_name]['objects'][o_name]['drumset'][keynum]
def drumset_visual_get(self, c_name, o_name, keynum):
visual_data = None
isobjfound = False
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'drumset', keynum]) != None:
drumdata = self.dataset[c_name]['objects'][o_name]['drumset'][keynum]
isobjfound = True
if 'visual' in drumdata: visual_data = drumdata['visual']
return isobjfound, visual_data
def drumset_visual_set(self, c_name, o_name, keynum, visual_data):
if data_values.nested_dict_get_value(self.dataset, [c_name, 'objects', o_name, 'drumset']) != None:
drumdata = self.dataset[c_name]['objects'][o_name]['drumset']
if keynum not in drumdata: drumdata[keynum] = {}
if visual_data != None: drumdata[keynum]['visual'] = visual_data
# ####################################################################################################
# ####################################################################################################
# --- Midi to cvpj
# ####################################################################################################
# ####################################################################################################

View File

@ -0,0 +1,10 @@
# SPDX-FileCopyrightText: 2023 SatyrDiamond
# SPDX-License-Identifier: GPL-3.0-or-later
def fake_tension(cvpj_plugindata):
a_predelay, a_attack, a_hold, a_decay, a_sustain, a_release, a_amount = cvpj_plugindata.asdr_env_get(asdrtype)
t_attack, t_decay, t_release = plugins.asdr_env_tension_get(asdrtype)
a_attack *= pow(2, min(t_attack*3.14, 0))
a_decay *= pow(2, min(t_decay*3.14, 0))
a_release *= pow(2, min(t_release*3.14, 0))
return a_predelay, a_attack, a_hold, a_decay, a_sustain, a_release, a_amount

View File

@ -0,0 +1,68 @@
# SPDX-FileCopyrightText: 2023 SatyrDiamond
# SPDX-License-Identifier: GPL-3.0-or-later
import lxml.etree as ET
from functions import plugin_vst2
from functions_plugparams import data_vc2xml
def addvalue(xmltag, name, value):
temp_xml = ET.SubElement(xmltag, 'VALUE')
temp_xml.set('name', str(name))
temp_xml.set('val', str(value))
class adlplug_data:
def __init__(self, cvpj_plugindata):
self.cvpj_plugindata = cvpj_plugindata
self.adlplug_root = ET.Element("ADLMIDI-state")
self.addbank(self.adlplug_root, 1, 'DawVert')
self.adlplug_params = ET.SubElement(self.adlplug_root, 'instrument')
def addbank(self, xmltag, num, name):
bank_xml = ET.SubElement(xmltag, 'bank')
addvalue(bank_xml, 'bank', num)
addvalue(bank_xml, 'name', name)
def set_param(self, name, value):
addvalue(self.adlplug_params, name, value)
def add_selection(self, part, bank, program):
opnplug_selection = ET.SubElement(self.adlplug_root, 'selection')
addvalue(opnplug_selection, "part" ,part)
addvalue(opnplug_selection, "bank" ,bank)
addvalue(opnplug_selection, "program" ,program)
def add_common(self, bank_title, part, master_volume):
adlplug_common = ET.SubElement(self.adlplug_root, 'common')
addvalue(adlplug_common, "bank_title" ,bank_title)
addvalue(adlplug_common, "part" ,part)
addvalue(adlplug_common, "master_volume" ,master_volume)
def opnplug_chip(self, emulator, chip_count, chip_type):
adlplug_common = ET.SubElement(self.adlplug_root, 'common')
addvalue(adlplug_common, "emulator" ,emulator)
addvalue(adlplug_common, "chip_count" ,chip_count)
addvalue(adlplug_common, "chip_type" ,chip_type)
def adlplug_chip(self, emulator, chip_count, fop_count):
adlplug_common = ET.SubElement(self.adlplug_root, 'common')
addvalue(adlplug_common, "emulator" ,emulator)
addvalue(adlplug_common, "chip_count" ,chip_count)
addvalue(adlplug_common, "4op_count" ,fop_count)
def opnplug_global(self, volume_model, lfo_enable, lfo_frequency):
adlplug_global = ET.SubElement(self.adlplug_root, 'global')
addvalue(adlplug_global, "volume_model" ,volume_model)
addvalue(adlplug_global, "lfo_enable" ,lfo_enable)
addvalue(adlplug_global, "lfo_frequency" ,lfo_frequency)
def adlplug_global(self, volume_model, deep_tremolo, deep_vibrato):
adlplug_global = ET.SubElement(self.adlplug_root, 'global')
addvalue(adlplug_global, "volume_model" ,volume_model)
addvalue(adlplug_global, "deep_tremolo" ,deep_tremolo)
addvalue(adlplug_global, "deep_vibrato" ,deep_vibrato)
def adlplug_to_cvpj_vst2(self):
plugin_vst2.replace_data(self.cvpj_plugindata, 'name', 'any', 'ADLplug', 'chunk', data_vc2xml.make(self.adlplug_root), None)
def opnplug_to_cvpj_vst2(self):
plugin_vst2.replace_data(self.cvpj_plugindata, 'name', 'any', 'OPNplug', 'chunk', data_vc2xml.make(self.adlplug_root), None)

View File

@ -0,0 +1,101 @@
# SPDX-FileCopyrightText: 2023 SatyrDiamond
# SPDX-License-Identifier: GPL-3.0-or-later
from functions import plugins
from functions import data_bytes
g_paramnames = {}
g_paramnames['opl2'] = [
['perctype','tremolo_depth','vibrato_depth','fm','feedback'],
2,
['env_attack','env_decay','env_release','env_sustain','freqmul','ksr','level','ksl','tremolo','vibrato','waveform','sustained', 'perc_env'] ]
g_paramnames['opl3'] = [
['perctype','tremolo_depth','vibrato_depth','con_12','con_34','feedback_12','feedback_34'],
4,
['env_attack','env_decay','env_release','env_sustain','freqmul','ksr','level','ksl','tremolo','vibrato','waveform','sustained', 'perc_env'] ]
g_paramnames['opn2'] = [
['algorithm','feedback','fms','ams','lfo_enable','lfo_frequency'],
4,
['am','env_attack','env_decay','freqmul','env_release','env_sustain','level','detune2','ratescale','detune','env_decay2','ssg_enable','ssg_mode'] ]
class fm_data:
def __init__(self, fmtype):
self.inst_plugindata = plugins.cvpj_plugin('deftype', 'fm', fmtype)
self.params = {}
self.operator = []
self.fmtype = fmtype
self.fm_paramnames = g_paramnames[fmtype]
for paramname in self.fm_paramnames[0]: self.params[paramname] = 0
for opnum in range(self.fm_paramnames[1]):
op_data = {}
for opparamname in self.fm_paramnames[2]: op_data[opparamname] = 0
self.operator.append(op_data)
def set_param(self, name, value):
self.params[name] = value
def set_op_param(self, opnum, name, value):
self.operator[opnum][name] = value
def to_cvpj(self, cvpj_l, pluginid):
for paramname in self.fm_paramnames[0]:
self.inst_plugindata.param_add(paramname, self.params[paramname], 'int', paramname)
for opnum in range(self.fm_paramnames[1]):
for opparamname in self.fm_paramnames[2]:
cvpj_opparamname = 'op'+str(opnum+1)+'_'+opparamname
self.inst_plugindata.param_add(cvpj_opparamname, self.operator[opnum][opparamname], 'int', 'OP '+str(opnum+1)+': '+opparamname)
self.inst_plugindata.to_cvpj(cvpj_l, pluginid)
def opl_sbi_part_op(self, opnum, i_input, isreversed):
ixChar, ixScale, ixAttack, ixSustain, ixWaveSel = i_input
opl_out_flags, opl_out_mul = data_bytes.splitbyte(ixChar)
opl_out_trem, opl_out_vib, opl_out_sust, opl_out_krs = data_bytes.to_bin(opl_out_flags, 4)
opl_out_kls = ixScale >> 6
opl_out_out = ixScale & 0x3F
opl_out_wave = ixWaveSel
opl_out_att, opl_out_dec = data_bytes.splitbyte(ixAttack)
opl_out_sus, opl_out_rel = data_bytes.splitbyte(ixSustain)
if isreversed == False:
self.set_op_param(opnum, 'env_attack', opl_out_att)
self.set_op_param(opnum, 'env_decay', opl_out_dec)
self.set_op_param(opnum, 'env_release', opl_out_rel)
else:
self.set_op_param(opnum, 'env_attack', (opl_out_att*-1)+15)
self.set_op_param(opnum, 'env_decay', (opl_out_dec*-1)+15)
self.set_op_param(opnum, 'env_release', (opl_out_rel*-1)+15)
self.set_op_param(opnum, 'ksl', opl_out_kls)
self.set_op_param(opnum, 'freqmul', opl_out_mul)
self.set_op_param(opnum, 'env_sustain', opl_out_sus)
self.set_op_param(opnum, 'sustained', opl_out_sust)
self.set_op_param(opnum, 'level', opl_out_out)
self.set_op_param(opnum, 'tremolo', opl_out_trem)
self.set_op_param(opnum, 'vibrato', opl_out_vib)
self.set_op_param(opnum, 'ksr', opl_out_krs)
self.set_op_param(opnum, 'waveform', opl_out_wave)
def opl_sbi_part_fbcon(self, iFeedback, txt_feedback, txt_fm):
opl_fb = (iFeedback) >> 1
opl_con = iFeedback & 0x01
self.set_param(txt_feedback, opl_fb)
self.set_param(txt_fm, opl_con)

View File

@ -0,0 +1,39 @@
# SPDX-FileCopyrightText: 2023 SatyrDiamond
# SPDX-License-Identifier: GPL-3.0-or-later
import lxml.etree as ET
from functions import plugin_vst2
from functions_plugparams import data_vc2xml
class juicysfplugin_data:
def __init__(self, cvpj_plugindata):
self.cvpj_plugindata = cvpj_plugindata
self.jsfp_xml = ET.Element("MYPLUGINSETTINGS")
self.jsfp_params = ET.SubElement(self.jsfp_xml, "params")
self.jsfp_uiState = ET.SubElement(self.jsfp_xml, "uiState")
self.jsfp_soundFont = ET.SubElement(self.jsfp_xml, "soundFont")
self.jsfp_params.set('bank', "0")
self.jsfp_params.set('preset', "0")
self.jsfp_params.set('attack', "0.0")
self.jsfp_params.set('decay', "0.0")
self.jsfp_params.set('sustain', "0.0")
self.jsfp_params.set('release', "0.0")
self.jsfp_params.set('filterCutOff', "0.0")
self.jsfp_params.set('filterResonance', "0.0")
self.jsfp_uiState.set('width', "500.0")
self.jsfp_uiState.set('height', "300.0")
self.jsfp_soundFont.set('path', '')
def set_bankpatch(self, bank, patch, filename):
self.jsfp_params.set('bank', str(bank/128))
self.jsfp_params.set('preset', str(patch/128))
self.jsfp_soundFont.set('path', filename)
def set_param(self, name, value):
self.jsfp_params.set(name, str(value))
def set_sffile(self, value):
self.jsfp_soundFont.set('path', value)
def to_cvpj_vst2(self, cvpj_plugindata):
plugin_vst2.replace_data(self.cvpj_plugindata, 'name','any', 'juicysfplugin', 'chunk', data_vc2xml.make(self.jsfp_xml), None)

View File

@ -0,0 +1,60 @@
# SPDX-FileCopyrightText: 2023 SatyrDiamond
# SPDX-License-Identifier: GPL-3.0-or-later
from functions import plugin_vst2
import io
import math
class kickmess_data:
def __init__(self):
self.params = {}
self.params['pub'] = {}
self.params['pub']['freq_start'] = 440
self.params['pub']['freq_end'] = 440
self.params['pub']['f_env_release'] = 1000
self.params['pub']['dist_start'] = 0
self.params['pub']['dist_end'] = 0
self.params['pub']['gain'] = 0.5
self.params['pub']['env_slope'] = 0.5
self.params['pub']['freq_slope'] = 0.5
self.params['pub']['noise'] = 0
self.params['pub']['freq_note_start'] = 0.25
self.params['pub']['freq_note_end'] = 0.25
self.params['pub']['env_release'] = 0
self.params['pub']['phase_offs'] = 0
self.params['pub']['dist_on'] = 0
self.params['pub']['f1_cutoff'] = 1
self.params['pub']['f1_res'] = 0
self.params['pub']['f1_drive'] = 0.2
self.params['pub']['main_gain'] = 0.70710677
self.params['pub']['e1_attack'] = 0.1
self.params['pub']['e1_decay'] = 0.14142135
self.params['pub']['e1_sustain'] = 0.75
self.params['pub']['e1_release'] = 0.1
self.params['priv'] = {}
self.params['priv']['f1_type'] = 0.5
self.params['priv']['f1_on'] = 0.25
self.params['priv']['midi_chan'] = 0
def set_param(self, i_cat, i_name, i_value):
self.params[i_cat][i_name] = i_value
def data_out(self):
out = io.BytesIO()
out.write(b'!PARAMS;\n')
for paramcat in self.params:
for paramval in self.params[paramcat]:
o_value = self.params[paramcat][paramval]
if paramval == 'freq_start': o_value = math.sqrt((o_value-2.51)/3000)
if paramval == 'freq_end': o_value = math.sqrt((o_value-2.51)/2000)
if paramval == 'f_env_release':
if o_value > 2.4: o_value = math.sqrt((o_value-2.51)/5000)
out.write(str.encode(paramcat+' : '+paramval+'='+str(o_value)+';\n'))
out.seek(0)
return out.read()
def to_cvpj_vst2(self, cvpj_plugindata):
plugin_vst2.replace_data(cvpj_plugindata, 'name', 'any', 'Kickmess (VST)', 'chunk', self.data_out(), None)

View File

@ -0,0 +1,75 @@
# SPDX-FileCopyrightText: 2023 SatyrDiamond
# SPDX-License-Identifier: GPL-3.0-or-later
import lxml.etree as ET
from functions import plugin_vst2
from functions_plugparams import data_vc2xml
class m8bp_data:
def __init__(self, cvpj_plugindata):
self.cvpj_plugindata = cvpj_plugindata
self.m8bp_params_env = {}
self.m8bp_params_env["duty"] = None
self.m8bp_params_env["pitch"] = None
self.m8bp_params_env["volume"] = None
self.m8bp_params = {}
self.m8bp_params["arpeggioDirection"] = 0.0
self.m8bp_params["arpeggioTime"] = 0.02999999932944775
self.m8bp_params["attack"] = 0.0
self.m8bp_params["bendRange"] = 12.0
self.m8bp_params["colorScheme"] = 1.0
self.m8bp_params["decay"] = 0.0
self.m8bp_params["duty"] = 0.0
self.m8bp_params["gain"] = 0.5
self.m8bp_params["isAdvancedPanelOpen_raw"] = 1.0
self.m8bp_params["isArpeggioEnabled_raw"] = 0.0
self.m8bp_params["isPitchSequenceEnabled_raw"] = 0.0
self.m8bp_params["isDutySequenceEnabled_raw"] = 0.0
self.m8bp_params["isVolumeSequenceEnabled_raw"] = 0.0
self.m8bp_params["maxPoly"] = 8.0
self.m8bp_params["noiseAlgorithm_raw"] = 0.0
self.m8bp_params["osc"] = 0.0
self.m8bp_params["duty"] = 2.0
self.m8bp_params["pitchSequenceMode_raw"] = 0.0
self.m8bp_params["release"] = 0.0
self.m8bp_params["restrictsToNESFrequency_raw"] = 0.0
self.m8bp_params["suslevel"] = 1.0
self.m8bp_params["sweepInitialPitch"] = 0.0
self.m8bp_params["sweepTime"] = 0.1000000014901161
self.m8bp_params["vibratoDelay"] = 0.2999999821186066
self.m8bp_params["vibratoDepth"] = 0.0
self.m8bp_params["vibratoIgnoresWheel_raw"] = 1.0
self.m8bp_params["vibratoRate"] = 0.1500000059604645
def set_param(self, name, value):
self.m8bp_params[name] = value
def set_env(self, name, value):
self.m8bp_params_env[name] = value
def out_xml(self):
xml_m8p_root = ET.Element("root")
xml_m8p_params = ET.SubElement(xml_m8p_root, "Params")
for m8bp_param in self.m8bp_params:
temp_xml = ET.SubElement(xml_m8p_params, 'PARAM')
temp_xml.set('id', str(m8bp_param))
temp_xml.set('value', str(self.m8bp_params[m8bp_param]))
xml_m8p_dutyEnv = ET.SubElement(xml_m8p_root, "dutyEnv")
xml_m8p_pitchEnv = ET.SubElement(xml_m8p_root, "pitchEnv")
xml_m8p_volumeEnv = ET.SubElement(xml_m8p_root, "volumeEnv")
if self.m8bp_params_env["duty"] != None:
xml_m8p_dutyEnv.text = ','.join(str(item) for item in self.m8bp_params_env["duty"])
if self.m8bp_params_env["pitch"] != None:
xml_m8p_pitchEnv.text = ','.join(str(item) for item in self.m8bp_params_env["pitch"])
if self.m8bp_params_env["volume"] != None:
xml_m8p_volumeEnv.text = ','.join(str(item) for item in self.m8bp_params_env["volume"])
return xml_m8p_root
def to_cvpj_vst2(self):
plugin_vst2.replace_data(self.cvpj_plugindata, 'name','any', 'Magical 8bit Plug 2', 'chunk', data_vc2xml.make(self.out_xml()), None)

View File

@ -0,0 +1,20 @@
# SPDX-FileCopyrightText: 2023 SatyrDiamond
# SPDX-License-Identifier: GPL-3.0-or-later
import lxml.etree as ET
from functions import plugin_vst2
from functions_plugparams import data_vc2xml
class socalabs_data:
def __init__(self, cvpj_plugindata):
self.x_sl_data = ET.Element("state")
self.x_sl_data.set('valueTree', '<?xml version="1.0" encoding="UTF-8"?>\n<state width="400" height="328"/>')
self.x_sl_data.set('program', '0')
def set_param(self, name, value):
x_temp = ET.SubElement(self.x_sl_data, 'param')
x_temp.set('uid', name)
x_temp.set('val', str(value))
def to_cvpj_vst2(self, cvpj_plugindata, fourid):
plugin_vst2.replace_data(cvpj_plugindata, 'id','any', fourid, 'chunk', ET.tostring(self.x_sl_data, encoding='utf-8'), None)

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,46 @@
# SPDX-FileCopyrightText: 2023 SatyrDiamond
# SPDX-License-Identifier: GPL-3.0-or-later
from functions import plugin_vst2
from functions_plugparams import data_nullbytegroup
class wolfshaper_data:
def __init__(self):
self.graph = ''
self.params = {}
self.params['pregain'] = 2.000000
self.params['wet'] = 1.000000
self.params['postgain'] = 1.000000
self.params['removedc'] = 1.000000
self.params['oversample'] = 0.000000
self.params['bipolarmode'] = 0.000000
self.params['warptype'] = 0.000000
self.params['warpamount'] = 0.000000
self.params['vwarptype'] = 0.000000
self.params['vwarpamount'] = 0.000000
def set_param(self, name, value):
self.params[name] = value
def add_point(self,posX,posY,tension,pointtype):
if pointtype == 'normal': pointtype = 0
elif pointtype in ['doublecurve', 'doublecurve2', 'doublecurve3']: pointtype = 1
elif pointtype == 'stairs':
pointtype = 2
tension *= -1
elif pointtype == 'wave':
pointtype = 3
tension = ((abs(tension)*-1)+100)*0.2
else:
pointtype = 1
self.graph += float.hex(posX)+','+float.hex(posY)+','+float.hex(tension*-100)+','+str(int(pointtype))+';'
def add_env(self, cvpj_auto):
for cvpj_point in cvpj_auto['points']:
tension = cvpj_point['tension'] if 'tension' in cvpj_point else 0
pointtype = cvpj_point['type'] if 'type' in cvpj_point else 'normal'
add_point(cvpj_point['position'],cvpj_point['value'],tension,pointtype)
def to_cvpj_vst2(self, cvpj_plugindata):
plugin_vst2.replace_data(cvpj_plugindata, 'name', 'any', 'Wolf Shaper', 'chunk', data_nullbytegroup.make([{'graph': self.graph}, self.params]), None)