Get Sample Filename from Sampler using custom Sample Maps.
-
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
local s = [Sampler1.parseSampleFile(file)];
local selection = [Sampler1.createSelection(".*")];What are the square brackets for?
SampleName1.get(selection);
What's this?
-
@d-healey The square bracket for
local s = [Sampler1.parseSampleFile(file)];
was in the CustomSampleImport demo already so I figured this is how it was supposed to be.SampleName1.get(selection);
is my attempt to read the array and pull the custom sample file name. -
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
is my attempt to read the array and pull the custom sample file name.
I already gave you the code to get an array of all the samples in the current sample map. All you need to do is loop through the array (or if there's only ever one sample just use the first element) and retrieve the Filename property which you can then process further with the string commands. And at the link I posted before (read every post at that link) you'll see how to retrieve properties - https://forum.hise.audio/topic/64/fun-with-regex/8?_=1708021905238
-
@d-healey I know, I can feel you've basically given me the answer and yet its like I'm blind, deaf & dumb. However, of those may be true. I'm looking right over it. I'll go back and figure it out. I need to take a HISE break to work on another HISE project. The cycle...
-
@d-healey Im able to get the filename to print with this
const selection = Sampler1.createSelection(".*"); for (s in selection) { //Console.print(s.get(Sampler1.FileName)); s.set(Sampler1.Filename, s.get(Sampler1.Filename)); SampleName1.setValue(s[value]); }
I dont see any REGEX property ID for filename, or am looking (once gain) right over the post you're intending me to see.
Anymore help/direction is appreciated.
-
-
@d-healey if I remember correctly this is not working for custom samplemaps. That's what my original post was all about. If it works by now that would be cool tho.
-
@d-healey If this is the correct way, what about my script is incorrect? I have also tried
SampleName1.setValue(s.get(Sampler1.Filename));
But neither snippet has worked. They have both compiled, but not changed the label.
@oskarsh This is what I was afraid of. How else could you view the name of the currently loaded sample if its a custom samplemap?
-
@trillbilly I don't see in your script where you are setting the text property of the label
-
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
@d-healey If this is the correct way, what about my script is incorrect? I have also tried
SampleName1.setValue(s.get(Sampler1.Filename));
But neither snippet has worked. They have both compiled, but not changed the label.
@oskarsh This is what I was afraid of. How else could you view the name of the currently loaded sample if its a custom samplemap?
if:
SampleName1.setValue(s[value]);
is attempting to set the text of a label called SampleName1, then try:
SampleName1.set("text",s[value]);
-- but in your code thats gonna happen a lot of times - once for each sample name in selection
-
@d-healey I assume thats what something like this was doing:
const selection = Sampler1.createSelection(".*"); for (s in selection) { //Console.print(s.get(Sampler1.FileName)); s.set(Sampler1.Filename, s.get(Sampler1.Filename)); SampleName1.setValue(s.get(Sampler1.Filename));//label
Since this changes the label text from a combobox/viewport samplemap:
const var list = Sampler.getSampleMapList(); inline function onSampleViewer1Control(component, value)//viewport { Sampler1.loadSampleMap(list[value]); SampleName1.setValue(list[value]);//label };
-
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
@d-healey I assume thats what something like this was doing:
const selection = Sampler1.createSelection(".*"); for (s in selection) { //Console.print(s.get(Sampler1.FileName)); s.set(Sampler1.Filename, s.get(Sampler1.Filename)); SampleName1.setValue(s.get(Sampler1.Filename));//label
Since this changes the label text from a combobox/viewport samplemap:
const var list = Sampler.getSampleMapList(); inline function onSampleViewer1Control(component, value)//viewport { Sampler1.loadSampleMap(list[value]); SampleName1.setValue(list[value]);//label };
look at those two pieces of code.... one is passing in something called value (the second piece of code) where as the first has no idea what "value" is....
-
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
s.set(Sampler1.Filename, s.get(Sampler1.Filename));
What do you think this does?
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
SampleName1.setValue(s.get(Sampler1.Filename));//label
Try changing the text instead of the value.
-
..also try this..
const selection = Sampler1.createSelection(".*"); Console.print(trace(selection));
-
@d-healey said in Get Sample Filename from Sampler using custom Sample Maps.:
s.set(Sampler1.Filename, s.get(Sampler1.Filename));
What do you think this does?
I thought it was setting
s
to be the filename of the loaded custom sample.@Lindon Ayaya (in my Mario voice). Call me Simpleton...
I have ran the trace and it comes back empty. I have also change the setValue to set the text as you suggested.
const selection = Sampler1.createSelection(".*"); for (s in selection) { //Console.print(s.get(Sampler1.FileName)); s.set(Sampler1.Filename, s.get(Sampler1.Filename)); SampleName1.set("text",s[value]); Console.print(trace(selection)); }
Again, it compiles but the label does not change when using a custom samplemap.
-
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
I thought it was setting s to be the filename of the loaded custom sample.
Let's break it down.
s.get(Sampler1.Filename)
This will get the name of the sample
s
s.set(Sampler1.Filename,
This will set the name of sample
s
s.set(Sampler1.Filename, s.get(Sampler1.Filename));
So this will set the name of sample
s
to the name of samples
. In other words it doesn't do anything.@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
I have ran the trace and it comes back empty.
Are you running this code after you have loaded the sample map?
-
@d-healey In THIS post you referred me too, Christoph uses this case below:
sample.set(Sampler.RootKey, sample.get(Sampler.RootKey);
This is where I thought he was setting & getting
sample
to be the RootKey. I took this and thought it would sets
to be the Sampler1.FileName.And yes, it just comes back with a number of commas like console like below
Interface: [ , , , , , , ]
Also, if I put the entirety of the code into the SampleLoadSave.js, below where the sample is loaded, it gives this error in regards too
SampleName1.set("text",s[value]);
Uknown Function 'set'
-
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
Christoph uses this case below:
So he does, I have no idea why, it makes no sense... but you don't need to change your sample's name so there is no reason to set it to anything.
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
And yes, it just comes back with a number of commas like console like below
That means the array contains sample objects. Each one shows as a blank line. You can also open the script watch table to see what's going on in your variable.
@trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:
Uknown Function 'set'
Whenever you see unknown function it means the thing on the left side of the
.
doesn't have a function with the name of whatever is on the right side of the.
. This could be because the thing on the left side isn't available in the scope you are trying to use it. -
@d-healey Ok, thank you. Ive changed it to this and have now got it compiling within the SampleLoadSave.js after the sample load function.
const selection = Sampler1.createSelection(".*"); for (s in selection) { //Console.print(s.get(Sampler1.FileName)); SampleName1.set("text", s.get(Sampler1.Filename)); //Console.print(trace(selection)); }
It compiles, but again no change to the label.
-
@trillbilly You can only set the label to 1 sample name. So you don't need a loop. Just grab the first sample
[0]
from your selection and use that.const s = Sampler1.createSelection(".*")[0]; SampleName1.set("text", s.get(Sampler1.Filename));