Mic mixdown
-
Feature suggestion Export user's selected mic channel mix as a new set of samples that are then reloaded into HISE - like the same feature in OT's SINE player.
For effects plugin it would also be useful to be able to mixdown multiple impulse responses into a single IR, so instead of loading up several convo reverb FX only one would be required, saving CPU.
-
@d-healey That SINE player feature is amazing indeed!
-
I was playing earlier with the writeAudioFile function and it seems with a little modification that what I'm asking for (with the IR mix) would be doable. I was able to merge two mono files into a stereo file with the above function. What I'd like to be able to do is combine two mono (or stereo) files into a new file with the same number of channels and mix the two input files at different levels.
-
@d-healey loadIntoBufferArray and replaceAudioFile are your friends if you use sample.
loadAudioFileIntoBuffer array for working with audio files.
If you already know how to merge in two separate channels, it shouldn't be hard to sum files together.
Not so long ago I wrote my own samples from a script algorithm signal.
A way to go in your case might be to use/create a blank target and sum the two files in it using a weight factor (level) -
@ustk said in Mic mixdown:
If you already know how to merge in two separate channels,
This is with scripting, you just combine the buffer arrays and it outputs the merged file. I don't see anyway to mix the files though.
-
@d-healey Let's go semantic. by merge do you mean sum? by mix do you mean with a certain level for each?
-
@ustk By merge I mean take two mono and output a stereo. By mix I mean take two mono and output a mono.
-
@d-healey Working on an example... Are you using external files or samples?
-
@ustk Audio Files - impulse responses. But I also want to do it for samples if it can mix multiple samples, but with this I think more work would be needed to create a new sample map, etc.
-
@d-healey I do it for samples. It's a project I put aside for the moment but I remember I inserted an empty sample in the samplemap, then duplicate and write new content in it. or something like this...
-
@ustk That sounds promising. Does it work with monoliths?
-
@d-healey I paused before exporting monolith, but it should work...
I need to wrap my head a bit into this tomorrow ;) -
@ustk Thanks :D
-
@d-healey This is a very basic example, mono only (but stereo should be easy to support)
you need a samplemap with 3 samples, two sources, and a target sample.
I had a hard time figuring out some glitches, in fact, I just had to resave the sample map...
Be aware that the target should be at least the size of the biggest source. I don't know if it's possible to dynamically resize a buffer. My first sample was shortest than the second and the target, thus the if statement inside the loop to prevent iterating outside of the buffer length...HiseSnippet 1622.3oc4X0saSbDEd23L.1kPKHtn2ToUQ8BmBMXa9qRATbhiCMhXhU1DTqnT5jcGaOh0yXM6rALHj30f65iPe.5EbQuoOF8Mf2f1yL6tdGu33Xh.Jp0QIJmemu4bNybNiaK3djvPtvxt3dCGPrrOKxcHS1qQOLkYs0FV1eNxMp+ZQ9T9lz.Rn05CGfCCI9V11EtiRI6hyao+7lUWGGfYdjLVVV2mS8HaS6SkYbaW+tzffMw9j8n8Mz9Z02xiyZvC3Q.fJfpXM.68XbWx8vJ0lCYYepl9TIW3JwR.K1yuN2enaO9SXw5eeZH8f.hhnpkK3nX1axC7UHVw0pQOZfe6zMdnkkMpcVXnPbX3hnVTe5H9YgiuPKvIyBy3g8bSCdUMgWkYGd1Fv6Twv67HWOAcfLShBaeFZKljH5fgTfIrt2XIPajsMDrAlaPCGDfGtdTmNDwHAwd1ZteGgZvA+wjK2G+XxlBfXj+KeiJUtry0qTYoUVnDnVHOfrrW.AKJq3rPIHQFJcNDKbbw8GDPDUctsitzZ4tDYBuxKlJbw7VEpEDpLJQkk8DDHr5RBHdRJmUdw2xnCz6DWn7winVuDm7fJOb4.N1GPOOdytlPfGpQ5jMtlgwUOZiMMWhEvFyvtZObBteuTshUeJdVP55DFuS1lbHIXESV0RYo94JWwANhtPIJKfxHNchX53iCmsdjTxYUUoQAOnrGu+.NCRnWFPTPDYoEJ87EJUj1wobJcQEihc3BmxzaWYEG5sLwsNPRXck8.IW5RJ8iMP6CpysFOCjotVyDUKlyiOf9PHdj2PE2uYr.PrwpONNNWZ7zUNCFEd.keg9ujfPxLt5SwYZeo9MI6IHv4GOxnCWkMc9Rqjp8nJ3P7gjFQBAjBh40BOn7HofM4Etke4kz9AV4WDeRSefToZZxr7hIo4EWZ4PEecxtANH3.31yx4qBVJopYTsid6ENoxm6x3GbbEOlYHHPpEsxz.q1oGETMWwXfNYTUalPUs2MTUaZnp1DCeFv5dbIYGV4kJ87REK8hRN4E0oyDkk3V0kgSRrpAoXZFVlE0+.hHc6mpHz6Y7VQnitUjYmRu3nighb1VLpbmAD1Q0fxJIjBspJjfJ3+j5FUmKoQka.0mHrnP+nSizYYKMfSZ9W+ud1erp0LabswLVO5wQZbb0u13hnjiB4MG9r+VafkXU21jcCrCGPDRpJ3YuA4PXLl3duEQaPBerjOPucSpf.jcra3mNZAe8OWe3Hh5+TcI4oR0nEt6r+tMZ5T0Y6l2u41V8o99Aj17PpJmmXvu9pW8mq9DpurWl6NntkARNywF8xPxajFHw5sPRs2cjziP61KaXuW98SCaSL4jgtWxMP2uzMAcHj69srngs38AehECiKLSPBx9GAkSQAxtkdhyrInlONKByww8iBvxwGtSMQah.0F0bJJ0rOLH.Lzrr6CxDeyJbOOpMU50ax3ctIfWn79CMdSledATSnSnmLCryi17G9vOrrIT9pXnbAjqDlbrOk0MoUqFOkPoMdee7jlAy7SZZKHpg9boOyPsWWOd.vw49a00K0Z84QrwVqDjuKY.LQLj9Mr4L02c26H3QCxa0aVUWrrm.5oAgBSA6vHPbWZtGaH3ggcfsi1WglhZGAS23axYWnMqHbbdvyKfbOiAiVj9vh8CIpbM0qEVJnO0Ta8pTYOrNeCuySSWMGcsbzWMG80xQe8bz2HG8MynyF3ReKPXT+rxkv2pW5omsdof6Zig.fglqS6NZoh4jUNWIKnqAlwyZmviBO0mzuY8i2EtElM3dLOqtXJFcoprSSFL2Hz9WiwK.866fiBjobG+BiVbFePONi5M9QBnDuaWhvD6SbCslTBmHy3bw56BuvEGZbl9qquMLCLVL9I82oXQ0YOVLs70Whhgqi5VNm+aznrv+6aTNsP24RZS5.qtP9Idd9rH8E6Np9v+aA0c4QRn2QZONDzHL96Uvrc3bpVrwzUTzJ.4RX9Zh+F9jHr5nuTNPX0TgVdotB1aI+u90K1EHLUqC87eApG+ZVRGBiXnfDzu6iBJ6i8D7G4E+tLEVOilCfRl96ysHpkh1YzywPnJKWQ8VC5i77TGD9VHBOYapcBr4pm.at1IvlqeBr4Fm.at4Ivluap1nFSXsHIue7kj.i1MiKrraNpvpf0+fsgbtM
I also made a test where I search for the longest of two samples and duplicate it to make it the target. But then the file is the same and I don't know if it's possible to export as a new audioFile so you don't overwrite one of the sources. Maybe using the file system...
-
@ustk Thanks, this looks like it will point me in the right direction for mixing IRs. But will it work for sampler mic positions?
-
@d-healey Since all samples are in the list (tableView), you should be able to make your selection between mic positions and place the target where you want as it is just a sample too finally. So it shouldn't be different.
The only thing, (I'm not sampler guru as you are) is that a sample map using mic position should have the same number of positions for all samples I reckon. Meaning having a target sample wandering alone might not work. But if you have 4 mic pos, I imagine you can have 4 target samples, 3 dummy ones and 1 sum sample. Or even better, you can sum to all 4 target samples identically, so they can be heard whatever the mic pos you're at. These are just suppositions as I never did such a thing, but I have good hope :)
-
@ustk Rectification:
Not summing equally to the 4 targets, but summing each position to its "associated" target position ;) -
@ustk said in Mic mixdown:
Since all samples are in the list (tableView)
Not with mic positions. They are merged into a single pseudo sample so you only see one of the mics in the table view.
-
@d-healey Oh sh.. I thought they were showing. Do they appear in the result of a script sample selection? Well I don't think so...
-
@ustk Nope :(