Feature request - Master Export

Hi!

After being a Wavelab user for 15+ years and then moving over to Pyramix for a few years and now back to WaveLab, I have a feature request that I think is missing that made me move away from WaveLab in the first place. After talking with Justin Perkins about exporting and converting final masters to different formats with naming conventions and automatic sub-folder generation in Wavelab, where my idea now with WaveLab having a great SRC implemented, was to use the Batch Processor for this task, Justin made the comment of not being able to trust the Batch Processor fully… so I made a few tests.

The basic idea is to be able to export an archival/highest resolution possible master from a montage as individual files and then throw that into the Batch Processor to run SRC+Dither and to have the batch spit out correctly named files and formats that are automatically put into sub-folders.

The system works great, you make a few templates that takes care of the processing, naming and output paths, throw your high-res files in there, hit Run All and let WaveLab go to work. Everything works great but Justin is indeed correct that you need to be careful and that this process is not the best route for putting out final masters most of the time.

Basically, if you don’t have any overlapping audio, the process works exactly like you would want but if you have two overlapping tracks in the montage that are split up as separate tracks, WaveLab of course processes these not as a continual stream of audio but rather as two individual files meaning that the last sample of the first tracks and first sample of the second track will be changed and doesn’t line up due to the processing applied even when that is as simple as WaveLab’s internal SRC and dither.

The only solution to this if you are doing SRC in the process of putting out final masters is to make sure that the SRC is applied to the complete file as a whole and then split out afterwards into individual tracks as the last step after all processing is applied.

Doing the same thing with Pyramix, the system realizes what you’re trying to do and it takes care of everything behind the scenes by first rendering a continuous master file (in their own MTFF format) that the system uses to spit out all requested formats, sample rates and exports following, and the resulting audio is what you expect it to be with no glitches. It would be great not having to resort to the process of using multiple montages just to get your masters delivered to different formats safely when you need to use SRC or other processing as well for that matter. I know Justin and others are used to this but when you’re presented with the option of not having to deal with this in that way, it seems overly complicated. Just hitting Master Export, then choose the desired sample rate, dither and format presets and then the naming presets for individual and continuous files would leave the user with only having to deal with one single montage rather than saving maybe 4-5 different ones holding SRC’d versions based on the first montage and saving other settings as dither or gain etc… just to be ready for export. If you need to update something in the first montage at some point, you need to redo the entire export chain again.

All in all, something like a Master Export feature that takes care of all of that in the background I think would be very nice addition to the tool kit.

First, I would like to mention that the batch processor uses the same rendering engine as when you render anything else in WaveLab, from the montage or audio editor. Same quality, no difference. You can trust it! And if you don’t trust your plugins, don’t use the multicore setting of the batch processor. This is not by chance that the following option exists, and it denotes this underlying unity between the standard renders and the batch processor.

image

I don’t think there is a “line up” problem, as you mention (at least, the term is not appropriate, but remember, I am not an English speaker!). But indeed, there is another potential problem. For example, the reverb tail of the preceding track won’t be found in the next track. Sometimes, even if you don’t have an obvious tail, this could be the data collected for a track plugin that will be missing (often, the latency of a plugin is a need to analyze prior-audio before processing).

This being said, as far as I understand your case, there is a very simple way of achieving your goal:
Simply render the whole montage to a high-resolution file, including all markers. Then use this option to recreate all titles individually, from the audio editor:

image

Resampling and Dither plugins will not introduce side effects at the title boundaries.
This solution does not use the batch processor.

Now, you could also generate the titles without any processing as individual high-resolution files, and then use the batch processor (or even a watch folder) to finalize your titles with resampling, etc…

So are you saying that you actually tested what happens if you rendered perfectly gapless WAV files of an album at floating point/high sample rate and then use the Batch Processor to create 24 or 16-bit/44.1k WAVs and in this case, and you get a slight tick or pop at the track transition points? That’s a big invitation for something to go wrong, even if no plugins are involved. Just the SRC alone of each song/file is concerning enough when it comes to maintaining sample accuracy between gapless songs.

