ConvertWithMoss (prev. MultisampleGenerator) - convert multisamples from WAV,multisample,SFZ,SoundFont2,Decent Sampler

Post Reply New Topic
RELATED
PRODUCTS

Post

moss wrote: Sat Mar 07, 2020 7:50 am
Echoes in the Attic wrote: Fri Mar 06, 2020 10:50 pm Octave is not needed when you have the note number, which is the number before the letter. The letter is just there for easy readability. The note number is three digits when it is note 100 or above, but only 1 or 2 before that, as needed. For example "108C_127.wav". The C is not needed there because the note is 108. "0C_127.wav" is note 0, which is note C-2.
Any chance your script could handle this?
I wrote the detection with the idea that you do not have to configure anything. If I would support that it would mean that the user would need to create regex expressions or at least you would need to choose from a list, which I found too complex for the laymen users.
But you said it already can detect note number. What alteration is needed so that it detects the number at the start? Velocity already has an option to indicate where it is found in the name (with *). Could note number maybe have the same setting?

Post

I guess it would be pretty easy to write a python script that changes the names of the files to move the note number from the start to where your script wants it to be. Where does your script want the note number to be?

On the hand it doesn't make a ton of sense to edit the names of a whole bunch of files instead of just editing the extension at all, but I'm not sure how to do that. How was your extension written? Javascript? I know enough python to edit file names, but am not super familiar with javascript, though I might be able to figure out that small change

Post

Echoes in the Attic wrote: Sun Mar 08, 2020 3:48 pm I guess it would be pretty easy to write a python script that changes the names of the files to move the note number from the start to where your script wants it to be. Where does your script want the note number to be?

On the hand it doesn't make a ton of sense to edit the names of a whole bunch of files instead of just editing the extension at all, but I'm not sure how to do that. How was your extension written? Javascript? I know enough python to edit file names, but am not super familiar with javascript, though I might be able to figure out that small change
Could you upload me a sample set? Then I could have a look.
I did not publish the source so far. It is written in Java.

Post

I would like to install/study this tool. Please tell me where I must put it for Bitwig 3.1.2 to find it. TIA

Post

NTO wrote: Sun Mar 08, 2020 6:30 pm I would like to install/study this tool. Please tell me where I must put it for Bitwig 3.1.2 to find it. TIA
See the first entry in this thread.

Post

Thanks! Sorry, I missed the For installation and configuration instructions... on your DL page :dog:

Post

moss wrote: Sun Mar 08, 2020 5:05 pm
Echoes in the Attic wrote: Sun Mar 08, 2020 3:48 pm I guess it would be pretty easy to write a python script that changes the names of the files to move the note number from the start to where your script wants it to be. Where does your script want the note number to be?

On the hand it doesn't make a ton of sense to edit the names of a whole bunch of files instead of just editing the extension at all, but I'm not sure how to do that. How was your extension written? Javascript? I know enough python to edit file names, but am not super familiar with javascript, though I might be able to figure out that small change
Could you upload me a sample set? Then I could have a look.
I did not publish the source so far. It is written in Java.
You bet, here you go:
https://www.dropbox.com/s/xblmn6zymspxy ... e.zip?dl=0

It is sampled at 2 notes per octave starting at C-2 and ending at C8, two velocities. The very first number is the midi note number (starts at 0). The velocity is after the underscore. The letter note is just to be able to read it easily I think, shouldn't be relevant. But of course you could parse the midi note number by taking the numbers before the first letter character (they vary from one to three digits, no leading zeroes).

Thanks for taking a look!

Post

By the way, how does it determine how far to map each sampled key in either direction? For example if the samples were spaced an octave apart, on every C, does the multisample created map each C in both directions until it meets the next C? And how much do they overlap? Is that what the crossfade is setting?

Also, is the crossfade applied to velocity ranges, or just pitch ranges?

Cheers!

Post

Echoes in the Attic wrote: Mon Mar 09, 2020 1:53 am It is sampled at 2 notes per octave starting at C-2 and ending at C8, two velocities. The very first number is the midi note number (starts at 0). The velocity is after the underscore. The letter note is just to be able to read it easily I think, shouldn't be relevant. But of course you could parse the midi note number by taking the numbers before the first letter character (they vary from one to three digits, no leading zeroes).
I just released an update, which should fix your problem.
As Velocity layer detection pattern set "_*" (without the quotes).
Echoes in the Attic wrote: Mon Mar 09, 2020 1:53 am By the way, how does it determine how far to map each sampled key in either direction? For example if the samples were spaced an octave apart, on every C, does the multisample created map each C in both directions until it meets the next C? And how much do they overlap? Is that what the crossfade is setting?
Yes and Yes.
Echoes in the Attic wrote: Mon Mar 09, 2020 1:53 am Also, is the crossfade applied to velocity ranges, or just pitch ranges?
Only pitch.

Post

