You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Basically, when writing channel-wise, the code spends a lot of time in seek() which is not a quick thing for a file.
For our part, the reading/storing/writing in the wrapper should change to be interleaved. This is not as huge a change as it seems:
Use readInterleaved from IAudioFile
In common with the BufferAdaptors for other hosts, rely on FluidTensorView to handle the layout logic (obtaining a channel -> reading a column when using interleaved layout)
Use writeInterleaved from OAudioFile
For CSV output we probably want to use the transpose of the interleaved data. I think.
The text was updated successfully, but these errors were encountered:
It's not really in our hands. The PR code has been merged into an experimental branch on HISSTools, but I don't think that branch has yet made it to main
Work on #1 has revealed that, even for quite moderate cases, writing a multichannel audio file can take longer than processing, e.g.
./fluid-nmf -source ~/dev/flucoma-core/AudioFiles/Tremblay-ASWINE-ScratchySynth-M.wav -components 5 -resynth out.wav
At root, this is down to something that's already marked as a FIXME in the HISSTools audio file source: https://github.com/AlexHarker/HISSTools_Library/blob/5cf4a3ad60005cb8208f10be460607eb9b91248e/AudioFile/OAudioFile.cpp#L597
Basically, when writing channel-wise, the code spends a lot of time in
seek()
which is not a quick thing for a file.For our part, the reading/storing/writing in the wrapper should change to be interleaved. This is not as huge a change as it seems:
readInterleaved
fromIAudioFile
BufferAdaptor
s for other hosts, rely onFluidTensorView
to handle the layout logic (obtaining a channel -> reading a column when using interleaved layout)writeInterleaved
fromOAudioFile
The text was updated successfully, but these errors were encountered: