Save and load a single kit

104 views
Skip to first unread message

Gnuv

unread,
Sep 25, 2022, 4:41:00 AM9/25/22
to WVR Audio
Hello,
I wonder if there is a way to easily save and load a single kit?
I know that you can make a full backup of all 16 kits (eMMC save).
But this is not very practical if you need to rearrange the kits between different backups to prepare a live performance. Or when we want to make a variation of one kit without starting from scratch. Especially in my case when we have more than one WVR and several musicians using them with different interfaces.
Is there an easy way to handle that ?
Thanks

WVR Audio

unread,
Sep 25, 2022, 9:49:10 PM9/25/22
to WVR Audio
hi Gnuv.
Have you looked at the bulk upload features? You can set up directories of files to upload as a voice, but you wouldn't get settings, break-points, names, etc using that technique.
Setting up save/load for a voice would be quite complex, but not impossible.
A much more manageable task would be saving/loading the configuration for a voice (settings, break-points, names, etc) which in combination with a folder of well named audio files, could give the results you need.
Would that be sufficient?

Gnuv

unread,
Sep 27, 2022, 5:53:05 AM9/27/22
to WVR Audio
Hello,
Thank you for your response.
Yes, I think that your solution could do the job :

- I prepare my voice in a folder with subfolders from 0 to 127 that represent all the available racks. The samples are inside sort by velocity layers.
- There’s a config file in this folder with all the settings for all the racks of the voice. This config file could be downloaded from the WVR for updating if I change something. If it’s also possible to be in a text format that could be easily edit, that could be a + for preparing a voice without a connected WVR.
- Then, the procedure will be :
# Select all
# Clear voice
# Bulk load folder
If it’s possible to have a button that could do all these task on one click, it could also be great.

Do you think this could be possible ?

WVR Audio

unread,
Sep 27, 2022, 11:55:46 AM9/27/22
to WVR Audio
Awesome! That's something I could add pretty quickly. The config files will be text files, and I'll see what I can do in terms of making them layout visually in a friendly way. They will be JSON data, which is pretty good for human readability.
The best method in my mind, both in terms of overall flexibility and in terms of making your particular flow less cumbersome would be :

shift-click on a voice button to upload a config file for that voice, which is always config for the whole voice, all 128 notes.
shift-alt-click on a voice to download the config file for the voice based on its current config, and choose a filename and directory to save.
command-A to select all notes in a voice.

So you flow would be:
follow the existing protocol to upload your rack, but use command-A to select all notes first.
shift-click the voice button and choose your file, to upload the config.

I don't love the idea of placing the config file inside the rack folder, because it would require naming it a certain way, it would always need to be config.txt. I prefer the idea of having a separate folder, or however the user wants to organize things, and keep it a separate step to upload the config, and let it be any filename. This way the config process can be useful in other ways as well, not just part of a bulk rack upload.

open to more feedback on all these points, let me know what you think!

WVR Audio

unread,
Sep 27, 2022, 12:13:40 PM9/27/22
to WVR Audio
heres a sample of what one note would look like in the config.txt

{
  "name": "beep.wav",
  "isRack": 0,
  "empty": 0,
  "size": 79652,
  "mode": 0,
  "retrigger": 0,
  "noteOff": 1,
  "responseCurve": 1,
  "priority": 0,
  "muteGroup": 0,
  "loopStart": 0,
  "loopEnd": 19913,
  "rack": {
    "name": "andy's rack",
    "free": 0,
    "num_layers": 2,
    "layers": [
      {
        "name": "beep.wav",
        "empty": 0,
        "size": 79652
      },
      {
        "name": "sample_loop.wav",
        "empty": 0,
        "size": 79656
      }
    ],
    "break_points": [
      0,
      50,
      127
    ]
  }
}

Gnuv

unread,
Sep 27, 2022, 2:20:43 PM9/27/22
to WVR Audio
That sounds great, thanks !

No problem to have another folder with the config file and the voice folder.

Now, the only tricky thing is probably going to be the limitation of 128 racks if I want to use it with keyboards. But for percussions it should be ok.

WVR Audio

unread,
Sep 29, 2022, 3:20:46 PM9/29/22
to WVR Audio
Im working on this now, it's going well.
Just wondering what you mean by "limitation of 128 racks" ... a piano only has 88 keys, so, there are enough rack slots for a full piano and 40 left over.
Are you in need of more rack slots? I can raise that number if its desired.