moss wrote: Mon Mar 09, 2020 3:11 pm
Echoes in the Attic wrote: Mon Mar 09, 2020 1:53 am It is sampled at 2 notes per octave starting at C-2 and ending at C8, two velocities. The very first number is the midi note number (starts at 0). The velocity is after the underscore. The letter note is just to be able to read it easily I think, shouldn't be relevant. But of course you could parse the midi note number by taking the numbers before the first letter character (they vary from one to three digits, no leading zeroes).
I just released an update, which should fix your problem.
As Velocity layer detection pattern set "_*" (without the quotes).
Echoes in the Attic wrote: Mon Mar 09, 2020 1:53 am By the way, how does it determine how far to map each sampled key in either direction? For example if the samples were spaced an octave apart, on every C, does the multisample created map each C in both directions until it meets the next C? And how much do they overlap? Is that what the crossfade is setting?
Yes and Yes.
Echoes in the Attic wrote: Mon Mar 09, 2020 1:53 am Also, is the crossfade applied to velocity ranges, or just pitch ranges?
Only pitch.
Thanks! I'll give it a shot!

Orignially I thought it was going to be velocity crossfading, which to me seems more useful since you could avoid sudden volume changes (where different pitches generally stay the same volume). Do you know if Bitwig allow velocity crossfades? If so then velocity crossfade amount would be an amazing addition to this tool and it would be pretty much complete! In fact I'd say it should be built in to the Bitwig core program!

Post

FYI, working great now! I'm going to have to add this + Freestyle to the tips thread. What a great combo.

Post

Hey Moss, so I've just dug a little deeper into sampler (just started using it for multisamples) and I quickly found out that of course it does support velocity crossfading (and select cross-fading, cool!). To me, velocity seems like the most useful type of crossfade to have since you typically wants as gradual a change in velocity as possible, despite capturing discrete velocity levels. Any chance you could add a velocity crossfade amount in the same way that you did for key crossfade? That would be really useful!
Cheers

Post

Hi Jürgen, I've just tried to use the latest version on a bunch of samples which have the names:
DCHOIR-1-A2.wav
DCHOIR-1-A3.wav
DCHOIR-1-B2.wav
DCHOIR-1-C3.wav
DCHOIR-1-C4.wav
DCHOIR-1-D3.wav
DCHOIR-1-D4.wav
DCHOIR-1-E2.wav
DCHOIR-1-E3.wav
DCHOIR-1-E4.wav
DCHOIR-1-G2.wav
DCHOIR-1-G3.wav

And then repeated blocks starting with:
DCHOIR-2
DCHOIR-7
DCHOIR-8
DCHOIR-9

The script doesn't produce any output. Do I need to put a custom Detection Pattern in, or do I need to manually rename the WAV files with extra 0s or something?

I'm using the MultisampleGenerator v2.1 dated 09 Mar 2020 and I'm using Bitwig Studio 3.2 beta 5.

Thanks in advance,
Carl
Bitwig 5.1.6 + Akai MIDIMix + Launchpad X + MuLab 9.3.18
Roli Lumi Keyboard x 2 + Universal Audio Apollo Twin X
Mac Mini M1 16GB/4TB + macOS 14.4 Sonoma

Post

carlca wrote: Tue May 12, 2020 8:20 pm Hi Jürgen, I've just tried to use the latest version on a bunch of samples which have the names:
DCHOIR-1-A2.wav
DCHOIR-1-A3.wav
DCHOIR-1-B2.wav
DCHOIR-1-C3.wav
DCHOIR-1-C4.wav
DCHOIR-1-D3.wav
DCHOIR-1-D4.wav
DCHOIR-1-E2.wav
DCHOIR-1-E3.wav
DCHOIR-1-E4.wav
DCHOIR-1-G2.wav
DCHOIR-1-G3.wav

And then repeated blocks starting with:
DCHOIR-2
DCHOIR-7
DCHOIR-8
DCHOIR-9

The script doesn't produce any output. Do I need to put a custom Detection Pattern in, or do I need to manually rename the WAV files with extra 0s or something?

I'm using the MultisampleGenerator v2.1 dated 09 Mar 2020 and I'm using Bitwig Studio 3.2 beta 5.

Thanks in advance,
Carl
You need to configure the detection pattern for the velocity layers. But it is strange that it does not create any output at all. Do you see an error in the Script console? If you want you can also send me the files to have a look.

Post

It looks like the script is succeeding because no errors occur and I get a brief flash of the sample names. It's just that when I look in the nominated output folder, I cannot find any output. Maybe the output is being put somewhere else? Also, how do I activate the Script console?
Bitwig 5.1.6 + Akai MIDIMix + Launchpad X + MuLab 9.3.18
Roli Lumi Keyboard x 2 + Universal Audio Apollo Twin X
Mac Mini M1 16GB/4TB + macOS 14.4 Sonoma

Post Reply

Return to “Controller Scripting”