Displaying a waveform from a sampler
-
@Christoph-Hart yep that fixed it - silly me . Thanks.
-
OK so for those of us trying to use this in any practical scenario - there's a couple of gotchas.....
So assuming a scenario where you want to load a sample map and display the audio at the same index position in all cases, so for example you have a set of hundreds of drum sample maps, each with just one wav file (at index zero obviously..).
So you swap out and load the new sample map and say:
AudioWaveform1.set("sampleIndex", 0);
and you will (sadly) discover your AudioWaveform will not display the new wav file...
The only way around this that I've found (and its sorta ugly) is to:
- set the AudioWaveform to some other index position (even if theres no file at that position) e.g.
AudioWaveform1.set("sampleIndex", 1);
- wait for it to set itself up...(use a timer) and then reapply:
AudioWaveform1.set("sampleIndex", 0);
You cannot do this:
AudioWaveform1.set("sampleIndex", 1); AudioWaveform1.set("sampleIndex", 0);
As again it fails to work
Here's my snippet of this cough "solution" at work... if any one has a better way of doing this please let me know...
HiseSnippet 1393.3oc4WEtaTaDDdctXf6JAUPTopJUIqn9iKRzn6.BTIDhK4RB5DDxoyAZU+QQK16c2Jr20Z85TthhT+Qef5i.OB8Qg2fzY2097ZykPHpPQsN+H2LyNi+1uY1YVOTvCHoobAxo4AyRHHmK65OiIm1eJlxPC1F47MtalER4+H9PxtbQ7VYRIm4SjOMAs0rDbZJID43z3gp06zbYj94sOXKbDlEPJUgPOiSCHOlFSkkZG16QznncwgjCnwVq918FDvY84Q7L.aMb6fRvAuDOg7DrZYK4hbtvNgTIW3KwRRJxY4s3gy7mx+UlY8OilReQDQIzE4CAxndWdTnBwJsn9SoQgCK3fTDxwcXIizvvHW2cOZHct9Rl4K0F7J8vlObV5zfWWa304rCOGK3srAdW00OPPSjkVTX6KbGvjDwXLjBrgkYsnk9kFt84vJXx0iwujrq.Dl6Q66zoyM71nSm0t2JsVoEjHRkdGhEdyqDFCUBc8tuWQLlPj84wIbFHzd0pKaUSTpFIebbRDQnhgtdSEgbcsWsvn1yReLkd27Des41q40PLiDcxX0XNGiFg0SIRU0nnONJ5EPYW6wYr.IkyZuVqW2pIDnTdDY8DAUEAJySNk3IUdniSS5Xu1U4.0Ks8po580.VH4Uqtl28uuW20VokG77Zy+TO07Kste2vSmUJVdAhk7DMjaWX7n605HylpUA6SYQTFwqXy3wY4LlhYD7n1AEzxM.lKJi.nCPVy2Oj5p21ywBVX3u14kPGoww6IoohaNPly60QXYkj4OqsxS3Rx94InVG0xqtowiWns7.qJ6Vj4bN8jcrMKK9EDQAgUrP3zY0i+tm7we6tSAFNxZgb1.FUteBgcRMEP4DKzdXobTAKUpaN7U4MGpjBQzPUyqpoUjdCX2tFUOXWIOXlbhNJMcySP0c+sO.8zAaikXUSqb.BfNgHjTEe3rM4PXZfoEVS2sIouDJggW07RCjyE+f2CupD.+buYyE98G0KofvF.90xsnCCJEX5coQ4iUTo.qJaH.WvhMlCrkM.akhNup5dMftjq4LfBHtN+E30L0O9iiO93E3+oxmkak2XuUPQ8Pu6L.XRDOLKBKqNdRMSN2.TzVYNfpWOKkJmYmx9nLy5rB2q5NjJCltX7tzBvqpd+iLdyuAvJt6LdLIPVB1kc28m93Ot2FJeqAJWy0WJH3XJaRdMrFOVUz+Cborjy7kxFJHQbbnO82rV1a5sUFvWhpZ+yd5W0lw7LVk2UNxGQRHXIj9s74R8FM5gBdVRcud6CzEKGHfoD.UXaXeFA3co8drufmlNF1N5XkZaZXlXhhqJ0LhbHQjVU2SxhgbOCNZqZk63.pdZJQkqoA6gkB5qrWs9sz4.rNeC2TUK2sl7MqIeqZx2tl7F0juSM46VJaHz8vIlKBtYPvyGs+96sw6LT5hmsgRPjzs0rV4VzIyeKFMkUxcJ4aMlrtS9BtQ6E9r9B2e55013rA22y2Dzr.i9TU1YG1gv4SPiBiWClxNFmEIKzVsWwdbFOYJmQCpdZ.ptmLgHrw9B2PaJkvgwRMWu2HRDAmZcb9658X3BnXQ0C4ePbQ2yNWbZ4qu10.WOUCNu+aLirw+6mQdZT2UxmP54q97jOyyyW1U2S2SMB9eKnNhmIgQqEi2bgYf9vb+.h8jvkTSWMxcTxJ.4SXgZA3VuGmarawXSkwtEFQAEgB1a4+V+MCNMHL0nC8U+hfAxQ1kzovsKTPBF08IAkw3.A+4AluFRg0Ko0.njo+pglt6oj8l+MTttcVuCJFlU87f.0AguGX3E6yMOG9bqygO29b3yFmCety4vm6dN74GNUeTWSXyLIO1zjDTLbGSgkyNyKrZf9a3FCodA
-
This post is deleted! -
@Lindon I don't know much on this side.
But maybeEngine.getPreloadProgress()
can help you? -
@ustk - thanks - I looked at the API - just one question "the progress of what?"
-
@Lindon preload :)
-
@ustk lol - yes - the preload progress of what? The Sample Map? The AudioWaveForm ? my washingmachine?
and once i know what this is Im not sure how this helps me in any real way....
Actually this is a bit dis-ingenuouse of me..sorry. Yeah waiting for the sample map to load might be what I need - but I think what we need here... but its working right now so once I need to laod a bigger sample map and thus need some sort of async. call back method I think I might ask for that...
Hey @Christoph-Hart - how about it:
on async(event)
(just half joking here...)
-
@Lindon Apparently, it's the progress when loading samplemaps (maybe just audio samples too? don't know...) Sorry man that's all I know
-
@ustk Maybe just to replace your timer with something cleaner... Again, that's a side of Hise I don't really know...
-
@ustk yeah on async is the cleanest code solution ....