I haven’t tested this in awhile because there are a few other reason why I don’t care for this method of working. One of them being that I still make a lot of DDP files and even some cassette pre-masters where I make one file per cassette side/program and in these cases, I need a fully processed (aside from dither) 44.1k montage with the processing baked in (aside from dither which I insert live in the montage) so for that reason alone, doing a custom montage duplicate down to 44.1k is best in my opinion.

Aside from DDP, the main cassette duplication in the US still requires 16-bit/44.1k audio due to the technical limitations of their system and even though only some clients press CDs and need a DDP, I think that a DDP w/HOFA DDP Player is a great project approval tool so with my workflow, it only takes a few seconds to render a DDP too and thanks to other practices, I don’t have to enter more data or do anything special. It’s as simple as rendering WAV or mp3 files.

On top of all this, I don’t care to use the Resampler in the Master Section because then you have to add dither after the Resampler and potentially a true-peak limiter before the dither to catch any new overs and NONE of the Master Section settings are automatically saved and loaded with the .mon montage file so for me, that is a major deal-breaker. I need all my settings automatically stored in the .mon file with no chance for human error or other error regarding saving and loading the master section.

So, my rendering practice might not be the most direct for some or most projects, but it is certainly in my opinion the best and safest way to cover any and all situations when it comes to albums with overlapping songs, unique song transitions, or even when an album doesn’t start as a gapless album but at some point during the process the client decides to slightly overlap a song or songs. All bases are covered with the method I’ve developed. I don’t even have to think about it or switch gears, or be surprised with an issue after rendering because there aren’t any.

As you mentioned, most of these issues can go undetected and be non-issues if your EP or album has true silence between songs as most do but I chose to come up with a workflow that works perfectly regardless of the album having silence between songs, overlapping/gapless songs, or anything in between.

I’m not saying it’s the only way to do things in WaveLab or the best way for every person, but I can say that I find it to be very fast once you have developed some, presets, shortcuts (with the aid of Stream Deck or Keyboard Maestro), and some muscle memory. It becomes extremely fast to enter the project info and manage markers just one time, do a full render at floating point/high sample rate and have WaveLab recreate a new montage after the initial render, use the external SRC of your choice (RX, Saracon, WaveLab Batch Processor), and then render any and all formats safely from the montage track by track because aside from dither, all your plugin processing is baked in so any track transitions with overlapping audio or audio at the first and last sample remain perfectly sample accurate. This is why I prefer to render all my master WAVs from a montage directly.

I can say that I basically never have clients coming back to report ticks or pops at track transitions with gapless/overlapping tracks with this method (even after it’s on streaming), or any other quality control issues. Everything is cleanly rendered.

It’s true that I end up with a few montage variations of the same projects such as the 6496 source montage, 2496 render montage (the audio in the montage is floating point, but 24-bit dither is inserted and running live), 2444 montage, 1644 montage but the .mon files are VERY small and don’t take up hard drive space. The montage derivatives allow me to have 100% recall of the dither settings I used and allow for maximum flexibility because the audio files in the montage are floating point and can be dithered to 24 or 16-bit.

I like this method because I am fully in control of what’s going on, and I can verify things before I render them instead of leaving things up to the Batch Processor. A batch processor can be handy for some things, but whether it’s WaveLab, RX, REAPER, etc, I just cannot trust a Batch Processor to handle every single detail as perfectly as I would like to see. Especially converting WAV files of each track on an album, particularly gapless albums.

I also see people who want to render 2496 WAVs first and then use a batch processor to get other lower resolutions but I think this is bad practice because then you’re dithering (or truncating) twice. Once to get from floating point to 24-bit, and again to get down to lower bit-depths and sample rates. Not the best practice in my opinion so that’s why I like to bake in the main plugin processing at floating point and high sample rate, and then render the actual WAV files of each song after that.

