esaruoho / paketti

Quality-of-Life (QoL) Workflow suite of tools for Renoise written with LUA - Continually ingesting and porting features from other tracker software (Impulse Tracker, Scream Tracker, ModPlugTracker, PlayerPro etc)
Other
21 stars 0 forks source link

[Groovebox] Save settings as text and samples as file paths 8120 #633

Open tkna91 opened 3 weeks ago

tkna91 commented 3 weeks ago

Current behavior

Expected behavior

I think these can be solved by the following methods. I imagine that the loading process for Renoise samples is fast, so it would not cost you anything in that area.

esaruoho commented 2 weeks ago
  • Even though each of the 8 rows can select up to 120 target samples, users who have a much larger collection of kicks, snares, etc. should ideally be able to select all of them

@tkna91 problem: while it is possible to load hundreds of samples into an instrument, .. it eventually becomes unresponsive. for instance, i just added sample slots 9EB and now that i'm trying to add more, Renoise becomes unresponsive on every add. so if it's that laggy when having this many sample slots, what's gonna happen when i try to set all others to 00....00 velocity and one to 00...7F ? and the slider is currently designed to be used as a 0...127 midiknob, so how would this be feasible to accomplish with a midicontroller knob, if there's D37 samples there?

Storing unused samples in instruments is a waste of storage space

another problem here is, if you happen to select 120, hand-selected samples that you're really happy with, then save the project and load it and it only has 8 samples (one per part) retained - you've now lost content- and are no longer happy.

but i do like the other ideas. and it would be neat to be able to provide a "Paketti Groovebox" preset that can just be loaded in, blam, and there it is. to any song.

esaruoho commented 2 weeks ago

here's my situation now.. i got up to around E37 samples and tried to duplicate more, and Renoise became fully unresponsive and does not seem to be waking up anymore. image

tkna91 commented 1 week ago

problem: while it is possible to load hundreds of samples into an instrument, .. it eventually becomes unresponsive.

The idea is to load only one sample for an instrument from the list of texts in the configuration file created from the selected file. Of course, in a typical drum set instrument, it would be natural to have something like 120 samples per instrument, but in this Groovebox use case, I think it is better to load one sample per instrument. By doing so, we anticipate that a large number of samples can be handled in a lightweight manner and can be easily saved/imported/exported as configuration files for use in various projects.

and the slider is currently designed to be used as a 0...127 midiknob, so how would this be feasible to accomplish with a midicontroller knob, if there's D37 samples there?

Instead of a slider, how about a text box with a spin button? That way it can be operated by mouse click, mouse drag, or wheel scroll. It will certainly not be possible to fit the value of 127, but I would expect it to be possible with the MIDI knob on the rotary encoder. This is just an example, but if you add a process such as loading a file only after 0.1 second of waiting after selecting a list, it is unlikely that the loading process will overflow.

https://github.com/user-attachments/assets/3353afd4-d8d7-405e-81e5-59392de35741

I think it would be good to have a separate area on the UI to display the file name, with the ability to define the index number of the sample file in the configuration file. This would be useful, for example, to allow users to set their favorite samples to 0000-0100. However, if indexes can be allowed to be non-numbered, that would be better. This is because the index namespace is at the disposal of the user.

For example, a configuration file design might look something like this In this case, it is modeled after an INI file. It would be nice to be able to use #, etc. in line comments.

[slot1]
slot-name = KICKS
0         = ~/mkmusic/instruments/samples/drum-sample/00_kicks/Acetone Rhythm Ace KICK1.flac
1         = ~/mkmusic/instruments/samples/drum-sample/00_kicks/Roland System-100 Roland long 04.flac
1928384   = ~/mkmusic/instruments/samples/drum-sample/00_kicks/Sequential Tom 09.flac
sfx0001   = ~/ext/mkmusic/instruments/samples/sound-effect/FM Drones - Density_FMDrone01.wav

[slot2]
slot-name    = SNARES
0            = ~/mkmusic/instruments/samples/drum-sample/01_snares/Alesis D4fx Snare 16.flac
1            = ~/mkmusic/instruments/samples/drum-sample/01_snares/Boss DR-220e Slap.flac
3838419      = ~/mkmusic/instruments/samples/drum-sample/01_snares/Cheetah MD-16 011.flac
explotion003 = ~/ext/mkmusic/instruments/samples/40_sound-effect/bbc_heavy-expl_07037319.mp3

Sorting should preferably be done in numerical order without consideration of zero-fill. The latter is better than the former below.

$ echo -e "1\n02\n003" | sort
003
02
1
$ echo -e "1\n02\n003" | sort --general-numeric-sort
1
02
003
$