Export each track to a separate WAV file

A useful feature that I and probably others could use would be the ability to export stem tracks. In other words export each track to a separate WAV file. Each exported file could then be loaded into a DAW for further effects, enhancements, and editing.

7 Likes

Yes. I agree. Id love to use hooktheory like this. At the moment I export tracks individually. It’s great. But this would be awesome.

2 Likes

Agreed, it would be a great feature.

2 Likes

I agree this would be useful. We talked about this internally to see how hard it would be. It isn’t going to be an easy ask, unfortunately. We do the recording/bounce with a web worker and would have to parallelize that for each track in the band.

I changed the name of this thread from “useful feature request” to “export each track in a separate WAV file” to hopefully make it easier for people to find. If this gets upvoted a lot, we will take another look.

2 Likes

I’ll add a bit to @chris’s response here. As he mentioned we currently have a web worker listening to the final mixed audio. We could in principle set up many web workers to independently record the individual tracks before they are mixed, but worry about the performance, since we already have performance issues with a single worker on in the current workflow.

Let me ask though, are you all looking for individual instruments to be bounced, or would instrument “tracks” be sufficient (i.e. all lead1 instruments in one file, all harmony in another, etc)?

It would really be per instrument since you might have two lead instruments for example, a guitar and an organ and you want to process some ambiance on the guitar but not the organ. Not good news I guess. BTW, great work, love using your product. Fun and very open to creative ideas. Good work!

got it. Would it help maybe if we added solo buttons to individual instruments in the band UI? Then at least you would be able to have an easier way to bounce just your guitar track but not the organ track.

2 Likes

That would work. Would have to do multiple passes but that’s not a big deal.

I used to have to do that with Reason v5 so I know it works. Just solo an instrument for each pass wanted.

1 Like

we’ll still investigate the multiple wav file export. If it turns out that the browser can handle this type of operation then we’d be happy to put it on our roadmap

2 Likes

Excellent. Thanks for that.

1 Like

Hi has there been any development with this? I could also do with the stem export, I have many songs using multiple bands and to export them manually is an arduous task. Building on this It would be a nice to save finished projects with one button, that exports “everything” Audio Stems, Midi Stems in a logical order .

Thank you for the reminder and sorry for the dely. We have not yet come to a solution but we’re working on the export functionality in general right now. Midi export is improving a lot, with one of the next updates all exported midi tracks will have General Midi information to automatically select the right instruments in your DAW.

I think after that we might think about Stem Export and see if it’s possible.

A quick update on the wav stems: We tried running a parallelized wav export from the current AudioWorkletNode but it was too much for it to process and audio was garbled once the instrument count got too high. Sadly this is just a side effect of browser-based processing which can’t multithread efficiently. Probably the next thing to try is to spawn a different AudioWorkletNode for each instrument, although this is significantly more development.

I understand then that this function will not be included ?
Have you thought about creating an offline or mixed app that allows you to implement this and other functions that are too complex for a browser?

We have considered it, but right now we’re more focused on implementing features and tools that can work well in the browser. Hookpad is designed to be a lightweight songwriting sketchpad, and will fundamentally be different from a DAW both in terms of performance, but also the granularity of production that some users desire. We ultimately see Hookpad and a DAW as complimentary utilities, and are doing our best to make the workflow between the two as simple as possible.

One feature that will be released in the next minor update of Hookpad is that we are now tagging all exported MIDI tracks with the General MIDI instrument number that most closely matches the Hookpad instrument. This will allow users to more easily organize their projects exported to DAW and to choose instruments accordingly.

Regarding the requested feature here, we will continue to look into it. But we want to make sure that any solution we implement will work for most users, e.g., if audio comes out garbled on most averagely-specced then it’s clearly not ideal.

1 Like

Hi all, new developments on this.

TL;DR is that we have this working and it will be released in the next version of Hookpad shortly.

In addition to track stems, we also were able to implement instrument audio clip exports, which like the midi clip exports can be thought of as stem exports of a specific instrument on a given measure selection. We’ve put them next to the MIDI clip UI in the band browser so you can export WAV and MP3 files of individual instruments in selected measures:

image

Both of these features were enabled by our move away from project recording for audio export via Recorder.js to the WebAudio OfflineAudioContext, which is probably what we should have done from the start. This results in Hookpad rendering audio files using a “bounce” rather than a “record”, meaning that audio is processed as fast as your browser can handle it, rather than in time with the performance. This has two meaningful effects:

  1. WAV and MP3 export are much faster now, especially for regions of your project that are relatively simple to compute. Most demo songs on our test machines are rendering 10X faster.

  2. Audio export should now be glitch free. Most of the audio glitches that users were reporting in WAV and MP3 export we believe were caused by the browser not being able to render the audio quickly enough to keep up with the playback. Since this new recording goes only as fast as the browser is able to, it should always faithfully reproduce what we’re asking it to do.

We’re finalizing a few details surrounding zipping the audio stems before sending them for download, but expect to have this update out soon. Thanks all for the suggestions and your patience.

3 Likes

It’s very good news for me, the last project had too many instruments and band variations and it has been a headache and has involved many hours of intense work. I’ll try it and I hope that now I have more desire to create with Hookpad.
Thank you so much.

Fantastic news you’ve added this feature, Its a shame however that the separate harmony instruments are not exported separately as well, i hope this is possible for you to do.

I love this, guys. Thank you so much!

Jeremiah