gael navard

unread,
Sep 29, 2022, 3:31:53 PM9/29/22
to WVR Audio
Great ! that’s wonderful, thanks ;)

Maybe I dont understand well this rack limitation.
If I use 88 racks for a full piano on a voice, is that means that there’s just 40 racks available for the 15 other voices ?

--
You received this message because you are subscribed to a topic in the Google Groups "WVR Audio" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/wvr-audio/tJIw48KiF7o/unsubscribe.
To unsubscribe from this group and all its topics, send an email to wvr-audio+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/wvr-audio/249e9074-4b10-4675-8862-8a19c3ac793bn%40googlegroups.com.

gael navard

unread,
Sep 29, 2022, 4:04:46 PM9/29/22
to WVR Audio
Perhaps my wish is a little bit uncommon, because we have a digital orchestra that uses a lot of interfaces at the same time like on this concert : https://www.youtube.com/watch?v=mmr_r094rCw, with different compositions and composers depending of the perfomance. It’s why I try to find a way to have a low latency sampler that could be setup easily. I now have 3 WVR, and I’ll probably get more if it’s works great for this kind of situation.

WVR Audio

unread,
Sep 29, 2022, 4:11:07 PM9/29/22
to WVR Audio
I see!
Well, the issue is that changing the number of rack slots changes the file system, so it requires a full eMMC reset. I can publish a firmware with it increased, but anyone who loads up that firmware will lose all their sounds and settings ... full WVR reset. I try to avoid these kinds of changes obviously, although this wouldnt be the first.
If you like, I could make up a special one just for you (would only take me a minute), and you can use it for your WVRs. If you are willing to endure the full reset.
Let me know!
Also just going through the release process, 3.5.0 will be out soon with your features! (no reset required :) )

WVR Audio

unread,
Sep 29, 2022, 4:11:54 PM9/29/22
to WVR Audio
If youd like a special firmware made up, let me know how many rack slots you would like

WVR Audio

unread,
Sep 29, 2022, 4:25:01 PM9/29/22
to WVR Audio
Also, THAT IS AN AMAZING USE FOR WVR, so so happy to hear that WVR can help you with a project like this :))))))))) I would be overjoyed if you shared a video, down the line, with your work!

Gnuv

unread,
Oct 11, 2022, 9:12:55 AM10/11/22
to WVR Audio
Hello. Sorry for my late response, I was out the past week.
Yes, I’ll send you a video when all the things will be setup with the WVR. We are still organizing the digital orchestra new rehearsal room.
For the special firmware with more racks, it will be perfect if you can do it. The ideal is of course to have one rack per note, so 128 notes x 16 voices = 2048 racks. I don’t know of it’s possible.
All the best

WVR Audio

unread,
Oct 11, 2022, 4:24:33 PM10/11/22
to WVR Audio
Hi Gnuv, that would be amazing!
I did some testing today and I was wrong. The limit of 128 Racks is not set arbitrarily.
The firmware must allocate ram for all the file handles for all the racks, and ram is tight.
There is probably a way I can get deeper into the code and make this possible, but for now you will have to work within the current limits.
Im sorry about that. I will run some tests for 256, 512, 1028 racks, but it's a slow testing process, so it may take a few days.
I will also try to think of a solution to get around the ram needs, there are some optimizations possible, just nothing easy.

gael navard

unread,
Oct 11, 2022, 4:39:02 PM10/11/22
to WVR Audio
No problem for me now. For drummers (I have 3 WVR dedicated for drums), this limitation isn’t a big deal as they’re not using a lot of racks.
I was just thinking about using WVR for keyboard also in the future.
So, for now, I will first try your new firmware on drums and gives you some feedback on that.
Thank you :)

WVR Audio

unread,
Oct 13, 2022, 3:48:22 AM10/13/22
to WVR Audio
OK cool, if I cant solve this in software, I am working on WVR2, which will use ESP32S3, which has double the ram, and this will be much easier to implement :)

Gnuv

unread,
Oct 13, 2022, 4:45:04 AM10/13/22
to WVR Audio
Great news for the WVR2 on the way with ESP32S3 ! If there's more RAM, it could also be a great new feature to include some round robin possibilities ;)

WVR Audio

unread,
Oct 13, 2022, 12:38:39 PM10/13/22
to WVR Audio
Round Robin has been on the todo list for a while. It's just hard to find time to build major features like that. 
If I run another kickstarter for WVR2 then I will be able to devote several months to development again, and not have to live on the street as a consequence :)
Are you familiar with .sf2, .sfz, or .dspreset files? I am considering moving toward having WVR read these kinds of files, rather then implement all that functionality, in an adhoc way, in the web UI, as I have been doing so far. Would that work for you? There are software applications dedicated to authoring these kinds of files, and I'm wondering if people like you are familiar with that approach.

David Battino

unread,
Oct 16, 2022, 9:10:04 AM10/16/22
to WVR Audio

Supporting the sf2 standard seems like a great idea. It would make WVR immediately useful with the variety of libraries out there. 

Right now, I hack  a round robin effect by using the generous number of velocity layers in the racks. Spreading samples over a tight range (e.g., 60–62, 63–65, 66–68) gives near-random playback. 

David Battino

unread,
Oct 16, 2022, 9:46:46 AM10/16/22
to WVR Audio

The sfz and DecentSampler formats look even better. Sfz for the open-source angle and DS for the more modern feel and growing Pianobook library  support. 

WVR Audio

unread,
Oct 16, 2022, 1:00:17 PM10/16/22
to WVR Audio
David that round-robon hack is AWESOME.
So for .sf2/.sfz/DS files, is there a free software tool that you would use to author such a file? I see there are many options online, but I'd like to know which is the popular one, so I can start running tests.
Implementing this wont magically give WVR any new powers, I will only be able to read the things that WVR can already do. WVR can't pitch-shift, can't store or handle round-robins, etc. I would still have to implement these features in software, which will take time. However I still think it would be valuable to implement a file reader for these file types, now, if it will save users time, give them access to existing sound fonts, etc. I dont think it will be hard to make a script to ingest these files.

gael navard

unread,
Oct 18, 2022, 12:05:39 PM10/18/22
to WVR Audio
I’ll be there for the WVR2 kickstarter ^^

I never use DS, but sometimes sf2 and mostly sfz. Polyphone can be use : https://www.polyphone-soundfonts.com/ but I generally prefer create sfz with a text editor, sometimes with the help of some scripts found here : https://sfzformat.com/software/tools/

For round robin, maybe a trick like the one used by reasamplomatic in Reaper could be implemented with less difficulty than a normal one :

Each note have a probability setting in %. By default it’s 100%. If it’s 50, this note have 50% chance to be played. If not, the noteon message trigger the same note on the next voice; where we can also set the probability, etc. until we have 100%. So if we want 3 round robin, we just have to use 3 voices.

WVR Audio

unread,
Oct 18, 2022, 12:57:28 PM10/18/22
to WVR Audio
Ohhhhhhhhh @Gnuv that is a great solution. If consuming voices is an acceptable trade-off, then that makes round-robin a lot easier to build.
I suppose all that would really be needed is one more option in the SOUNDS screen for each note or rack slot, maybe a drop-down to select a %, and then the user is responsible to place the other round-robin members in an identical note or rack slot, in the next voice(s), and make sure they add up to 100%

brilliant. would that be good enough?
i don't think that would be hard to build at all.

WVR Audio

unread,
Oct 18, 2022, 12:59:25 PM10/18/22
to WVR Audio
I guess a second drop-down would be needed to describe how many total voices are consumed with that round-robin. Still only 2 drop-downs, and not a ton of processor power to make the choice at playback time.

gael navard

unread,
Oct 18, 2022, 1:04:35 PM10/18/22
to WVR Audio
Great ! For me this compromise is completely ok. With 16 voices, we still have some possibilities.

Not sure why you need a second drop-down ? If you end the last round-robin voice with 100%, it will never pass to the others.


WVR Audio

unread,
Oct 18, 2022, 1:05:05 PM10/18/22
to WVR Audio
I added this to the github issue
feel free to chime in there if github is your thing.

WVR Audio

unread,
Oct 18, 2022, 1:07:04 PM10/18/22
to WVR Audio
You may be right, the second may not be needed, i am thinking of the algorithm that picks the voice and what would be optimal for performance, but yes I think you are right.

gael navard

unread,
Oct 18, 2022, 1:09:22 PM10/18/22
to WVR Audio
ok, I see your point.
In reaper, it's not a total of 100% for all voices.
The first voice can be 80% and the second 70%... it's just a question of passing the noteon until a 100%.
But maybe your way is easier to implement, I don't know about that.

WVR Audio

unread,
Nov 7, 2022, 4:12:42 PM11/7/22
to WVR Audio
Just wanted to keep you in the loop with progress on this.
I spent the weekend trying to scrape together enough ram to set this up, by switching to a streaming approach for the JSON data transfers.
Unfortunately it didn't work out. It happens sometimes.
I have one other approach in mind ... to free all the memory, and reallocate it each time it is needed for JSON transfers.
It may slow things down, but it should work.
What I am realizing is that I could vastly increase the flexibility of the WVR by changing some of the foundational ways it consumes memory. I have been getting requests from various people asking for more racks, more voices, slots for round-robin, etc. I think I can address all these at once with a different approach to memory management, but it means that I will have to rewrite a very large portion of the source code.
What you would end up with is a fixed maximum number of files ... probably in the range of 32,768 ... and then you can go to town, using them up as racks, as round-robins, as notes within voices, etc.
Like I may have mentioned before. I'd like to run another kickstarter soon, and that would give me time to both do a rewrite of WVR code, and create WVR2 for synthesis. I will try more to get this accomplished before then, but worst case scenario, it comes down the line with a big rewrite.

I also have a few questions:
How many layers is 'good enough' for velocity layering, I feel like 32 is overkill, and 16 would be enough ... is that accurate?
How many members is 'good enough' for round robin? Would 8 be enough? or is 16 more common?

David Battino

unread,
Nov 9, 2022, 10:05:22 PM11/9/22
to WVR Audio
For me, 16 velocity layers and eight round-robins would be great — especially if we can use them in combination. I looked at some software sample players and the numbers ranged from three layers to 100! I suspect it's a numbers game at that point.

My other embedded sampler, the Tsunami, doesn't do layers or round-robin, so WVR is already excelling. 

Thanks for all your attention and care on this.

WVR Audio

unread,
Nov 10, 2022, 11:56:46 AM11/10/22
to WVR Audio
Ok great to know! 16 layers and 8 round-robins results in only 4x the number of filehandles needed compared to whats currently used, which may be possible :)

Atonal Circuits

unread,
Oct 13, 2023, 8:36:31 AM10/13/23
to WVR Audio
Regarding the main topic "Save and load a single kit"

I understand that folders + files structure allows for bulk loading + JSON saving/loading for parameters. But what about the files created by the UI (such as those computed by pitch interpolation for the missing sampled notes for example)?

You received this message because you are subscribed to the Google Groups "WVR Audio" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wvr-audio+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/wvr-audio/d382ff26-51ad-4264-8748-53b1c9b08effn%40googlegroups.com.

Atonal Circuits

unread,
Oct 13, 2023, 2:41:38 PM10/13/23
to WVR Audio
I tried today to bulk upload a complete voice (128 sounds). The folder I send to WVR contains 128 subfolders named "00 C-1", "01 C#-1", "02 D-1" and so on...
All the slots (or subfolders) does not contain a file, some are empty for the moment. I have to render missing notes with Ableton. The empty folders are skipped. This means that I have to manually check the ones wich are not empty and select those in the 128 slots of the UI. To use the bulk update for a complete voice, empty folders should not be skipped. I know that I can place a short silent wav file inside empty folders, but this is an extra operation to do...

Also, if a subfolder contains more than 32 files, the process will crash (because no more than 32 sounds are allowed for a signe rack), the UI should consider only the first 32 files in a subfolder.

I'm trying to make a voice with the samples of the "Akaï Grand Piano" wich is in the public domain. I will be happy to share it once I succeed to bulk upload it in a voice.

WVR Audio

unread,
Oct 14, 2023, 3:43:49 PM10/14/23
to WVR Audio
Thanks, I have created a GitHub issue so I don't forget to patch this.
https://github.com/marchingband/wvr/issues/64

WVR Audio

unread,
Oct 14, 2023, 3:45:42 PM10/14/23
to WVR Audio
"But what about the files created by the UI"
I assume that this info would end up in the .json file as well, I can't imagine why it would not ... did you test this?

Reply all
Reply to author
Forward
0 new messages