v0.4
This release focuses on transcription capability and transcript annotation, and adds many features to the transcripts themselves as well as improves the methods that a user can use to run transcription.
Highlights
Transcript Sections
- Transcripts can now be broken in sections like chapters, to improve navigation and organization
- Sections can be added, removed, renamed, and moved easily in the transcript editing panel
Audio Effect Ranges
- Effects can now be applied to parts of the transcript, which will be rendered into the audio itself
- Effects are prerendered, and only the effected file is served, ensuring that the original file is not available to listeners
- NOTE: Applying affects generates a second .mp3 file containing the effects, which may double the storage impact of that project
Transcript muting
- Word ranges in the transcript can now be easily muted, which removes the audio from the effected file and strikes out the text
- Muting uses the effects pipeline, but is handled separately from the rest of the effects chain to make it easier to use
- Muted audio never appears in presentations, and you can choose whether they are muted or skipped during playback
Transcript notes
- Notes can be added to transcripts, including editor notes, stage notes, and speech notes
- Notes can be edited in situ, and can be shown or hidden in presentation mode at the editor's discretion
Project Version History
- Projects now automatically save snapshots as you work, and you can manually save named versions at any time
- Browse version history to open an older version as a new project, or revert the current project in place (fully undoable)
Off The Record
- Paragraphs can now be marked as "Off The Record" via right-click on the paragraph handle
- Off-the-record paragraphs are visually distinct in the editor and cannot be used in Live Quotes
- In presentation mode, off-the-record paragraphs are always shown as a placeholder — their text and audio are redacted server-side
- A prerendered
audio_otr.mp3is generated whenever OTR status changes, ensuring muted audio is served even if the raw file is accessed directly
Parallel Transcription
- Multiple projects can now be transcribed at the same time without blocking each other
- Each transcribing project displays a circular progress indicator in the sidebar so you can track all active jobs at a glance
- Switching away from a transcribing project no longer interrupts it — the job continues in the background and the transcript loads automatically when it finishes
- If you reload the page mid-transcription, the app reconnects to the in-progress job and resumes showing its progress
- Monthly usage quota checks now account for all in-flight jobs simultaneously, so parallel transcriptions cannot collectively overrun a plan's limits
Desktop App Overhaul
- The desktop version has been overhauled to support both CPU and GPU builds, allowing you to use on-device transcription without a cloud subscription
- Windows installers are now available for both CPU and GPU builds — download, run the installer, and launch from your desktop or Start Menu
- GPU builds detect your CUDA version at startup and show a clear error if the installed drivers are incompatible, with guidance on how to resolve it
- A dedicated Downloads page makes it easy to pick the right build for your system
- Local transcription uses faster-whisper + pyannote to deliver speaker-diarized transcripts entirely offline
Payment Integration
- It is now possible to pay for your subscriptions, and manage your payments using Stripe
- While the app is in Beta mode, no actual charges will be made, and a stand-in visa card may be used
Changelog
Added
- Product rebranded from Waveform Studio to SourceQuote across README, docs, UI, local executable name, local data folder, and Live Quote footer
- Public changelog pages: /changelog index and /changelog/
pages render release notes - License page: /license renders the bundled AGPL license
- Installer download endpoint: /download/installer/
/ / resolves and serves installer builds - Admin dispatch system: admin UI and API to preview, count recipients, and send broadcast emails with changelog insertion support
- Admin changelog API: admins can fetch rendered changelog files for dispatch/email composition
- Live Quote embed improvements
- Embeds can now have names/titles
- Optional title display on embed
- "Copy link" button added to embed management
- Environment/config additions:
HF_TOKEN_LOCALfor desktop binaries;SMTP_FROM_NAMEfor email sender display name - Scheduled maintenance documentation: README now documents Windows scheduled tasks for analytics collection and usage rollover
- Presentation mode transcript search: search controls, match counts, next/previous navigation, and Ctrl+F-style keyboard behavior
- Email notification system expanded: HTML email templates for email-change alerts, admin dispatches, transcription-complete notifications, password reset links, and password-change notices
- Users can now change the email associated with their account
- Database now tracks page visits for all html-serving routes
- Admin analytics now display page visit tracking
- Page visit tracking updated to include all routes including api routes and error pages
- Updated database & admin page to save and display route methods and error status for tracking
- Transcript sections
- Sections are defined by their temporal position in the transcript
- Sections can be renamed in the transcript section break headers
- When sections are defined, the Sections panel appears for easy navigation
- When sections are defined, the section breaks are represented with markers in the waveform.
- Section breaks can be moved by dragging the header
- Sections can be viewed and browsed in presentation mode
- Effect ranges
- Effects can be applied to text selections and snap to word-level
- Effects ranges are stored by timecode, and apply to the audio itself
- When effects are added, a new modulated_audio.mp3 file is created in the project directory, and is spot-rendered any time an effect change is made.
- Muting is an effect, but is handled separately for a couple of reasons
- Easy use, since muting is likely the most frequently utilized effect
- Visual separation, as most people don't think of muting as an effect, and more a state
- Makes skipping muted ranges simpler and more intuitive
- Retranscription is now allowed for any segment
- Off-the-record paragraphs
- Paragraphs can be marked or unmarked as "Off The Record" via right-click on the paragraph handle
- Off-the-record paragraphs are displayed with a hatched handle bar, dimmed italic text, and an "Off The Record" badge
- Selections that include an off-the-record paragraph cannot be used to generate a Live Quote
- In presentation mode, off-the-record paragraphs show a placeholder and their audio is skipped during playback
- Text and audio data for off-the-record paragraphs is redacted server-side — the presentation frontend never receives it
- The flag is stored as
off_the_record: trueon the paragraph intranscript.jsonand is fully undo/redo-able - When OTR is applied or removed,
audio_otr.mp3is re-rendered in the background with OTR sections muted; presentation audio always serves this file when present, falling back toaudio_effects.mp3thenaudio.mp3 - OTR audio is re-rendered automatically whenever the effects base changes (effects added/removed)
- Project version history
- Auto-snapshots fire after 20 minutes of inactivity or every 50 edits
- Named versions can be saved manually with an optional label via the History button or context menu
- Versions can be opened as a new project (original version stack is untouched) or reverted in place (revert is undoable)
- Viewers can browse and open versions as new projects; editors and owners can save, revert, and delete
- Auto-version cap is configurable per user in account settings (default 50); named versions are uncapped
- Each version records who created it, ready for future multi-user attribution
- Parallel transcription
- Multiple projects can be transcribed simultaneously; each job runs independently in a background thread
- Active transcriptions are tracked server-side so progress survives page reloads — the client reconnects and resumes polling on load
- Circular progress indicator appears on the left of each transcribing project's sidebar entry
- Switching projects while a transcription is running no longer cancels it; the transcript reloads automatically on completion
- Monthly quota check includes in-flight reserved minutes so parallel jobs cannot collectively exceed a plan's limit
- Added 'email when done' option to the transcription dialog which will send an email to the user when transcription completes
- Added skip-to paragraph buttons in the waveform panel. Pressing Shift with arrow keys will activate them as well
- Desktop app overhaul
- CPU and GPU builds now available as standalone Windows installers (Inno Setup)
- Local transcription via faster-whisper + pyannote runs fully offline with speaker diarization
- GPU build checks CUDA version at startup and shows a user-friendly error if drivers are incompatible
- New Downloads page for choosing and downloading the right build
- Projects data directory moved from
~/Documents/WaveformStudioto~/Documents/SourceQuote - GPU and CPU PyInstaller specs split into
install/local-gpu.specandinstall/local-cpu.spec - Password can now be reset in the settings
- Added a 'forgot password' password reset option
- Added tutorial slide show on open with settings option to disable
- Stripe integration
- Stripe is now used to facilitate payment for subscription charges
- Users will be converted to customers if they have no customer id
- Modifying subscriptions in the admin panel will update them on Stripe
- When in Beta mode, it will use the stripe sandbox and not make any real charges
Changed
- Live Quote embeds are now soft-deleted with a "deleted" tombstone instead of being removed; deleted embeds stop incrementing invoke count
- Transcription minute reservation: user usage now reserves and reconciles minutes for in-flight jobs, not just checks quota at start
- /api/fetch-page-title endpoint is now properly routed and tracked for hyperlink/title workflows
- Fixed laggy word-level highlight behavior in Live Quotes (This improvement will not be applied to previously generated Live Quotes.)
- Gave admins the ability to edit public files
- Fixed cron scripts calling the wrong venv
- Switched from using the native wavesurfer coloring system to applying color to it externally to allow for colored waveform regions
- Moved annotations from annotations.json to a key in transcript.json
- Fixed project names not saving
- Fixed bug report dialog not correctly capturing keypresses
- Uploaded MP3 files are now re-encoded through
libmp3lameon ingest to guarantee an accurate Xing VBR seek table. Files with a linearised TOC (a known bug in certain ffmpeg/LAME configurations) caused audible seek drift on recordings longer than ~20 minutes. - Reworked context menus to share common parent and handle menu stacking
- Added context menus to more UI elements
- Adjusted waveform controls layout and icons
- Switched editor to use "next segment" buttons instead of "skip 5s" buttons
- Skip-to paragraph and skip-to segment now use up/down arrow keys in addition to left/right for transcript/waveform direction discrepancies
- Keyboard shortcut legend is now collapsible
- App now opens with the editor divider centered
- Potential fix for stale audio on token expiration
- Ensured all currently active keyboard shortcuts are available in the shortcuts panel
- Switched account settings to be on a dedicated page instead of a drawer iframe