christofmuc / KnobKraft-orm

The KnobKraft Orm - The free modern cross-platform MIDI Sysex Librarian
GNU Affero General Public License v3.0
202 stars 26 forks source link

Better identifiers for bulk imports? #4

Closed ghost closed 4 years ago

ghost commented 4 years ago

Hi! Great software you've made :smile:

Looking at youtube video when one imports a library of patches stored in a single syx file, it then simple to identify that import by looking at title "Imported from file Rev2_Programs_v1.0.syx (512)".

In my case I've downloaded a lot of syx from this project http://refacedx.martintarenskeen.nl/ They are presented like this

$ ls Reface-PSS480/
00_synth_brass.syx       12_jazz_guitar.syx    24_music_box.syx           36_acoustic_guitar.syx  48_ice_block.syx         60_steel_drum_2.syx        72_12string_guitar.syx   84_tuba.syx               96_human_chorus.syx
01_jazz_organ.syx        13_rock_guitar_1.syx  25_honky-tonk_piano.syx    37_harp.syx             49_reed_organ.syx        61_chimes.syx              73_classic_guitar.syx    85_alto_sax.syx           97_kazoo.syx
02_pipe_organ_1.syx      14_wood_bass_1.syx    26_toy_piano.syx           38_picked_bass.syx      50_electronic_organ.syx  62_tubular_bells.syx       74_mandolin.syx          86_bass_clarinet.syx      98_musical_saw.syx
03_piano_1.syx           15_trumpet.syx        27_transistor_organ.syx    39_slap_bass.syx        51_pipe_organ_2.syx      63_hand_bell.syx           75_sitar.syx             87_bassoon.syx            99_sine_wave.syx
04_harpsichord_1.syx     16_trombone.syx       28_tremolo_organ.syx       40_ukulele.syx          52_piano_2.syx           64_carillon.syx            76_koto.syx              88_recorder.syx
05_electric_piano_1.syx  17_horn.syx           29_small_church_organ.syx  41_strings.syx          53_harpsichord_2.syx     65_synth_tom.syx           77_shamisen.syx          89_ocarina.syx
06_celesta.syx           18_soprano_sax.syx    30_funky_clavi.syx         42_alpenhorn.syx        54_electric_piano_2.syx  66_timpani.syx             78_jamisen.syx           90_piccolo.syx
07_vibraphone.syx        19_clarinet.syx       31_accordion.syx           43_bagpipe.syx          55_glass_celesta.syx     67_violin_2.syx            79_mute_bass.syx         91_samba_whistle.syx
08_marimba_1.syx         20_flute.syx          32_glockenspiel.syx        44_mute_trumpet.syx     56_bandoneon.syx         68_rock_guitar_2.syx       80_electric_bass.syx     92_brass_ensemble.syx
09_steel_drum_1.syx      21_oboe.syx           33_hawaiian_guitar.syx     45_tenor_sax.syx        57_street_organ.syx      69_tremolo_guitar.syx      81_wood_bass_2.syx       93_woodwind_ensemble.syx
10_violin_1.syx          22_harmonica.syx      34_banjo.syx               46_jug.syx              58_synth_bass.syx        70_rock_guitar_3.syx       82_electric_trumpet.syx  94_human_voice_1.syx
11_cello.syx             23_whistle.syx        35_bowed_bass.syx          47_panflute.syx         59_marimba_2.syx         71_pedal_steel_guitar.syx  83_wow_trumpet.syx       95_human_voice_2.syx

As you see here each instrument is stored in an individual syx file. So I'm forced to use bulk import to import all PSS480 patches. And here is the trouble. If I'll do imports per each device from that site, they all will be unnamed like "Bulk import 05/18/20 at 19:17:06 (182)" and it will be hard to get what that import was about.

Is it possible to add ability to rename imports or maybe just put folder name in the naming?

Thanks!

christofmuc commented 4 years ago

Wow, happy you like it, and thank you for your pull request as well! And that's a great example for the UX problem, especially when you import Martin's soundmondo ZIP file with 4000+ RefaceDX patches :-)

Actually, it is readily possible as the database already contains the following information stored in JSON, here is an example:

{"bulksource":true,"timestamp":"2020-05-15T17:47:12.300+02:00","fileInBulk":"{\"filesource\":true,   \"filename\":\"01_Bladerunner_GEO.syx\",\"fullpath\":\"D:\\\\Christof\\\\Music\\\\ProphetRev2\\\\Prophet REV2 - Revolution_GEOSynths\\\\Programs\\\\01_Bladerunner_GEO.syx\",\"program\":0}"}

So it would only be a matter of formatting the BulkSourceInfo better within the given space of the UI to list more usable information (File "PatchHolder.cpp line 403)

It seems however that the ZIP file import currently does not produce a better list, it only retains the name of the ZIP file. That should probably be extended to do the same thing as the Bulk import, just for the file names inside the ZIP.

ghost commented 4 years ago

@christofmuc Thanks for the answer! I've totally missed that zip import is possible! It makes things much nicer then :smiley:

ghost commented 4 years ago

Could we close this? I've lost a bit in what we want here. I didn't know that I can import zip files without extracting, and that solved my problem with collection organization. Perhaps you could create a new issue if you have some idea and vision for enhancement?

christofmuc commented 4 years ago

Sure, thank you!