Added
Audio
- A new "Microphone Access" setting in Mic Setup lets Velum take sole control of your audio interface while you record; it is off by default, it buys provenance rather than better-sounding audio, and while it is on nothing else can reach your microphone, so leave it off if you record over a call.
Export
- Velum now brings its own audio encoder, so exporting works on a computer with nothing else installed, where before it failed on any machine without ffmpeg already on it.
Installation
- The Windows and macOS installers now show the End User Licence Agreement and ask you to accept it before Velum is installed; the Linux packages have no install-time step that can present it, so there it is still only on the website.
Timeline
- A new "Show Offline Media..." item in the app menu brings back the list of clips Velum cannot play, with the track and full path of each, and is safe to open in the middle of a take.
- A take recorded with gaps in it now carries an amber warning mark beside its name that is still there the next time you open the session, though only takes recorded from this version on can carry it.
Changed
Export
- Re-exporting will not give you back a file you have already delivered. Two corrections change the audio itself in the exports they apply to. Unusually wide peaks — a shout, a laugh, a door slam — now reach the limiter at their real height instead of being cut off square before it, so they are brought down properly rather than distorted, the moments immediately around them are a little quieter as a result, and overall loudness moves down very slightly. Separately, where an export's rate differs from the rate you recorded at, the peak is now controlled after the conversion instead of before it, and an ACX export is about a decibel quieter at its loudest moments than it was. If you have already delivered an affected file, the new export is the better one, but it is a different file rather than the same file corrected. An export that was not being cut off, made at the rate you recorded at, is unchanged byte for byte.
Recording
- Recording over a clip now leaves both clips there, overlapping, and you will hear both. It used to cut into the clip underneath — trimming one end, splitting it in two, or, where the new take covered it completely, taking it off the timeline for good, with nothing on screen to say so. That last one is the one an ordinary session reached most easily: going back to re-record a line you fluffed, with the second attempt a little longer than the first, removed the first permanently. Nothing is deleted now, and Velum tells you when an overlap happens rather than letting you find out on playback. Where the overlap is nearly total the crossfade between the two is nearly total too, so a re-recorded line can sound like both versions at once until you move or delete one. If you were relying on the old behaviour to tidy up after you, use punch and roll instead — replacing a stretch is what it is for, and it is unchanged.
Character References
- Every character reference made before this release was lost when Velum closed, and they will need making again. The list they live in had never been written to disk on any computer, so the only copy was the one held in memory. The recordings themselves were not lost: they are in the "Character References" folder inside your workspace, named after the character, and you can play them or import them from there.
Auditions and export file names
- What your auditions are called has changed, on your own disk and on the casting director's dashboard. Every audition anyone has ever submitted went out as ProjectName_Character_YourName — placeholder text, the same on every casting call. Velum now builds the name that placeholder was describing, so an audition for Narrator on The Long Dark is delivered as The_Long_Dark_Narrator_Jane_Smith.wav, taking your name from the Display Name in your preferences or from your account email address if that is empty. Exporting twice under one name no longer replaces the first file either, so a second submission for the same casting call is named with _2, _3 and so on — and the director sees that number, because the name shown beside your audition on their dashboard comes from your export. The audio they receive is unchanged.
Remote collaboration
- Any access keys you have saved under Saved Connections need collecting again. Your own key used to change every time you opened the Connect panel, so a key you copied and sent to a director was one you no longer answered on by the time the panel closed. It now stays the same for as long as Velum is running — but it still changes when you restart, so a key you have shared is good for that run of the app rather than forever.
Removed
Audio devices
- The "usbstream" entries have gone from the microphone list, and if you own a Tascam US-122L, US-144, US-224 or US-428 that entry was how your interface worked. Please say so if it was: giving it back properly means asking the device what it can do rather than making an exception for a name. The entry exists for that one family of interfaces from the mid-2000s, but the sound system published it for every sound card in the computer without checking what the card was, and on anything else choosing it never recorded a thing.
Fixed
Recording
- A punch & roll take now stops and names the reason the moment its recording file cannot be created, instead of arming the transport and letting you perform the whole take into nothing.
- Closing the Character References window now ends a capture in progress and deletes its temporary file, which used to grow at around 11 MB a minute; this discards the capture, so stop and name it first to keep it.
Timeline
- Waveforms are now drawn at their true position for the first 30 minutes of a file, where anything past 100 seconds used to be squeezed into the clip's first 100 seconds, putting every peak in the wrong place while looking perfectly plausible.
- Timeline keys now wait until an open panel is closed, so Delete no longer silently deletes the clips behind it and R no longer starts a recording you cannot see; play and stop still work, because stopping a take should never depend on which panel is in front.
- The "Delete Track" confirmation now opens with Cancel focused, where pressing Enter anywhere at all used to delete the track and every clip on it.
- Escape now closes a panel without emptying your clip selection.
- Switching auto-crossfade off never protected a clip from a take recorded over it; it only decided how much survived at the cut, about ten milliseconds with it on and none with it off.
- A gap selection is now cleared whenever the session changes, so Delete with Ripple on can no longer close a much larger gap that has moved under the highlight.
- Dragging several files onto Velum now imports all of them, in the order you selected them, instead of importing the first and silently discarding the rest.
- Dragging one file onto a track no longer puts it on the timeline twice, one clip invisibly on top of the other, which an export summed.
- Where you let go of a drag now decides where the file lands, rather than the last panel it happened to cross on the way, and a second file dropped within half a second of the first is no longer discarded.
- A fade edge handed back to auto-crossfade no longer pins itself again the next time you move the clip.
- Renaming an audio file, or replacing a clip's audio with a higher-quality version, no longer leaves the old name drawn on the clip.
- The "+" button that adds a track, and the playhead, no longer move when you turn the video panel on.
- The offline media dialog now says only what Velum can know: that your session is unchanged and that it cannot play those clips at the moment.
Playback
- A session now plays as soon as it opens, where opening a saved one and pressing play used to do nothing at all, with no message anywhere.
- Imported MP3, FLAC and M4A files now play for as long as the file is where you left it, instead of falling silent after the session was reopened or your audio device changed — which also left a gap in any mixdown containing one.
- A WAV file whose header claims an impossible recording rate is now refused and named in the offline media list when the session opens.
- Moving a fader no longer makes the audio path stop to release memory, which could leave a click or a short dropout in a take you were recording.
- The MASTER meter now shows its empty channel from the moment Velum opens, at the right size for your interface; it was being drawn correctly all along and thrown away before it reached the screen.
Export
- The ACX, Spotify and Apple Podcasts presets could not export at all and now work, with ACX delivering the 192 kbps 44.1 kHz mono MP3 it asks for.
- Every ACX export used to land above ACX's peak limit and would have been rejected on submission, the two it was found on by 2.8 dB and 0.9 dB; they now come out between -3.2 and -5.0 dBFS, with loudness inside ACX's -23 to -18 dB range.
- Velum still does not check a finished file against the standard its preset promises, so an unusual take could still land above the limit with nothing said.
- Saved presets now carry the standard they were saved from, where saving ACX under your own name kept the format and quietly dropped the specification; presets you saved before this update carry no standard, so save them again from the standard if you want it.
- An export too large to write is now refused up front, where a long timeline could close Velum part way through and take every unsaved edit with it; no WAV can exceed about 4.29 GB, or roughly 6 hours of 48 kHz mono.
- A selected range running past the end of your audio is now treated as a shorter range, instead of failing with "Task panicked" or being refused as too large.
- Only one export runs at a time, where two together could both choose the same file name and both write it.
- Exporting twice under one name no longer replaces the first file, and a name ending in _temp is no longer destroyed by a later export named the same thing without it.
- Velum now tells you at startup if its encoder is missing or blocked, rather than failing your first export with a message that pointed at your own audio file.
Saving
- Choosing "Save & Close" now keeps Velum open and shows you why if the save fails, instead of closing anyway and taking everything you had done since the last successful save.
- A failed automatic save now stays on screen, instead of being replaced a moment later by a message saying the edit had been made.
- Saving a session to a new folder no longer deletes the original: any session whose path contained "velum_temp" was mistaken for Velum's scratch workspace and removed once the save finished, losing its backup history and its Exports folder while reporting success.
- That same mistaken check also broke Ctrl+S, the UNSAVED indicator, backups, recording-settings warnings and renaming for those sessions; all five now make the genuine check.
- Paths are now compared a folder at a time, so a clip no longer starts playing the wrong recording after a Save As because a folder called "Audio2" counted as being inside "Audio".
- Renaming a session now updates every clip inside the session folder, however deeply it sits, where recordings outside "Audio" were left unplayable and listed as missing.
- Clips in the "Media" folder are now updated on a first save too, where a file such as an AIFF used to come back missing with its position, fades, gain, colour and name gone.
- A session with a folder inside its "Audio" or "Media" folder can now be saved to a new location, instead of being refused outright with no way through.
Settings
- A settings file Velum cannot read is now left alone, and Velum runs on factory settings for that session only, where it used to overwrite the file immediately and take your workspaces, export folder, script folder, contacts, profile and device choice with it.
Audio devices
- Velum now looks for the device you chose and nothing else, where loose name matching could quietly put you on a different microphone — and on Linux, where a card number moves whenever you plug something in, you found out in the edit.
- If your chosen device is missing, Velum now names it, says what it is using instead, keeps your saved choice rather than overwriting it with the replacement, and leaves the message up until you dismiss it.
- The lists no longer offer things that are not microphones or headphones, such as the rate converters and "discard all samples" entry Linux publishes alongside your hardware; if one was your saved device, Velum falls back to the system default and tells you.
- Every row now names your hardware in front of the technical name, in the headphone list as well as the microphone list, which never named hardware at all.
- The lists are now grouped, with the routes you should normally use under "Recommended" and the ones naming a sound card by its position marked "(card number may change)".
- A sound card that appears twice, once direct and once through your system's converter, now says which row is which.
- "(Recommended)" beside your speakers is no longer saved as part of the device's name, and an existing setting is repaired the first time Velum opens after this update.
- Recording from a sound card directly no longer cuts takes short after twenty seconds to a minute: Velum asked for a ten-millisecond buffer and now asks for up to about a hundred and seventy, which changes nothing you can hear.
- That failure also left a processor core running flat out until you quit; Velum now rebuilds the microphone connection after stopping the take, and gives up after three failures in a minute rather than retrying in a loop.
Audio
- Velum no longer calls itself connected when only playback has come up, showing a red message about the missing microphone and a green one saying all was well at once; it now says "Playback connected ... No microphone input" and refuses to record.
- While Velum has no microphone, opening Mic Setup restarts the audio engine on purpose — that is the retry, and a device that will not start on one attempt often starts on the next.
Assets
- Importing a file into a folder that already holds one of the same name now puts the new one beside it as "Take (1).wav" instead of replacing it, by every route in.
- Adding a file to the Global Library or to Workspace Assets while browsing the folder those live in no longer empties that file to nothing and reports success.
Workspaces
- Duplicating a workspace folder containing a shortcut now copies what it can and tells you what it could not, where it used to fail and leave a half-finished copy indistinguishable from a real one.
- Duplicating onto a name already in use is now refused, where it used to merge the two folders and report success — and duplicating an item onto its own name emptied every file in it.
Auditions
- Characters a file name cannot hold are now dropped from a project title or character name before they reach the export, where a casting call titled something like "Bob's Diner: Ep 2/3" would have refused every actor's submission.
- Velum no longer claims your audition is encrypted or "securely vaulted"; only the wording has changed, because none of it was ever true.
- The bug report window said the same and now says plainly what it does — note that the attached logs still contain your session paths and device names, and Velum does not show you them before they are sent.
Character References
- Saving and deleting a character reference now work, where Velum had never created the folder it keeps the reference list in.
- A failed save now leaves your recording in place to retry, and a failed delete now deletes nothing, where it used to erase the audio before saving the list.
- The list on screen no longer disagrees with what is saved.
Crash recovery
- Velum now checks whether a folder genuinely is its scratch workspace rather than whether the name resembles one, where a session called something like "Velum_Templates" had its crashed recordings silently ignored.
- Crashed recordings are now looked for across your workspaces rather than only the last session you had open, and are offered one at a time if more than one is waiting.
- A recording too long to be saved as a WAV no longer stops Velum from starting, on that launch or any after it; it is renamed out of the way and reported once, and nothing is deleted.
- A recording rescued from a crash no longer lands on the timeline and plays nothing when Restore Session is pressed before the audio engine has finished starting.
Messages and updates
- Red and amber messages now stack and stay until you dismiss them, where one arriving in the same instant as another replaced it before you could read it.
- The dialog asking you to acknowledge a serious problem now closes only when you close it, where any ordinary message arriving afterwards used to dismiss it.
- Warnings about a take overlapping existing clips, and about a recording that could not be paused, now stay on screen instead of being destroyed by "Take saved to timeline".
- One failure is now one message, where it could produce two identical red ones and push older messages off the six-message limit.
- A green "done" message is no longer thrown away because a warning appeared in the previous few seconds, which used to hide "Project Saved", "Clip removed" and "Mixdown Exported" while the action itself had worked.
- This covers messages raised through Velum's reporting channel; preferences, project import and export, session rename, video loading and remote connection still report their own failures, and those still fade after a few seconds.
- An update that installed correctly no longer reports failure, Velum restarts itself afterwards, and the title-bar button now shows download progress and calls a failed download a failed download.
- Entering your licence key no longer says "Invalid or expired license key" when the fault is at our end, verification gives up after ten seconds instead of hanging, and a key already active on another computer is now named as a possibility.
Remote collaboration
- A recording of the incoming stream now arrives as a clip on its own "Remote Stream" track, where it was written to disk and referred to by nothing in Velum; its position means nothing, because nothing lines the two machines up.
- Two high-resolution transfers arriving at once are now both refused and named, where one used to be saved under the other's name, made of pieces of both, and reported as saved.
- A transfer that stops part-way through is no longer padded with silence and saved at its full announced length, and one that cannot be saved at all is now reported rather than sent to a log you cannot open.
- A high-resolution recording arriving from the talent is now matched to its take by name, though the two still do not meet, because the transfer is named by the machine that sent it.
- Velum now notices when a remote session drops and shuts it down properly, "Connected" no longer appears before there is a connection, and hanging up now tells the other person.
- You can now select and copy your access key, where clicking it said "Copied!" without copying and it could not be selected by hand either.
- None of this makes remote sessions work. That part of Velum is still being built, several pieces of it are known not to work, and no remote session has yet been observed working end to end.
Diagnostics
- "Copy to Clipboard" in Help now tries a second route when the first is refused and selects the log for you if both are, where it used to copy nothing and say nothing.
Project Manager
- Session and folder tiles are now sized to their contents, so the name and Modified date underneath are no longer cut off, and the panel scrolls once there are more than fit.
Website
- Auditions and delivered files now play everywhere they appear, where every player asked private storage for them over the public address and nothing played for anybody, actor or casting director.
- The Download Shortlist button now works and names each file after the character and the actor.
- Each audition now has its own download, arriving under the name shown beside it, and a page whose audio was removed after 30 days now says so instead of showing a player that does nothing.
Security
Remote collaboration
- Velum no longer listens on a channel shared with other people's copies of Velum. The Connect panel listens for incoming calls on a channel named after your access key, and when it could not get that key it substituted the word ERROR and listened on the channel named after that — the same name on every machine in that state, so any of them could ring any other, and answering opens a camera. The only sign was those five characters, and only if you had pressed Reveal Details. Velum now listens on nothing when it has no key, shows the key as "Unavailable" instead of a word that looks like one, and tells you it cannot receive calls.
Added
Export
- The Export panel now has a File Name field, used exactly as typed, with the track name added after it for stems. A typed name carries no date and time, so exporting twice under one name replaces the first.
Timeline
- Shift-drag along the ruler now sets an export range, snapping to clip edges and markers, and leaves the playhead at its start.
- Right-clicking anywhere on the ruler now opens the ruler menu, where Export Range lives; previously only an existing range opened it.
- The app menu has a new "Scan for Offline Media" item, which re-checks every clip's audio and updates the timeline. It re-tests the paths your project already holds, so it finds files you have put back; it cannot yet point a clip at a file you have moved somewhere new.
Fixed
Assets
- Adding a file to the Global Library appeared to work but nothing ever showed up. The library now lists everything you have added, including from before this update.
- On Linux systems without an XDG user directories configuration, adding a global asset failed outright with an internal error; it now succeeds there as anywhere else.
Audio devices
- Unplugging your microphone part-way through a take went unnoticed — recording carried on and saved a normal-looking take, silent from the moment the device went. Velum now stops the take and saves what was captured, at its real length.
- On setups where a disconnection cannot be detected directly, a take could go silent with nothing said until you played it back. It is now flagged while the take is still running.
- Takes did not record whether they had clipped. They now do.
- A warning that your input had gone quiet was indistinguishable from a failure that ended your take. Messages that warn without stopping anything are now amber rather than red.
- Switching audio host could leave the previous host's devices listed as the new host's, with nothing on screen saying so. The list is now emptied and the reason shown.
- Recording a character reference could start against an audio device that had failed to reconnect, and saved an empty file. It is now refused, with a message telling you to restart the audio engine.
Auditions
- Every audition submission failed with a message asking you to sign in on the Velum website, which the app had no way of seeing; you can now sign in to your Velum account under Preferences > Profile, and submissions use it.
- Submitting a replacement audition left the recording it replaced in Velum's storage with nothing pointing at it. The one being replaced is now removed, once the new recording is safely stored.
- Your submitted auditions were listed by storage name rather than by file name, in your own dashboard and in the casting director's review panel. Both now show the name of the file you exported.
- An audition exported as MP3 was uploaded to Velum labelled as a WAV file. It is now labelled as what it is.
- The sample-rate warning for an audition was reading your playback device's rate rather than your microphone's, so where the two differ it stayed hidden; it now reads your microphone's own rate. If you submitted an audition with a required sample rate and saw no warning, check the file you sent.
- Re-recording an audition the casting director had already funded replaced the audio they had paid for and deleted the original from Velum's storage. Submitting again is now refused, with the reason shown; re-recording before a director has acted on your audition still works.
Crash recovery
- A recording's metadata file that could not be read after a crash was deleted, losing the record of which track the audio belonged on. It is now kept as a
.json.corrupt, and the track and position are read from the recording's filename. - Choosing "Restore Session" after a crash carried on even when the crashed session could not be opened, dropping the clips into an empty project. It now stops and leaves the recovery dialog up so you can try again.
- If Velum crashed or was quit part-way through a take, the recovery dialog never appeared and the take was never offered back, on that launch or any afterwards. Crashed takes are now detected and offered, and any stranded on disk will come back at the first launch after this update.
- A take the crash dialog had recovered was only ever offered once: Discard, closing the window, or another crash before you answered left it unreachable. An unanswered take is now offered again the next time you open that session, and takes stranded before this update are in the session's Audio folder under a name beginning
Recovered_. - Discard closed the dialog without recording your answer, so a take you turned down looked like one you had never been shown. Discarding now marks the take as answered, and still deletes nothing.
Diagnostics
- Bug reports and the log in Help contained only interface messages, and nothing from the audio engine, file handling or crash recovery. Those are now kept in their own log file and included alongside the existing one.
Errors and messages
- Almost every error message in Velum displayed as "[object Object]". Errors now say what went wrong.
- The diagnostics log recorded "[object Object]" as well; it now records the same messages the screen shows, so a bug report submitted before this update may carry nothing usable about the failure it reported.
- An error could be overwritten by the next "Saved" or "Ready" almost immediately. Errors now stay on screen for at least four seconds before a routine message can replace them.
- Errors are now prefixed "ERROR:", matching the messages that already were.
- Failing to promote or delete an asset, and failing to load the Libraries panel, were not reported at all. All three are now reported.
- Opening a folder Velum could not read reported "Access Denied or Invalid Path" whatever the actual cause. The message now names the real one.
- A session that was created but then failed to open reported "Failed to create session", which was not true. Creating and opening are now reported separately.
- A failed software update reported "Unknown error" instead of the reason, which was available. The reason is now shown.
- The dialog reserved for serious failures was chosen by matching words in the message text, so pressing Play before your input device had connected raised it. A mistimed keypress now shows an ordinary message; a damaged or cut-short take still stops you.
- A failure serious enough for that dialog could be cleared by the next routine "Saved" or "Ready" happening behind it. It now stays until you dismiss it.
- Exporting the diagnostics log from the Help window reported "Export Failed" and nothing else, though Velum knew the reason in every case. The reason is now shown and written to the log.
Export
- Exporting a mixdown produced a silent file, with every recorded take missing from it; exports now read your recordings from disk. Any mixdown you exported before this update is silent and needs redoing.
- Audio whose sample rate differs from the session's is now converted as it is exported, rather than written sharp and short.
- The loudness analyser reported -90 LUFS on every session and failed every ACX check, measuring the same empty mixdown the export produced. It now measures what the export actually contains.
- Exports ignored everything you had set on a clip: gain, mute and fades were all left out. All three are now applied.
- Where two clips overlap, exports played both at full volume, so that stretch came out up to 6 dB louder. Exports now crossfade as the timeline does.
- A non-WAV file imported and exported in the same session came out with its left channel copied onto both sides, losing the right channel entirely. Both channels are now exported.
- Exporting a range with Stereo selected exported the wrong stretch: a range set from 0:10 to 0:20 delivered 0:20 to 0:30. It now delivers the range you asked for, and the YouTube, Spotify and Broadcast presets all select Stereo.
- Exports and the loudness analyser were up to 3 dB louder than the timeline plays; both now use the mixer's own pan law. With normalisation off, files exported after this update will be around 3 dB quieter than the same session exported before it — that is the correction, not a new fault.
- A track whose fader is at or below -60 dB is silent on the timeline but was still mixed into exports. It is now silent in exports too.
- The Export panel closed itself when an export failed, exactly as when one succeeds, taking everything you had set up with it. It now stays open on a failure.
- Track effects were not applied to exports at all, so a take you had gated and compressed was exported raw; exports and the loudness analyser now run the chain in the order you arranged it. Anything exported before this update with effects on a track needs redoing.
- The track fader is now applied after a track's effects rather than before them, as the timeline has always done.
- A damaged or incomplete audio file could put the wrong audio into an export — a different part of your own recording, in a file that reported success. Velum now re-opens a file it can no longer track its position in.
- An export with a gap in it looked exactly like a clean one. Exports now record which files they could not read, and how many frames came out silent, in Velum's log.
- Exporting a mixdown that could not read part of your material still reported success; you now get an amber warning naming the file and the silent seconds.
- Solo is deliberately not applied to exports and still is not; mute still applies. Unsolo before exporting if you want the timeline and the export to match exactly.
- The loudness analyser's numbers will move for any session with a compressor on a track, and its ACX verdict may change with them.
- Exporting a range that contains nothing reported success and wrote a file with no audio in it; Velum now says the range is empty and writes nothing.
- A failed export left a partial working file behind in your export folder, one character away from the real one; failed exports now clean up after themselves. If ffmpeg is not installed every export left one, so there may be a number to delete once.
- Exporting individual tracks as separate stems could deliver fewer files than you selected: two tracks sharing a name wrote to the same filename and the second overwrote the first. Stem filenames are now made distinct before any is written, and stems from one export share a single timestamp.
- An audition for a project whose casting director has not set a file naming convention was delivered as a file called
.wav, with nothing at all before the dot. It now uses Velum's usual export name. - Right-clicking a clip and choosing "Quick Export Clip(s)" exported your whole mix over whatever range you had set on the ruler. It is now "Export Clip Range..." and exports the range spanning the clips you right-clicked, so anything else audible inside it is included too.
- Exporting and loudness analysis failed with "Audio engine not initialized" while your speakers or headphones were disconnected. Neither asks for an output device now.
- A mixdown containing an audio file you had imported at a different sample rate from the session's exported it about 8.8% fast and a semitone and a half sharp; it is now converted. Re-export any mixdown containing an imported file.
File browser
- External drives and other mounted volumes were listed under DRIVES and then refused when you opened one, including Root (/) and every Windows drive letter. You can now browse, preview and import from any drive.
- Errors in the file browser displayed as "[object Object]", which is why the problem above looked like the drive was unreadable rather than refused. Real messages are now shown.
- Files and folders with two dots in the name —
Season 1..2, v1..final, Take..2.wav — were refused, taking everything inside such a folder with them. Names like these are now read as names.
Importing audio
- An imported
.m4a played back around an octave high and at twice speed, and arrived on the timeline at twice its true length; a file imported after this update is correct. A clip already on a timeline keeps the wrong length; delete it and drag the file in again, one re-import per file. - Dragging a stereo
.ogg onto the timeline failed with an internal error and nothing was imported. Ogg files now import.
Media playback
- Audio and video did not play anywhere Velum streams them through its own player: the file browser put "Error" where the player should be, and video references never appeared. Both play now.
- Files whose names contain accented letters, commas, ampersands or other characters outside plain English still will not play; that is a separate fault, not fixed here.
- The file browser still offers a preview it cannot play for .ogg, .oga, .aac, .mkv, .avi, .m4v and .ogv; Velum's player handles WAV, MP3, M4A, FLAC, MP4, MOV and WebM.
Metering
- The MASTER meter beside the master fader never moved, at any level, at any point in the life of the feature. It is now connected to the mixer's own output levels and moves with what you hear.
- The master meter shows post-fader levels, so pull the fader down rather than up to check it — the safety limiter holds the top of the scale.
- The master meter is deliberately still when the transport is not running; the meter in Mic Setup is the one that follows your microphone.
- The input meter would have shown a level it could not read as full scale with the clip indicator lit, rather than as silence; it now shows silence, though the engine has never sent such a level.
Playback
- A trimmed stereo clip started in the wrong place and ran out before the clip ended. It now plays from where the trim asks.
- Playing a damaged or truncated audio file could put a sudden, very loud burst through your monitoring, thousands of times louder than full scale; Velum now stops reading a file the moment it fails to decode and passes nothing but audio to your outputs. If you monitor on headphones, this is the reason to take this update.
- Playback of a damaged file continued with whatever the remaining bytes decoded to; only the unreadable part is now silenced.
- A single bad sample from a damaged file could permanently silence all playback for the rest of the session, with quitting the only way out. That can no longer happen.
- An audio file you had imported at a different sample rate from the session's played about 8.8% fast and a semitone and a half sharp. It now plays at the right speed and pitch.
- Renaming a clip silenced every piece of imported audio in the session, with nothing on screen to say so and no way back short of deleting the clip and importing the file again; renaming now leaves all of it playing. This is the rename case only — reconnecting or switching an audio device still empties that memory.
Recording
- Punch & Roll could be started but never stopped — no stop button, no moving timecode, Space and Escape did nothing, and pressing record started a second take on top of the first. It now stops like any other take, from either the record button or Shift+D.
- Losing your microphone part-way through a punch take, or the audio device changing underneath it, could not stop the take either. Both now end a punch take and save what was captured.
- Punch takes stranded by this are still on disk and will be offered back by the crash recovery dialog the next time you launch into that session.
- The interface claimed to be recording during the pre-roll; the recording indicator, the red block on the timeline and the live waveform now all begin at the punch point.
- Stopping a punch take during the pre-roll failed with a message naming a recording file that had never been created, or blamed your microphone. Velum now says plainly that the take was stopped before the punch point and nothing was captured.
- A take recorded faster than your disk could accept was reported in red, as though it had failed when it had saved. It is now an amber warning that names the take and stays until you dismiss it.
- Takes were recorded at your microphone's sample rate and saved claiming your playback device's, so where the two differ the take came out at the wrong pitch and duration; Velum now labels a take with the rate it was genuinely captured at. Nothing repairs a take already on disk, but the Diagnostics log records both rates on the line beginning "Initializing audio streams".
- Abandoning a punch take left the punch itself armed, so the next time the playhead crossed that point Velum started recording there — during playback, or part-way through a different take, cutting it off. Stopping or pausing now cancels an armed punch; scrubbing does not.
- Typing into a text field fired the recording shortcuts: the letter r was silently dropped from a session name, a file name or a password and started a take behind whatever you were typing into, and during a take a typed space or Escape stopped it. Shortcuts no longer fire while you are typing.
Script editor
- Saving a script never worked at all: every save, including Save As, failed with "Write path outside permitted directory". Scripts now save anywhere in your home folder.
- Velum saves script formats only (.fountain, .txt and .md), but reported a path error rather than saying so. It now says so plainly, and Ctrl+S on a PDF or Word document in the Script Reader can no longer overwrite it with plain text.
- A save that is going to be refused no longer creates its folders on the way to refusing it.
Sessions
- Clips Velum cannot play are now named when a session opens, with where each one points, instead of sitting silently on the timeline. Reopening currently reports every clip that is not a WAV, including imported MP3s that played before the session was closed — those genuinely produce no sound after a reopen.
- A clip whose audio went missing while the session was open played nothing and said nothing — no message, no dialog, and a waveform still drawn on the timeline. Velum now names it and the file it can no longer read, as an ordinary status line the first time playback reaches the clip.
- A session containing audio from outside your home folder could not be reopened, failing with a message saying the project file may have been tampered with. Sessions now open wherever their audio lives, and any stranded this way will open with nothing lost.
- Opening or creating a session from the Project Manager reported "Session opened successfully" and closed the window even when it had failed to open. Failures are now reported.
- Picking a session from the file browser could raise an audio settings mismatch warning for the session you had open before, if the one you picked failed to load; a failed load no longer raises it.
- Saving a project overwrote the project file in place, so a failed or interrupted save — a full disk, an I/O error on an external drive — left the project gone. Projects are now written to a temporary file and put into place only once complete.
- Renaming a session folder was the worst case of the above: the folder had already been moved by the time the project file was rewritten. It is now written the same safe way.
- Using Save As on a folder that already held a session replaced its project file and overwrote any takes that shared a filename with yours. Velum now refuses and asks for somewhere else.
- Choosing "Save & Close" and then picking a folder Velum could not save into closed the app anyway and deleted the unsaved session. The failure is now reported, Velum stays open, and the folder picker stays up.
Timeline
- Splitting a clip left the second half with no waveform drawn in it at all; trimming a left edge did a milder version of the same. Both now draw the right part of the waveform.
- After a split, the second half's waveform takes a moment to appear while it is read from the file; that is normal.
- Fades you set by hand were destroyed by the next edit you made anywhere in the project, including on tracks you were nowhere near. Velum now remembers which fades are yours and leaves them alone.
- Turning Auto-Crossfade off meant your fades were deleted on the next edit with nothing put in their place. They now survive it.
- Fades you set by hand in projects saved before this update are recovered when the project is opened, wherever Velum can tell they were yours. A fade sitting exactly where an automatic crossfade would also have gone stays automatic.
- Splitting a clip did not preserve a fade set on it. The fade now stays on the outer edge of the half it belongs to, and the two new edges are free to crossfade.
- The clip right-click menu has a new "Hand Fades Back to Auto-Crossfade" item; dragging a fade handle all the way down now sets that fade to nothing rather than removing it.
- Pressing Delete on a selected gap in ripple mode could show a red "Not found" error when nothing had gone wrong — the gap had simply stopped existing. Velum now says so plainly.
- A clip whose audio Velum could not play looked exactly like one whose waveform had not finished loading, and the warning about it disappeared as soon as you dismissed it. Offline clips are now marked on the timeline for as long as they stay offline, whether they were offline when the session opened or went offline while you worked.
- Putting a missing file back and running Scan for Offline Media cleared the offline mark but left the clip's waveform blank until the session was reopened. The waveform is now redrawn as soon as the scan finds the file.
- A clip whose audio file had gone missing kept drawing its waveform and looked playable; offline clips are now repainted in the error colour with a tiled offline marker across the body, and draw no waveform, gain line or fade curves. Nothing is lost — the clip is only drawn differently until its file comes back.
- Dragging a clip's right edge could stretch it past the end of its own audio, and the extra ran as silence — most easily on a clip whose waveform had not loaded or whose file was missing. A clip can now only be shortened when there is nothing to measure its source against.
- Fades you set by hand appeared to revert, or to vanish, after a few edits, because the clip was not repainted when a fade changed. Fade lengths and curves now repaint it.
- Clicking and holding a clip made a hand-set fade on another clip on the same track jump back to an earlier value until you let go. Those values are now read at the moment you press.
- Renaming a clip did not change the name written on the clip until something else about it changed. The label now updates straight away.
- A clip came loose from the pointer as soon as the timeline scrolled underneath it, and so did trimming an edge, dragging a fade curve or a gain line, and dragging a selection box. You can now hold a clip, scroll to wherever you are taking it, and drop it there.
- While you are dragging a clip, waveforms a long way from where the drag started may be blank until you let go; everything reappears the instant you drop.
- Clicking a clip highlighted nothing until you moved the mouse, and clicking empty timeline left the previous selection still drawn. Selection now shows the moment you press.
- A clip could be left slightly out of place by a press you never moved, if the view scrolled before that first movement. The pointer position is now noted when you press.
- Clicking a clip counted as an edit: it marked the project as changed and cleared the redo history, so the first Undo after a click was spent undoing the click. A click now selects the clip and does nothing else.
- Clicking near the top-left or top-right corner of a clip switched that edge's automatic crossfading off, permanently and with no sign of it; those corners no longer set a fade by accident. Edges pinned this way can be released with "Hand Fades Back to Auto-Crossfade" in the clip's right-click menu.
- A gesture that ended where it began counted as an edit in the same way — dragging a clip and putting it back, or trimming an edge and returning it. Velum now compares the project before and after the gesture, and does nothing if they match.
- Nudging a clip already at the very start of the timeline counted as an edit, and holding Alt+Left repeated it at the keyboard's repeat rate. A nudge that cannot move the clip now does nothing.
- Setting a clip's colour to the colour it already had counted as an edit in the same way, as did Clear on a clip with no colour. Neither does now.
- Opening a clip's rename dialog and pressing Save renamed the file on disk whether or not you changed anything, took every other clip on that file with it, and left undo pointing them at a name no longer there. A clip's name is now a label, and nothing in Velum renames a file on disk.
- Renaming a clip on a locked track was allowed, unlike every other change to a locked track. It is now refused.
- A clip trimmed shorter could never be dragged back out once its file had gone missing and the session had been reopened. Velum now records how long a clip's audio is when the clip is made, so it can be restored to full length. Clips made before this update carry no such record and still depend on their waveform being drawn.
Website
- Replacing an audition on the website could delete the audio of your other auditions, because auditions submitted from the desktop app before the previous update all point at the same file. The website now removes a recording only when it can prove it belongs to the audition being replaced; anything already lost cannot be recovered.
- Submitting an audition for a role you had already auditioned for was correctly refused, but the recording had been uploaded by then and nothing removed it. The upload is now cleaned up.
- Auditions submitted from the browse page or a talent profile page are now listed by file name rather than by the storage name. Auditions submitted before this update keep the storage name.
Security
- A project's file naming convention, set by the casting director, was used as your exported audition's filename without being checked, so one that was a path rather than a name could overwrite a file elsewhere on your machine, including your own recorded takes. Velum now refuses a convention that is not a plain filename, and says what is wrong with it.
- Every audition you submitted from the desktop app was uploaded under the same name, so each one destroyed the audio of the one before and every audition, yours and the director's, played your most recent recording. Each is now stored under a name built from the role and the moment you sent it.
- Nothing already lost is recovered by the change above: if you submitted more than one audition from the desktop app, only your most recent recording still exists. Recording and submitting again is the only way to give each of the others audio of its own.
Fixed
Recording
- A take could end up with silent gaps if your disk stalled mid-recording, with nothing to tell you it had happened. Gaps are now reported clearly, and Velum tolerates a stall of up to ten seconds before dropping anything, rather than about a third of a second.
- Recording could silently use the wrong sample rate. If your device's default differed from your project's, Velum quietly used the device's — so a 48kHz project could record at 44.1kHz. Your project's rate is now always used when the device supports it, with a clear error when it genuinely can't be.
- Stop no longer resets the playhead to zero. This came back after being fixed in 0.1.5. Return to zero remains a separate action (Home key / RTZ).
- Starting a reference recording before your audio device had finished connecting now fails straight away with a clear message, instead of later with a misleading "device changed" error.
- The timeline mini-map stayed empty while recording instead of showing the live waveform.
Audio devices
- Losing your audio device mid-session showed no warning at all. Disconnection now shows a warning when the output device is lost.
- Correction, 29 July 2026. The entry above originally went on to say that disconnection "disables recording until a device is reconnected", and added that some interfaces don't reliably report being unplugged so this wouldn't catch every case. Both of those were wrong and have been removed. What 0.1.7 actually fixed was the name of the internal message carrying the warning, which had never matched the name the interface was listening for — that is why no warning had ever appeared. It covers the output device only. Losing a microphone part-way through a take still showed nothing, and recording carried on to the end, saving a take that looked normal and contained silence. The note about interfaces was wrong as well: Windows, macOS and Linux all do report a device being removed, and Velum was discarding that report rather than never receiving it. The microphone case is not fixed in 0.1.7.
- The setup wizard could stall with the device dropdowns visible but never filling in, and Continue appearing to do nothing — with no error shown anywhere.
- Several setup wizard steps failed silently when something went wrong: saving your display name, picking a folder, and connecting the selected device.
Remote collaboration
- Remote sessions could never connect in an installed copy of Velum. Released builds were packaged with a placeholder address for the signalling service, so invitations and live sessions only ever worked in development builds. This affected every release before now.
- Receiving a high-resolution audio transfer from a collaborator always failed — the receiving end was never finished.
- Remote recordings were saved with the wrong sample rate written into the file, making them play back at the wrong pitch and speed. The sender's actual rate is now carried across the connection and written correctly.
Timeline and editing
- Locked tracks weren't protecting clip colour, gain, and mute from being changed, and the record-arm, mute, and solo buttons stayed clickable on a locked track.
- Dragging a marker created a separate undo step for every pixel of movement instead of one for the whole drag.
- Markers could attach to the wrong clip when dropped right at a boundary.
- Skip-to-end moved the playhead even when the seek itself failed, leaving the display out of step with what you'd hear.
- In sessions with more than 128 tracks, a track could silently fail to play.
General
- The status bar stopped working after the first error of a session — no further messages appeared at all for the rest of it. Errors now stay visible for a few seconds, then normal messages resume.
- Importing media into a session failed with an unclear error if the session's Audio folder didn't already exist.
- A few durations were out by up to a millisecond.
Linux
- Velum could fail to start at all on systems with NVIDIA graphics under Wayland — no window, no error, nothing to report. Velum uses two startup workarounds for this; one was removed in 0.1.6 while chasing a rendering problem, on an assumption that was never tested. It has now been tested directly on affected hardware and both workarounds are restored. See Performance below for what that may cost.
- A glow lingered on the mic setup meter's level segments after the audio had decayed.
Windows
- Saving a script could fail with "Write path outside permitted directory" even for perfectly valid locations.
Security
- Closed a gap in the audio file browser that could allow reading folder contents outside your home directory.
Performance
- Remote sessions send audio far more efficiently. During a live session this happens around a hundred times a second, and it now uses a direct binary path instead of being converted to text each time.
- Linux with NVIDIA graphics: the timeline may feel less smooth than it did in 0.1.6. The startup workaround restored above is the one whose removal 0.1.6 credited with that release's smoothness improvement — though running both configurations back to back on affected hardware showed no difference I could perceive, and the timeline has changed a great deal in the meantime. If you do notice it, please say so; that's a measurement I don't have. Setting the environment variable
VELUM_WEBKIT_FLAGS=nv-only restores 0.1.6's configuration and trades the startup protection for the older rendering path. If Velum then won't open, clear the variable and it will start normally again.
Added
- Custom-built scrollbars for the timeline that match the rest of the app's visual style, replacing the OS-native ones. On Linux, the vertical scrollbar is now reliably clickable and draggable, and both scrollbars correctly show a pointer cursor on hover — neither was possible with the native scrollbar.
Changed
- The playhead line is now slightly thicker, making it easier to spot and track visually.
Fixed
- Recording is no longer silently truncated when you press Stop. Audio captured in the brief moment between clicking Stop and the engine finishing was previously discarded. The full recording is now always preserved, with playback picking up exactly where the recording ended.
- During recording, the playhead could occasionally drift out of sync with the right edge of the live waveform as the timeline auto-scrolled to follow it.
- The playhead and live waveform no longer stutter or jitter while recording or during playback — most noticeable on Linux systems with NVIDIA graphics.
- Audio clips had a small, unintended gap at the top instead of filling the full height of their track.
- A clip's filename could be hidden behind the timeline's scrollbar.
- The "add track" button could change size or show minor visual glitches depending on how many tracks were in the project. It's now stable and correctly aligned at any track count.
- Clicking certain elements in the timeline — track headers, track badges, and parts of the ruler — could briefly show an unwanted blue focus outline.
- macOS installers now properly support Intel-based Macs. Previous builds only worked correctly on Apple Silicon Macs, leaving Intel Mac users unable to run Velum. Both Apple Silicon and Intel Macs are now fully supported by a single universal installer.
- The website's download page could occasionally lag behind in reflecting the most recently published release. It now updates reliably with every release.
Performance
- Recording and playback are substantially smoother on Linux systems with NVIDIA graphics — what was previously a noticeably laggy, low-frame-rate timeline now runs smoothly throughout.
- Stopping a recording is now slightly more responsive.
Added
- Evaluation mode — a license dialog appears on launch. The countdown grows 1s per calendar day, starting at 1s and capping at 60s.
- Update notification — a pill in the title bar lights up when a newer version is ready. Click to download and relaunch.
- Recording indicator — a
● REC 00:00 pill appears in the top-right corner during a take. - Waveform display — clips now render waveforms as filled bars, matching Logic Pro and Reaper.
Fixed
- Stop now pauses at your current position. Return to zero is a separate action (Home key / RTZ). Previously Stop jumped back to zero.
- Errors are no longer blocking modals. They now appear as dismissable toasts.
- Punch and Roll shows feedback when it can't start, rather than failing silently.
- Transport keys (R, Space, Esc) now work from anywhere, regardless of screen focus.
- Clip delete no longer asks for confirmation. Delete/Backspace removes them immediately; audio stays in the session.
- Selected clips show a border highlight, not a fill — take ratings stay visible during review.
- Sample rate mismatch is now a persistent banner with a "Fix in Mic Setup" link, not a vanishing status line.
- Video track is now fixed at the top of the timeline. Previously, opening the video panel caused track lanes to detach from their controls when scrolling.
- Timeline width updates on window resize.
- Loop handles in the ruler are easier to grab.
- Drop-zone highlight clears immediately when a dragged file leaves the timeline.
Performance
- Zoom is significantly faster — no full scene rebuild on every notch.
- Live recording stays fast over long takes. Rendering now operates on a fixed window, not the full take.
- Marquee selection is much snappier over large sessions.
- Zoom steps are perceptually even at any zoom level.
- App opens faster — splash screen and artificial loading delays removed.
Fixed
macOS
- The app crashed silently the first time you pressed record — the OS was killing the process because microphone permission wasn't declared. The permission prompt now appears correctly.
- A 48kHz project on a device that defaults to 44.1kHz was silently recording at the wrong rate, causing playback to sound pitched and fast. The project sample rate is now always preferred when the device supports it.
- Splash screen was showing as a solid black rectangle instead of transparent.
Windows
- Realtek front-panel microphones were not appearing in the device list at all.
Linux
- Pro-audio PipeWire setups with large buffer sizes could produce silent dropouts during recording with no warning shown.
General
- Closing the app sometimes required a force-quit. The engine now shuts down cleanly.
- The play/pause indicator could flicker briefly after pressing a transport control.
Release pipeline
- Every release since launch was being stamped as v0.1.0 internally — update prompts were never firing for installed clients. Versioning is now correct.
- Release builds were occasionally missing platform installers due to a race condition in the pipeline. All installers are now guaranteed to be present before a release publishes.
Fixed
Desktop — Recording
- Live recording waveform now stays frame-accurate with the clip block and playhead.
- Waveform peaks now emit at 60fps — reduced lag and sharper transient response.
- Clip ends exactly when Stop is pressed; no hidden audio tail beyond the stop point.
- Recording was continuing ~140ms past Stop due to a delayed flag; now halts immediately.
- Waveform drift accumulating on long recordings has been eliminated.
Website
- Landing page version stuck on v0.1.1 despite newer releases being available.
- Page refreshing when switching browser tabs.
- Update prompt not appearing on the splash screen at startup.
- Update system is now fully automatic — push a version tag and users receive the update prompt on their next launch, with no manual steps required.
- GitHub Actions now correctly reads the version from the pushed tag before building.
Changed
Desktop — Visual
- Live recording waveform now renders as filled shapes rather than thin lines, matching professional DAW appearance.
Fixed
Desktop
- Microphone failing to connect on Windows with certain headset configurations (U8 sample format not supported).
- App felt sluggish — eliminated IPC polling loops that were firing constantly even when idle.
- Unsaved changes indicator updating on every user action instead of only when state actually changed.
- Recording felt laggy — timeline no longer recomputes at 60fps during recording.
- Live recording waveform falling progressively out of sync with the expanding clip block.
- Dragging clips caused stuttering — reactive state updates during drag have been eliminated.
- Clicking to select a clip was rebuilding the entire timeline scene unnecessarily.
- Waveforms not appearing when a session is loaded — now visible immediately without clicking first.
- Adjusting clip gain caused stuttering on longer clips — waveform now scales on the GPU instead of being redrawn each frame.
- Script editor sometimes failed to receive the script on open, or received multiple copies.
- Connection panel showing incorrect remote transport state during sessions (leftover test code).
Website
- Admin notifications not arriving in real time without a page refresh.
- Landing page version number not updating automatically when a new release is published.
- Download button progress bar not stopping after download completes.
- Scrolling felt slightly clunky on some systems (compositor layer improvement).
- Pages periodically refreshing during normal browsing (token refresh no longer triggers full page reload).
Performance
Desktop
- App starts and preferences panel opens faster — profile, audio devices, and config paths now load in parallel.
- Reduced unnecessary CPU usage from background polling in the title bar and main window.
- Eliminated CPU spike in the audio thread when tracks are added or removed.
Security
- Fixed an open redirect vulnerability on the download page.
- Various security & stability improvements across payments and escrow.
- Alpha application form protected against spam submissions.
Fixed
Desktop
- License key activation failing on first launch.
- Audio engine failing on Windows (headphones, onboard audio, WASAPI).
- Microphone silently not working after connecting — now shows an error.
- Project Manager silently failing on rename/duplicate/remove.
- Session archive (.zip) import issues.
- App install count not reporting correctly.
- Reduced silent crashes during export, audio stream setup, and archive operations.
- Better handling of unexpected audio device configurations.
Website
- Bonus payments incorrectly triggering cast notifications.
- Bonus payment allowed when recipient has no Stripe payout account.
- Payout request accessible when no funds were secured.
- Recommend button visible on your own profile.
- Failed login spamming dozens of error notifications.
- Pages periodically refreshing during normal browsing.
- Slow page loads and images loading at full resolution.
Performance
Desktop
- Post-recording processing is significantly faster for long takes.