V-ProjectTimer
What it is
V-ProjectTimer is a session timer, billing calculator, and optional Pomodoro utility for an audio project. When started, it accumulates elapsed seconds, calculates cost as elapsed seconds / 3600 * hourly rate, and displays the elapsed time and cost. The optional Pomodoro mode cycles through work and break periods and counts completed cycles. The audio path is a bit-perfect pass-through; V-ProjectTimer performs no audio DSP.
Controls & parameters
| Control | Range or choices | Default | Function |
|---|---|---|---|
| Start / Pause | Button | Start state is stopped | Starts or pauses elapsed-time accumulation. Starting an enabled, idle Pomodoro begins a work phase. |
| Reset | Button | - | Stops the timer and clears elapsed time, Pomodoro phase, countdown, and cycle count. |
| Hourly Rate | 0.00-1000.00, step 0.01 | 50.00 | Billing rate per hour in the selected currency. |
| Currency | USD ($), GBP (pound), EUR (euro) | USD ($) | Selects the currency used for the cost readout. The readout uses ASCII prefixes: $, GBP, or EUR. |
| Pomodoro | On/Off | Off | Enables the work/break timer display and phase transitions. |
| Work Duration | 15 min, 25 min, 30 min, 45 min, 60 min | 25 min | Sets the length of each work phase. |
| Break Duration | 5 min, 10 min, 15 min, 20 min | 5 min | Sets the length of each break phase. |
The display shows elapsed time as HH:MM:SS, the calculated cost, and, when Pomodoro is enabled, the current phase, countdown, and cycle count. The editor labels and readouts use ASCII text.
Workflow / how to use it
- Insert V-ProjectTimer on a project track or bus. Its audio pass-through does not change the signal.
- Set Hourly Rate and choose USD, GBP, or EUR.
- Press Start when the billable session begins. Press Pause for a stop in billable work.
- Press Reset to clear the current session total and Pomodoro state before starting a new session.
- To use Pomodoro, enable Pomodoro and choose Work Duration and Break Duration. Press Start; the first phase is Work. When it expires, the timer enters Break, then starts the next Work phase and increments the cycle count.
- Read the elapsed time and cost from the display. Save the host project or plugin state to retain the timer and billing settings.
Use cases
- Freelance session billing: Set a client rate and run the timer only during billable editing, recording, mixing, or revision work.
- Pomodoro studio practice: Use a work interval and break interval to structure focused production or instrument practice without putting another audio processor in the signal path.
- Client session logging: Save the project state with the accumulated time, selected currency, rate, and Pomodoro state as a session record.
- Bit-perfect utility insertion: Place the plugin on a monitored track or bus when a visible session clock is useful but the audio must remain unchanged.
Specs & requirements
- Formats: AU and VST3.
- Audio I/O: Stereo input and stereo output are configured. The source layout validator also accepts matching mono input/output layouts.
- Latency and tail: Zero audio latency; the processor reports a zero-second tail.
- Sample rates: No fixed sample-rate list is declared by the plugin source.
- Precision: Supports both FP32 and FP64 processing. Both paths leave the audio buffer unchanged apart from clearing unused output channels.
- MIDI: No MIDI processing is enabled.
- State: APVTS parameters and timer data are persisted, including elapsed seconds, running state, Pomodoro phase, cycle count, and remaining phase time. The plugin exposes one host program and does not implement preset programs.
- Platform: Workspace audio-toolbox build guidance targets macOS 10.15 or later.
Notes / caveats
- The timer is not an automatically running wall-clock for the whole DAW session. It starts only after Start is pressed and accumulates from audio processing callbacks while running.
- The processor uses a steady clock for elapsed-time deltas and ignores a single delta of 60 seconds or more, preventing sleep or hibernate gaps from becoming a large charge.
- The editor refreshes its display on a 10 Hz GUI timer. Timing accumulation itself occurs in the processor’s
processBlock, not in a 60 Hz GUI timer. - The current source has no graphical Pomodoro progress meter; it provides phase text, a numeric countdown, and a cycle count.
- The processor’s currency choices use
GBP (pound)andEUR (euro), while the editor selection labels areGBP (L)andEUR (E)and the cost readout usesGBPandEUR. All are ASCII representations of the same choices. - The older README recommends Projucer and
build_audio_toolbox.sh; the current toolbox build is CMake-based, and the source tree retains the.jucerfile as identity/provenance.