Can I play wav files ?
-
No go...
-
@MusoCity really still not clear what you want HISE to do for you...dynamically import wav files?
-
Play back a sample section of the source wav.
In the pic below the top track is the source file,
the second track is chord sections of the track being played back.
These will playback @ DAW bpm.
Full Screen
-
@MusoCity HISE can't play back audio that's in a DAW it can only playback audio that is present in the plugin.
-
@d-healey said in Can I play wav files ?:
@MusoCity HISE can't play back audio that's in a DAW it can only playback audio that is present in the plugin.
The files are in a folder on the hard drive, the pic is just to show what I need, the DAW is playing them direct from the hard drive, this is what I need HISE to do, play a C section, play an Am section, play a G section........ etc
the csv gives the time location and length in the wav.
"it can only playback audio that is present in the plugin." "in" is that from a sample source on disk ?
-
@MusoCity HISE can only play back files that you have mapped in a sampler or loaded into an audio loop player module. It can't play arbitrary files of the user's choosing.
-
Do you know of anything else ?
I tried https://www.osar.fr/protoplug/ but could not get the wav to play with the supplied Lua script:--[[ name: soundfile test description: A simple demo that plays an audio file. author: osar.fr --]] require "include/protoplug" local path = "C:\\Temp\\Drums120bpm.wav" local wave, len -- 'prepareToPlay' will be triggered when the host sample rate is known, -- so we can load sound files with automatic sample rate conversion: plugin.addHandler('prepareToPlay', function() local readr = juce.AudioFormatReader(path) if readr==nil then error ("can't open wave: "..path) end wave, len = readr:readToFloat(2) -- require 2 channels end) polyGen.initTracks(8) function polyGen.VTrack:noteOn(note, vel, ev) self.playing = true self.wavepos = 0 end function polyGen.VTrack:noteOff(note, ev) self.playing = false end function polyGen.VTrack:addProcessBlock(samples, smax) for i = 0,smax do if self.playing and self.wavepos < len then self.wavepos = self.wavepos + 1 samples[0][i] = samples[0][i] + wave[0][self.wavepos] -- left samples[1][i] = samples[1][i] + wave[1][self.wavepos] -- right end end end
-
If C++ is an option I'd recommend doing it directly with JUCE. If you can do it as a standalone app instead of a plugin then it might be something you could do with Electron.
-
If we all knew C++ we wouldn't be here :(
They have to playback in sync with the other DAW tracks so yeah needs to be in a VST.
Maybe I'll just forget about it and go down the beach :) -
@MusoCity I can recommend a good C++ developer if you want to hire it out.
-
Now I had a look at HISE and there is an Audio Loop Player.
Can I drop a long wav in, set the Loop to 2 or 4 bars, set the sample pos start sample pos end, assign that to a midi chord input. So when a C chord is played it will loop that section of the wav , then C# chord will loop another section and so on ?