This method also works great for single song projects, and even when you are doing a single song but also have the instrumental, clean/radio edit, TV mix, etc. in the same montage lined up one after another on the timeline.

Maybe you’ll find another way or convince PG to make some changes but for right now, I am very happy with the method I’m using and do not find it to be slow or cumbersome or time consuming at all.

You can test this using a long continuous tone split up into a number of tracks. Export as individual files at 64bit / 48khz. Import these files into a new 48khz montage and they will play seamlessly as expected.

You then put these same individual files into a batch convertor to make 16bit 44.1khz files. Using resampler and dither. No other processing applied. Import these 16bit files into a new 44.1khz montage and they no longer play 100% seamlessly. There is a very tiny glitch at the transition points. Not enough to be audible but it’s no longer 100% seamless/gapless. Use the level meter as a guide.

Interestingly, I also used Isotope RX to batch process the tone files to 16bit 44.1hz and these remained 100% seamless.

1 Like

Why they don’t render to 32f96 then?

Philippe

2 Likes

That is my point. Some people are looking for shortcuts that are either not best practice, or paint them into a corner.

1 Like

But this solution requires extra saving and loading of the Master Section which is something I cannot get behind using.

I really think the Custom Montage Duplicate feature that you’ve already added is the best solution.

Arrange/Assemble your master montage just one time, do one long floating point render at the highest native sample rate, and it’s very easy to recreate new montages at other sample rates and/or with other dither settings in the Montage Output section for 16 and 24-bit rendering, and you can render anything easily without any extra data entry or reassembly work regarding markers etc.

I agree with Justin about rendering one album-length audio file at floating point & high sample rate first. It avoids issues regardless of whether they would come from wavelab, some plugin, effect tails, etc… As far as I know, this is relatively standard practices for a lot of mastering engineers working in a lot of different DAWs.

I think Plec’s idea also has a lot of merit, but maybe there’s a bit of a language/explanation barrier. It seems like Pyramix’s master output, translated to Wavelab’s world, would be akin to expanding the render presets rather than changing (or even using) the batch processor.

E.g.,

If your normal procedure involves Justin’s method of rendering the album to a file and then creating custom montage copies for other formats where you apply pretty “fixed” processing (SRC > Limit > Dither > Truncate) and then let WaveLab’s renderer create necessary file formats…

Would it be possible to expand the render presets to involve processing presets?

So, if you had your 64f/96k montage consisting of a single file and only wanted 16/44 wav files, you could just pick that one preset and have the renderer apply 44.1k SRC, a safety limiter, 16-bit dither, and 16-bit truncation to the 64f/96k file to generate a 16/44 temporary file and then split it into tracks, with all the processing set up in advance and saved as part of the render preset?

If it did that, Plec’s idea would be akin to having one “All Masters” preset that told Wavelab to take that one album-length audio file (either rendered manually like Justin described or rendered behind the scenes as a first step) and then for each desired output format apply a preset processing chain (e.g., SRC > Limit > Dither > Truncate) and file format conversion that you set up in an expanded multi-output render preset.

In other words, if you had your 64f/96k montage consisting of a single file and wanted, e.g., 5 different output formats, you would select that multi-output preset and WaveLab would apply the specified chain (SRC > Limit > Dither > Truncate) for each necessary SR/BD combination to render temporary files, then do the file splitting and format conversions and put them into specified folders.

WL can already do all of those things. It’s just a matter of how the user tells WL to do them…in one step, in the batch processor, by creating several montages, etc…

Yes. I developed this idea out of necessity (not knowing others were doing it) when a gapless transition for an album I was working on was OK in a DDP render, but not OK in a track by track WAV render. This was way back when I was working at 44.1k most of the time.

