UX CASE STUDY · GOVTECH · Apr - May 2025

Court audio conversion cut from 60 minutes to under 15 with one app that runs on any machine.

Court recordings were locked in a proprietary format that only two Windows apps could open, and staff spent over an hour on every conversion request. I built a single Flutter app powered by FFmpeg that decrypts, merges, and converts the audio in under 15 minutes, so clients leave with their files the same day.

SPEC · AFC001
Role
UX Designer & Developer
Timeline
Apr - May 2025
Stack
Python · FFmpeg · Flutter · Figma
Constraint
2 APPS TO 1
MINUTES PER REQUESTAFTER vs BEFORE 60→15
MY ROLE002

I designed and built the whole thing at the Supreme Court of BC's In-Court Technology team. The FFmpeg knowledge came from my earlier AI transcription work, so when this problem surfaced I already knew the tool that could crack it.

Team
Solo build, In-Court Tech team
Stakeholders
Lawyers, litigants, transcript firms, Justices
FIG. 01Apr - May 2025
PROBLEM → SOLUTION003

The Problem vs. The Solution

The proprietary format was a dead end for anyone not on Windows, and that included Justices working from Mac laptops in chambers. Every request meant juggling For The Record's two licensed apps, over an hour of active staff time, and a return trip for the client.

BEFORE003.A

The double-app bottleneck

Court staff juggled two Windows-only proprietary tools to extract audio from every proceeding, and clients still had to come back to collect.

P-01
Proprietary encrypted formatFiles were stored in an encrypted format requiring licensed Windows software. The audio was inaccessible to anyone not on a Windows machine.
P-02
60+ minutes across two FTR appsFTR Player and FTR Manager each required manual configuration. A 6-hour court day meant over an hour of conversion work per request.
P-03
Clients had to returnWith no same-day turnaround possible, clients were told to come back later. Extra friction, extra cost, and a second courthouse trip.
AFTER003.B

One app, one click

A Python backend using FFmpeg handles decryption, concatenation, and conversion in one pass. A Flutter frontend gives staff a clean single-dashboard experience on any OS.

S-01
FFmpeg decrypts and merges in one passFFmpeg decrypts the .trm 5-minute chunks and concatenates them into a single file automatically. No manual file selection across apps.
S-02
Select folder, click ConvertStaff pick the source folder and hit Convert. The Flutter dashboard runs on both Mac and Windows with no licence or configuration required.
S-03
Standard .mp3 or .wav, same dayThe output plays on any device. A full 6-hour court day, previously 72 encrypted fragments, becomes one consolidated file clients take home that day.
THE IMPACT004

The Impact

Measured against the legacy 2-app workflow every conversion request used to go through.

Time reduction
0%
60+ minutes down to under 15
Saved per request
0 min
On every conversion request
Return trips needed
0
Clients leave with audio same day
SAVED ON EVERY CONVERSION REQUEST004.B
0MIN
60+ minutes across two licensed apps down to under 15 with one click.

Conversion time per request

Minutes of staff time. Legacy 2-app workflow vs. the Audio Converter.
KEY DECISIONS005

Key Design Decisions

Three calls that shaped the build, each forced by a real constraint rather than a preference.

DEC-01
Skip the legacy apps entirely

Instead of automating FTR Player and FTR Manager, the tool goes straight to FFmpeg to decrypt and convert the .trm chunks.

Why

Wrapping the FTR apps would have kept every constraint that made them painful: Windows-only, licensed, and manual. FFmpeg work from the AI transcription project showed the format could be handled directly, so both apps could be cut out.

DEC-02
Backend first, UI second

The Python backend was built and proven against real court audio files before any frontend work started.

Why

The whole project hinged on whether FFmpeg could actually decrypt the proprietary format. Proving that first meant no interface got designed around a pipeline that might not work.

DEC-03
Flutter for a zero-training dashboard

One screen, one folder picker, one Convert button, tested with clerks who had only ever used the proprietary tools.

Why

Staff are court clerks, not software people, and the old tools locked out every non-Windows machine. Flutter gave one codebase across Mac and Windows, and the 60-second usability bar kept the design honest.

OLD vs NEW WORKFLOW006

One Conversion, Both Ways

The legacy path through For The Record's two-app suite, against the converter. Clips were worse: two playheads set in the Player first, then back to the Manager to convert.

OLD WORKFLOW · 60+ MIN PER REQUEST006.A
  1. 01Open FTR Player and hunt down the hearing audio
  2. 02Load the recording in the Player
  3. 03Open FTR Manager alongside it
  4. 04Configure the job: time frame and output format
  5. 05For clips, set two playheads back in the Player
  6. 06Convert and wait
  7. 07Verify the output actually plays
NEW WORKFLOW · UNDER 15 MIN006.B
  1. 01Load the day's audio folder
  2. 02Pick the .trm files you need, or take the whole day
  3. 03Hit Go: decrypt, merge, and convert in one pass
7 STEPS → 3 STEPS · −57% · 60+ MIN PER REQUEST → UNDER 15 MIN
USER FLOW007

The Full Flow, Side by Side

The workflow above is the short version. This is the complete before and after, every step and every place the old chain made you stop and switch tools.

audio-converter-user-flow.html Open in new tab ↗

Before and after user flow. The vendor tool chain against the single-button converter, mapped step for step.

DESIGN EVOLUTION008

From Wireframe to Shipped Converter

Wireframes collapsed the two-app flow into one screen, the backend was proven against real court audio, then the Flutter build went through nine development phases.

Collapsing two apps into one screen.

The wireframes had a single goal: everything FTR Player and FTR Manager did, on one screen, usable in under 60 seconds by a clerk who had never seen it.

  • One screen, one folder picker, one Convert button
  • Zero-training bar set before any visuals
  • The FFmpeg backend stays invisible to staff
BEFORE / AFTER009

The Vendor Suite vs One Button

Drag the handle. For The Record's export workflow against the converter's single dashboard.

Shipped · One-Click Converter
FTR Manager · Export Panel
REFLECTION011
Side knowledge cracked the main problem

I didn't set out to learn FFmpeg for this project. It came from building AI audio pipelines on the transcription tool, and it turned out to be the exact key to a format everyone assumed needed the vendor's software. That's the first lesson: deep familiarity with your tools pays off in places you never planned for. Staff feedback taught the second one. Going from a two-app, one-hour headache to a single click mattered more to them than anything clever underneath. The honest risk I carry forward is that the format belongs to the vendor, not to me. If they change the encryption, this tool starts over from zero, which is exactly why the backend was proven against real court audio before a single screen existed. When you build against a closed format, you prove the fragile part first and keep everything else cheap to rebuild.

Available for Work

Let's build something impactful.

I'm currently open to new opportunities in UX/UI Design, Product Design, and GovTech transformation roles.