Professional CinemaDNG, EXR & Video Transcoder with Color Grading, LUT Support & Batch Export
Introduction
Spectra Studio is a professional-grade transcoding and color grading application built for cinematographers, colorists, and post-production professionals. It processes CinemaDNG sequences, OpenEXR sequences, and standard video files, applying real-time color grades and exporting to industry-standard codecs.
The application operates in 16-bit linear light throughout the entire grading pipeline, preserving maximum dynamic range from your camera's raw sensor data through to the final encoded output.
Key Features
Supported Input Formats: CinemaDNG (.dng), OpenEXR (.exr), and video files including MOV, MP4, MXF, M4V, and AVI.
Color Grading: Full Lift/Gamma/Gain color wheels, exposure control, contrast with adjustable pivot, RGB tone curves, saturation, hue rotation, color temperature and tint, and highlight rolloff (Reinhard or filmic).
Color Space Transform (CST): Decode camera-native log and gamut encodings (S-Log2/3, Log C3/C4, BMD Film, V-Log, F-Log, Apple Log, Canon Log 3, and more) to linear working space, with output targeting for Rec.709, P3-D65, HDR HLG/PQ, or back to any camera-native space.
3D LUT Support: Load and apply .cube, .dat, and .3dl LUT files with per-camera input color space matching. Export your complete grade as a .cube LUT for use in DaVinci Resolve, Premiere Pro, or any LUT-compatible software.
Output Codecs: ProRes (HQ, 422, LT, Proxy, 4444), DNxHR (HQ, SQ, LB), H.264, H.265/HEVC, and CinemaDNG copy mode.
Hardware Acceleration: Apple VideoToolbox GPU encoding on macOS for all ProRes profiles, H.264, and H.265, with automatic toggle and software fallback.
Monitoring: Real-time waveform (luma and RGB parade), histogram, and vectorscope. Frame scrubber for navigating sequences. Before/after comparison toggle.
Batch Workflow: Media pool with multi-clip management, per-clip grades, grade copy/paste across clips, customizable filename templates, and sequential batch export.
System Requirements
| Requirement | Details |
|---|---|
| Operating System | macOS 12.0 or later (recommended) Apple Silicon only. |
| RAM | 8 GB minimum, 16 GB recommended for 4K+ workflows |
| Disk Space | SSD recommended. ProRes HQ at 2K requires ~220 Mbit/s sustained write speed. |
| Python | Python 3.10 or later with rawpy and PySide6 packages |
| FFmpeg | Bundled with the application, or provide a custom path |
| GPU Acceleration | Apple silicon with VideoToolbox support |
Interface Overview
The Spectra Studio window is divided into three main panels arranged horizontally.
Left Panel — Controls
The left panel contains all input/output configuration and color grading controls, organized into labeled sections and tabbed groups:
I / O Section: Input path (sequence folder or video file), output file path, and sequence type selector (Auto-detect, cDNG/DNG, OpenEXR, or Video).
Timeline Section: Frame rate selector with preset dropdown (23.976, 24, 25, 29.97, 30, 48, 50, 59.94, 60, and 120 fps).
Below the timeline, six tabs provide access to the full grading toolset:
| Tab | Purpose |
|---|---|
| LGG | Lift/Gamma/Gain color wheels, contrast, pivot, and exposure |
| Curves | RGB and master tone curves with per-channel control |
| Color | Saturation, hue rotation, temperature/tint, and highlight rolloff |
| LUT | Load and manage 3D LUT files with input color space selection |
| CST | Color Space Transform for camera log/gamut decode and output targeting |
| Output | Codec selection, hardware acceleration, dither, matrix, and LUT export |
The Transcode and Stop buttons at the bottom of the left panel control single-clip export from the I/O paths.
Center Panel — Media Pool
The center panel is the media pool: a vertical clip list that manages your project. Each clip shows its name and encode status (pending, encoding, done, or error). Below the clip list:
Grade Clipboard: COPY, PASTE ALL, and PASTE SEL buttons for transferring grades between clips. Use Ctrl-click or Shift-click to select multiple clips for selective paste.
Destination: Override the output folder for all clips. When empty, each clip exports alongside its source.
Filename Template: Customize output names using {name}, {clip_number}, and {date} tokens. A live preview shows the resolved filename.
Per-Clip FPS: Each clip can have its own frame rate, set via the FPS dropdown in the media pool panel.
Batch Export: The START and STOP buttons control batch export. START encodes every pending clip in the pool sequentially; STOP cancels the current batch at any time.
Right Panel — Preview & Monitoring
Preview / Gallery Toggle: Switch between single-clip preview and a thumbnail gallery of all clips.
Frame Preview: Displays the current frame with all grading applied in real time.
Frame Scrubber: Navigate through frames of the active clip. Scrubbing decodes and grades each frame on the fly.
Before / After: Toggle to compare graded against ungraded.
Export Frame: Save the current graded frame as PNG, TIFF, or JPEG.
Scopes: Waveform (with luma/parade toggle), histogram, and vectorscope update live.
Progress & Log: Progress bar, percentage readout, elapsed time, and scrolling log. A Verbose checkbox in the log header toggles between clean user-friendly output (default) and detailed technical output including ffmpeg commands, filter chains, and color correction diagnostics—useful for troubleshooting.
Importing Media
CinemaDNG Sequences
Click the SEQUENCE button next to the input field, then select the folder containing your .dng files. Spectra Studio scans the folder, detects the sequence, and loads the first frame for preview. White balance is locked from frame 0 and applied consistently across all frames to prevent flicker.
Black levels are also locked from the first frame. Some cameras write slightly different black level values per frame; Spectra Studio normalizes these to prevent shadow flicker during transcoding.
During export, Spectra Studio uses an optimized transcode pipeline: an empirical color correction LUT is generated by comparing rawpy and ffmpeg decodes of the first frame, then ffmpeg processes the entire sequence natively with the correction applied. This delivers color-accurate output at near-realtime speeds.
If a .wav file is present in the same folder as your DNG sequence, Spectra Studio will automatically detect it and embed it as a synchronized audio track in the output file.
OpenEXR Sequences
OpenEXR sequences are handled identically to CinemaDNG. Select the folder containing your .exr files. The application expects floating-point linear-light EXR data.
Video Files
Click the VIDEO button to open a single video file. Supported containers include MOV, MP4, MXF, M4V, AVI, and BRAW. Video files are decoded via FFmpeg and processed through the same grading pipeline. Audio tracks from the source are automatically carried through to the output.
If auto-detection misidentifies your input, use the Sequence Type dropdown to manually select cDNG/DNG, OpenEXR, or Video.
Color Grading
All grading in Spectra Studio operates in 16-bit linear light. The grading pipeline processes in the following order: CST Input → Exposure → Temperature/Tint → Lift/Gamma/Gain → Contrast → Tone Curves → Saturation/Hue → Highlight Rolloff → LUT → CST Output.
LGG Tab — Lift, Gamma, Gain
Color Wheels
Three color wheels provide independent control over shadows (Lift), midtones (Gamma), and highlights (Gain). Drag within a wheel to shift the color balance for that tonal range. Each wheel has a master luminance slider beneath it for overall brightness adjustment. Click RESET beneath any wheel to return it to neutral.
Contrast & Pivot
Contrast (0.5–1.5): Controls the overall contrast curve. Values above 1.0 increase contrast; values below 1.0 reduce it. Applied as a power curve centered on the pivot point.
Pivot (0.0–1.0, default 0.435): Sets the tonal center around which contrast expands or compresses. Lowering the pivot protects shadows; raising it protects highlights.
Exposure
Measured in EV stops (−5.0 to +5.0). Applied before the LGG wheels as a linear multiplier (2ˣ per stop). This is the first operation after the input CST, ensuring maximum precision.
Curves Tab
The tone curve editor provides precise control over tonal response. Four channels are available:
| Channel | Function |
|---|---|
| Master | Affects all three channels equally. Equivalent to a traditional luma curve. |
| Red | Adjusts only the red channel response. |
| Green | Adjusts only the green channel response. |
| Blue | Adjusts only the blue channel response. |
Click on the curve to add control points. Drag to reshape. Double-click a point to remove it. Use RESET CHANNEL to clear the active channel or RESET ALL to flatten every channel.
Color Tab
Saturation & Hue
Saturation (0.0–3.0): Scales color intensity. 0.0 = monochrome; 1.0 = neutral; values above 1.0 boost saturation.
Hue Rotate (−180° to +180°): Rotates all hues around the color wheel by the specified degrees.
Temperature & Tint
Applied in linear RGB before the LGG wheels, making them effective for correcting white balance errors from source material.
Temp (K±): Shifts balance between warm (positive) and cool (negative). Range: −3000 to +3000.
Tint: Shifts the green/magenta axis. Range: −1.0 to +1.0.
Highlight Rolloff
| Mode | Behavior |
|---|---|
| None | No rolloff. Highlights clip at maximum value. |
| Reinhard (soft) | Gentle, natural rolloff. Suitable for most footage. |
| Filmic (Hable) | S-curve with a stronger shoulder. Emulates classic film response. |
LUT Support
Loading a LUT
Navigate to the LUT tab and click the browse button to select a 3D LUT file. Supported formats are .cube, .dat, and .3dl. The LUT is applied as the final step in the grade pipeline (after all other adjustments).
Use the Enable LUT checkbox to toggle the LUT on and off for comparison. Click CLEAR to remove the loaded LUT entirely.
LUT Input Color Space
Different LUTs expect different input encodings. A LUT designed for S-Log3 footage will produce incorrect results if fed sRGB data. The LUT Input Color Space dropdown lets you specify what the LUT expects.
| Group | Options |
|---|---|
| General | Linear, sRGB / Rec.709 |
| Sony | S-Log2 / S-Gamut3.Cine, S-Log3 / S-Gamut3.Cine |
| ARRI | Log C3 EI800, Log C4 |
| Blackmagic | BMD Film Gen4, BMD Video Gen5 |
| DaVinci | DaVinci Intermediate |
| Apple | Apple Log (iPhone 15 Pro and later) |
| Canon | Canon Log 3 |
| Panasonic | V-Log |
| Fujifilm | F-Log, F-Log2 |
| HDR | HLG, PQ / ST2084 |
For CinemaDNG from a Sigma fp or fp L, the correct LUT input space is typically sRGB / Rec.709, as the DNG data is decoded to linear sRGB by the raw processor.
Color Space Transform (CST)
The CST tab handles conversion between camera-native color encodings and the working/delivery color space.
Enabling CST
Check the Enable CST box to activate the transform. When disabled, the input is assumed to already be in linear sRGB (which is the case for CinemaDNG sequences decoded by rawpy/libraw).
Input Profile
Select the camera's recording format to decode into the linear working space:
| Camera System | Profile |
|---|---|
| Sony | S-Log2 / S-Gamut3.Cine, S-Log3 / S-Gamut3.Cine |
| ARRI | Log C3 EI800 / AWG3, Log C4 / AWG4 |
| Blackmagic | BMD Film Gen4, BMD Video Gen5 |
| DaVinci | DaVinci Intermediate / DWG |
| Apple | Apple Log / Apple Wide Gamut |
| Canon | Canon Log 3 / Cinema Gamut, Canon Log 3 / Rec.2020 |
| Panasonic | V-Log / V-Gamut |
| Fujifilm | F-Log / F-Gamut, F-Log2 / F-Gamut |
| HDR | HLG Rec.2020, PQ / ST2084 Rec.2020 |
Output Profile
Select the target delivery color space. Options include standard display targets (Rec.709, P3-D65, HDR HLG/PQ), camera-native log spaces for round-tripping, and linear spaces for VFX compositing.
To grade log footage and re-export in the original log space (for example, grading S-Log3 and exporting back to S-Log3 for further work in DaVinci Resolve), set both the Input and Output CST profiles to the same camera encoding.
Output & Transcoding
Codec Selection
| Codec | Description | Container |
|---|---|---|
| ProRes 422 HQ | Full-quality editorial. Standard for Premiere, Resolve, FCP. | .mov |
| ProRes 422 | Standard editorial quality. Slightly smaller than HQ. | .mov |
| ProRes 422 LT | ~40% smaller than HQ. Storage-constrained workflows. | .mov |
| ProRes 422 Proxy | Offline and proxy editing. Very small files. | .mov |
| ProRes 4444 | Maximum quality with alpha. VFX and compositing. | .mov |
| DNxHR HQ | Avid's high-quality codec. Media Composer or Resolve. | .mov |
| DNxHR SQ | Avid standard quality for broadcast delivery. | .mov |
| DNxHR LB | Avid offline/proxy. Very small files. | .mov |
| H.264 | Compressed delivery for web and review. | .mp4 |
| H.265 / HEVC | Higher compression than H.264 for review/archive. | .mp4 |
| CinemaDNG (copy) | Copies DNG files into an organized folder. No transcoding. | Folder |
Hardware Acceleration
On macOS, the Use hardware acceleration (Apple GPU) checkbox enables Apple VideoToolbox encoding. This provides significantly faster transcode speeds by offloading encoding to the GPU. Hardware acceleration applies to all ProRes profiles, H.264, and H.265. DNxHR codecs and CinemaDNG copy are unaffected.
The toggle defaults to on when running on macOS and is disabled on other platforms.
Transcode Options
Dither Noise: Enabled by default. Adds fine temporal dither to prevent banding artifacts when quantizing from 16-bit to 10-bit or 8-bit output. Highly recommended to leave enabled.
Input Matrix: Selects the YCbCr matrix for color space conversion: bt709 (default, HD/UHD), bt601 (SD), or smpte240m (legacy HD).
Audio Handling
When a .wav file is found alongside a DNG/EXR sequence, it is automatically embedded in the output as a copy (no re-encoding). Before transcoding begins, Spectra Studio compares audio duration against video duration at the selected frame rate. If there is a mismatch greater than 2 seconds, a warning dialog appears showing both durations and suggesting the correct frame rate.
If you see an audio/video duration mismatch warning, it usually means the frame rate is set incorrectly. For example, 4912 frames of 120fps footage set to 23.976fps will show a 41-second audio track against a 205-second video. The dialog will suggest ~119.80fps as the correct rate.
Exporting a LUT
The Output tab includes a LUT Export section that bakes your entire grade pipeline into a single .cube file. Select a grid size (17³ for fast previews, 33³ for standard quality, or 65³ for maximum precision), set the output path, and click EXPORT LUT.
Media Pool & Batch Export
Per-Clip Grades
Every clip in the pool stores its own complete grade state, including all LGG, curves, color, CST, and LUT settings. When you select a clip, all controls update to reflect that clip's saved grade. Adjustments are automatically saved back.
Grade Copy & Paste
COPY: Copies the active clip's complete grade (including LUT and CST) to the clipboard.
PASTE ALL: Applies the copied grade to every clip in the media pool.
PASTE SEL: Applies only to selected clips (Ctrl-click or Shift-click to multi-select).
Filename Templates
| Token | Replaced With |
|---|---|
{name} | Source folder name (e.g., A001_015) |
{clip_number} | Sequential number (001, 002, 003, ...) |
{date} | Date in YYYYMMDD format from the folder |
Batch Export
Click START to encode all pending clips. Clips are processed sequentially. Before the batch begins, Spectra Studio checks available disk space and warns if insufficient. The batch can be stopped at any time using the STOP button next to START.
Session Persistence
Your project auto-saves every 2 seconds. This includes all clips, grades, codec selection, destination, filename template, and global settings. Re-opening a previously used project folder restores the session automatically.
Preview & Scopes
Frame Preview: Displays the current frame with all grading applied. Preview frames are decoded at 1920px wide with Retina-aware scaling, delivering sharp previews on high-DPI displays while remaining responsive.
Frame Scrubber: Navigate to any frame. Scrubbing uses a 120ms debounce to prevent excessive decode requests.
Before / After: Toggle between graded and original ungraded for instant visual comparison.
Export Frame: Save the current graded frame as PNG, TIFF, or JPEG for reference stills or thumbnails.
Waveform: Brightness distribution from left to right. Parade mode shows RGB channels side by side; luma mode shows combined luminance.
Histogram: Pixel value distribution across the tonal range with all three channels overlaid.
Vectorscope: Color distribution in a circular plot. Hue = angle, saturation = distance from center.
Gallery View: Thumbnail grid of all clips in the pool. Click any thumbnail to select it for grading.
Troubleshooting
No RAW Decoder Available
If the status bar shows "⚠ NONE" for the RAW decoder, install rawpy: pip install rawpy
FFmpeg Errors
Spectra Studio requires FFmpeg for transcoding. The app looks for a bundled binary first, then the system PATH. The log panel displays the full FFmpeg command and error output.
Incompatible Pixel Format
When using Apple VideoToolbox, FFmpeg may report a pixel format warning. Spectra Studio configures the correct formats automatically. If you see persistent errors, try disabling hardware acceleration as a fallback.
Audio / Video Duration Mismatch
The most common cause is an incorrect frame rate. CinemaDNG sequences don't carry embedded frame rate information, so you must set it manually. The warning dialog suggests the rate that matches the audio.
Slow Transcoding
Hardware acceleration: Ensure the GPU toggle is enabled on macOS. Software encoding can be 5–10× slower.
Output codec: H.264/H.265 with software encoding are inherently slower than ProRes. Use ProRes for editing; reserve H.264/H.265 for final delivery.
Source media: CinemaDNG sequences use an optimized fast path: ffmpeg handles native DNG decoding while an empirically-calibrated color correction LUT ensures accurate color matching. This is typically 2–3× faster than per-frame raw decoding. The CPU fallback path uses half the available cores to balance speed with thermal management.
Disk Space
Output size is estimated before transcoding and warned if space is insufficient. ProRes HQ at 1080p24 requires ~27 MB/s; ProRes 4444 requires ~41 MB/s.
Grade Pipeline Reference
The complete processing order of the grading pipeline:
| Order | Stage | Control |
|---|---|---|
| 1 | CST Input (camera log/gamut → linear sRGB) | CST tab |
| 2 | Exposure (EV stops, linear multiplier) | LGG tab |
| 3 | Temperature & Tint (linear RGB adjustment) | Color tab |
| 4 | Lift (shadow color offset + luminance) | LGG tab — Lift wheel |
| 5 | Contrast (power curve around pivot) | LGG tab |
| 6 | Gamma (midtone color offset + luminance) | LGG tab — Gamma wheel |
| 7 | Gain (highlight color offset + luminance) | LGG tab — Gain wheel |
| 8 | Tone Curves (master + R/G/B) | Curves tab |
| 9 | Saturation & Hue Rotation | Color tab |
| 10 | Highlight Rolloff (Reinhard or Filmic) | Color tab |
| 11 | 3D LUT (with input color space conversion) | LUT tab |
| 12 | CST Output (linear sRGB → delivery space) | CST tab |
| 13 | BT.709 gamma encoding + dither | Output tab |