Either way, because the audio in a DDP is technically one long render, it caused me to discover that doing a full render first to lock in the plugin processing before rendering track by track solved the issue so from then on out, I did it that way. It only make more sense when working at higher sample rates now too.

It was interesting to learn that users of other mastering software such as Sequoia and SoundBlade (RIP) were doing a similar thing.

With a predefined/reusable batch processor, no such need.

1 Like

Right. I think we are all starting to talk about slightly different things and concepts here so I am going to stay silent on the topic from here on out.

I think WaveLab’s Custom Montage Duplicate feature works great, and it sounds like there are some sample discrepancies if you take some gapless files that are floating point/high sample rate and convert them down to 16-bit/44.1k using the WaveLab batch processor. Also, using that method means re-assembling everything for any DDP needs so therefor, I think WaveLab’s Custom Montage Duplicate feature is the best option, is very fast to use, and gives you the most control, flexibly, and easiest way to test/check everything before rendering instead of leaving things up to fate and chance with a Batch Processor.

This is exactly what happens with the procedure I have described previously:

Given a high-resolution render of the whole montage, with CD markers, use the Master Section on that file to generate individual titles with a lower resolution.

But how can metadata be incorporated if there is no CD-Text to pull from when rendering individual files? Plus, you have to manually save and think about your dither settings which can’t be easily stored and recalled like you can with a .mon file.

2 Likes

I think this is the main point of this discussion. If you use the batch convertor to change the sample rate and bit rate of a gapless album then there are some sample discrepancies when you piece the files back together again. Which I discussed in my earlier post.

2 Likes

Yes. Between that, metadata injection (from montage data), total recall of your dither (and any true peak-limiting before dither if needed), and other things, I’ll never NOT render each format from a proper montage of the same sample rate (using the Custom Montage Duplicate) which lets me have control, flexibly, peace of mind, and it’s still very fast to do once you get in the groove.

Yes, agreed.

But it is interesting that RX can batch the sample rate and dither and still retain perfect gapless playback. So there is perhaps room for improvement in the Wavelab batch processor.

1 Like

You mark a point here. I forgot about this.

Everything is saved in a single Master Section preset (or in a batch processor).

Philippe

True. But, you would still have to load multiple master section presets, one per set of sample rate and bit depth. I’m with Justin…I think that leaves too much room for human error. Also like Justin, I pretty much never touch my master section preset unless I want to add another meter or something.

The method Justin describes (which I flat-out stole from him and use…thanks, Justin) saves all of the settings with each montage…you just wind up with a few per project. It’s not that big of a deal, since you’re unlikely to get revision requests after you create all of those montages with format-only processing (for clarity: SRC > Limit > Dither > Truncate as dictated by the format).

The way I described with incorporating those (generally fixed or at least pre-determined) processing chains into the render presets would accomplish the same thing without having to manage several montage files. You would just have 2: one “working” montage with all of your processing and a second one with all of that processing printed that can quickly export all of the formats you need.

It would be simpler than Justin’s method.

It would be even simpler if the montage incorporated a “printed” or “rendered” full-length track in the same montage, similar to people who capture into a new track with other DAWs. The way I would imagine that working would be similar to the “Create Audio Montage from Result” rendering option, but that creates a “Rendered” track that works kind of like the way Reference tracks work.

1 Like

Second thought… in fact, a good solution is to render the whole montage with the following options and the resampler + limiter + dither in the Master Section. That will create a single continuous clip, with all proper markers, hence without possible problems at the old clip edges. All CD info and metadata are imported in this case (that was not the case a few years ago).

Then this time, for eg. a 44.1k montage with markers and metadata, it is possible to generate single audio files in the desired formats.
The solution proposed by @Justin_Perkins is, however, necessary if you want to resample outside WaveLab.

I think this match exactly what @Plec81 wanted, no?

image

I’m not sure to be honest. I’m probably the wrong person to ask because I think it works great right now.

I would consider the Audio CD Report to be in more need of improvement than this area :slight_smile: