ObieWebApp β User Guide
How to use Explore, Convolve, and Acquire to measure, compare, and auralize violin FRFs.
Contents
Getting Started β Data Folder
All three tools are browser-based and run entirely locally β nothing is uploaded to any server. They use the File System Access API (Chrome or Edge 86+ required) to read and write files in a folder you choose on your computer.
Select a Data Folder
Before using any tool, click the Data Folder button (on the home page or inside any tool) and select the folder that holds your measurement files. The folder name is remembered between visits. Grant read/write access when the browser asks β this allows the tools to load FRF files and save new measurements automatically.
ObieAppSettings/ inside
your Data Folder and are loaded automatically on startup.
Supported file formats
| Extension | Description |
|---|---|
| .avr / .avc | Averaged FRF (real/imaginary columns) β main format for Explore and Convolve |
| .trf / .trv | Transfer-function format β also supported by Explore and Convolve. Files saved by Acquire include coherence and run metadata. |
| .csv | Two-column CSV (frequency, magnitude dB) β quick import for Convolve |
| .mat | MATLAB FRF file (yspec format) β loaded by Explore and Convolve. Coherence is shown automatically when present. |
| .wav | Audio file used as the dry signal in Convolve; also storable as a sound snippet in Explore |
Explore
PyScriptExplore lets you load multiple FRF files at once, overlay them on a single interactive plot, and compare them with smoothing, normalization, band averaging, and per-dataset convolution playback.
Loading files
Three ways to load FRF files:
- Browse β opens a file picker; select one or more FRF files directly. Accepts AvR, AvC, TRF, TRV, CSV, and MAT formats.
- Search β opens the Search modal. Type a filename pattern (comma-separated for OR logic), filter by file type, and load all matching files from your Data Folder with one click.
- Drag & drop β drag files from your desktop onto the plot area.
Hover tooltip
Hovering over any point on the plot shows: Amp = 18.4 dB Freq = 443 Hz (A = 440 Hz). The note name and its exact reference frequency (nearest equal-temperament pitch) are shown automatically whenever the cursor is over an FRF trace.
Plot controls
| Control | What it does |
|---|---|
| Y = lin / log | Toggles the Y axis between linear and dB (log) scale. |
| βY | Auto-scales the Y axis to the visible X range β ignores data outside the current frequency window. |
| dB range field | Sets the displayed Y range in dB (e.g. 38 dB). |
| X = log / lin | Toggles the X (frequency) axis between log and linear. |
| Ξ³Β² checkbox | Show or hide coherence traces for all datasets that carry coherence data. |
| Smoothing | Applies fractional-octave smoothing from ΒΌ semitone to one full octave. |
| Normalization | As measured, normalize by peak, normalize by average over a custom Hz range, or overlay a Complex average / Real average trace across all visible datasets (see Group averaging below). |
| π¨ Print | Far right of the toolbar. Snapshots the current plot and opens it in a new page with an editable title and notes area β fill those in, then click Print on that page to send just the labeled plot to your printer. |
| β¨ Ask Claude | Opens a new Claude.ai chat in another tab with a question started for you, pointing Claude at ObieWebApp's documentation β finish typing your question and send it. Nothing is sent automatically. |
Dataset list (left panel)
| Button / control | What it does |
|---|---|
| Checkbox | Show or hide an individual dataset on the plot. |
| βΆ (play) | Convolves the dataset's FRF with your saved sound snippet and plays it back in real time. |
| Color swatch | Click to change the line color for that dataset. |
| See All / See None | Show or hide all datasets at once. |
| Reduce | Removes datasets that are currently hidden. |
| Clear All | Removes all loaded datasets. |
| Undo | Restores the last dataset removed by Reduce or Clear All. |
Band averaging
Select a band preset from the Bands dropdown (presets are loaded from
ObieAppSettings/bands/ in your Data Folder). The band table shows one column
of results per visible dataset β average dB level and spectral centroid for each
band, in each dataset's colour. Toggle shade to highlight the band regions
on the plot. Click Excel to export all datasets' band data as a CSV file.
Group averaging & saving
Set the Normalization dropdown to Complex average or Real average to overlay one averaged trace across all currently visible datasets. Complex average converts each dataset's dB magnitude to linear amplitude before averaging (then back to dB); Real average takes the arithmetic mean of the dB values directly. Complex average is only selectable when at least one visible dataset carries complex/phase data (e.g. loaded from an AvC or a complex TRF).
With one of those modes active, right-click the plot for a
πΎ Save to Group Averagesβ¦ option β name the average and save it as a CSV or an
AvR file into a Group Averages folder created at the root of your Data Folder.
Interpret
Click Interpret to open a reference overlay with two sections:
- Mode labels β the standard Oberlin mode labels (A0, CBR, B1β, B1+, Bridge Hill, etc.) drawn as shaded regions on the current plot. Includes links to violinacoustics.com and euphonics.org.
- Note Harmonics β click any of the 12 chromatic note buttons (G3 β Fβ―4) to overlay blue dotted vertical lines at the fundamental frequency of that note and all of its overtones up to 10,500 Hz. Click the same note again to remove the lines. Useful for checking whether a resonance peak lines up with a specific played note.
Other toolbar buttons
| Button | What it does |
|---|---|
| Settings | Opens Explore Preferences (default Y range, X range, line width, sound snippet WAV, output device). |
| Lists | Shows predefined file lists stored in your Data Folder β useful for quickly loading a curated set of FRFs. |
| Share | Copies a shareable URL (or file list) to the clipboard so a colleague can open the same set of files. |
| Colors | Switches the entire palette (Default, Warm, Cool, High Contrast). |
Convolve
PyScriptConvolve applies a measured FRF to a dry audio file using full complex frequency-domain convolution: Y(f) = H(f) Β· X(f). The result sounds like the dry signal played through (or by) the measured instrument.
Step-by-step workflow
- Load an FRF. Under FRF Files, click Left / Mono FRF and pick an AvR, AvC, TRF, or CSV file. For stereo output, also load a Right FRF; the tool then produces a two-channel result with independent left and right filtering.
- Load a WAV. Under Signal (WAV), click Load WAV and select any WAV file (mono or stereo). Use βΆ Play WAV to confirm the dry signal.
- (Optional) Pick an output device. Under Settings, choose where playback should go from the Output device dropdown.
- Convolve. Click β‘ Convolve. The button is enabled only once both an FRF and a WAV are loaded.
- Listen and save. Press βΆ Play Result to audition, then πΎ Save to download the convolved WAV to your computer.
The four plots
FRF Β· Magnitude (dB)
- Shows the loaded FRF on a log-frequency axis.
- Both L and R channels are drawn if stereo.
Input Β· Spectrogram
- Time-frequency spectrogram of the dry WAV.
- Toggle dB / linear amplitude with Spec: dB in the toolbar.
Output Β· Convolved Waveform
- Time-domain waveform of the convolved result.
- Useful for checking for clipping.
Output Β· Spectrogram
- Spectrogram of the convolved result.
- Compare with the input spectrogram to see the FRF shaping effect.
Acquire
PyScriptAcquire turns your laptop and a USB audio interface into an impact-hammer FRF measurement system. It records hammer and microphone signals simultaneously, detects hits automatically, averages multiple hits per position, and saves a TRF per position plus AvR/AvC averages at completion (see What gets saved below).
Hardware setup
- Connect your USB audio interface (e.g. Focusrite Scarlett 2i2) before opening the page.
- By default, plug the impact hammer into Input 1 (left) and the microphone into Input 2 (right). Enable Swap channels in Template & Settings if your hardware is wired the other way around.
- Use Chrome or Edge β Safari and Firefox do not support the required audio APIs.
Instrument and test name
Click the π» Instrument button in the toolbar to name the violin or instrument
being measured. Acquire creates a folder named after the instrument inside your Data Folder, and
automatically numbers successive test runs (Violin_01, Violin_02, β¦).
The floppy-disk icon next to the test name lets you rename the current run β the folder on disk
is renamed to match.
First-time setup (Template & Settings)
Click Template: in the toolbar to open the Template & Settings dialog and configure:
| Setting | Notes |
|---|---|
| Input device | Choose your audio interface from the dropdown β takes effect immediately. You can also click the Device: indicator in the status row at any time for a quick device picker without opening the full dialog. |
| Ham trigger threshold | Voltage level (V) that triggers a hit. Lower values catch lighter taps; raise it to ignore ambient noise. |
| Time before / after hit | Pre- and post-trigger capture window in seconds. |
| Hammer / Mic time cutoff | Signal is zeroed after this time (0.001β5 s) β suppresses late reflections. Shown as a green line on the mini plots. |
| Hammer calibration (N/V) | Converts raw voltage to Newtons. Enter the value from your hammer's calibration sheet. |
| Mic calibration (Pa/V) | Converts raw voltage to Pascals. Enter the value from your microphone calibration sheet. |
| Hits per position | Number of good hits to average before the app considers a position complete. |
| Number of positions | Total positions per prefix group (e.g. 12 gives H01βH12). |
| Position prefix | Label prepended to position names. Enter a comma-separated list (e.g. H,V) to create multiple groups β H,V with 12 positions per group gives H01βH12 then V01βV12. |
| Swap channels | Moves the hammer trigger to the right input channel (Input 2). Use when the hammer is physically wired to Input 2. |
Plot Settings (inside Template & Settings)
The Plot Settings column controls the axis limits for all four plots, each shown as a single X axis range and Y axis range row (min β max):
| Fields | Controls |
|---|---|
| FRF X / Y range | Frequency range (Hz) shown on the main FRF plot, and fixed dB limits for its Y axis. Leave Y blank to use auto-scale (controlled by the dB range field). |
| Hammer X / Y range | Time window (s) and voltage range (V) for the Hammer time plot. |
| Mic X / Y range | Time window (s) and voltage range (V) for the Microphone time plot. |
| FFT X / Y range | Frequency range (Hz) and dB range for the Hammer FFT plot. |
These axis limits are saved with your settings and are part of templates β loading a template restores all axis ranges.
Agenda checklist
The right-hand info panel starts with an β¨ Ask Claude button, followed by an Agenda checklist above Run Settings. Ask Claude opens a new Claude.ai chat in another tab with a question started for you, pointing Claude at ObieWebApp's documentation β finish typing your question and send it (nothing is sent automatically). The Agenda is a step-by-step reminder for the full workflow, grouped into two sections:
| Group | Steps |
|---|---|
| Soundcard | Powered, 48v (2 lights); selected (in blue) |
| Software | Data folder; name instrument; rename test (if you want); choose template; edit Notes; verify in LiveView; hit Run (if needed); check hammer FFT; check coherence |
Click a step to check it off; it strikes through and the state persists across reloads. The whole checklist clears automatically the next time you press βΆ Start from idle or a completed run, ready for the next one.
Running a measurement
- Click π Data Folder and select the folder where results should be saved.
- Name your instrument via the π» Instrument button.
- Click βΆ Start. The app begins listening for hammer hits.
- Strike the instrument. The three mini plots (Hammer FFT, Hammer time, Mic time) update after each hit. Check that the hammer pulse is clean β a double-hit shows two bumps in the Hammer time plot.
- After the required number of good hits the Position complete dialog appears. Choose Next Position β to advance (the mini plots and current FRF clear for a fresh start) or Repeat to re-do the current position.
- Use β© Undo Hit to remove a bad last hit, or π Clear H01 to restart the current position. βΊ Start over clears all positions.
- When all positions are complete, AvR/AvC averages are saved automatically (per prefix group, plus a combined set if you used more than one β see What gets saved below) and a Run complete banner appears.
- To start the next run on the same instrument, click βΆ Start again β the test name increments automatically (e.g.
Violin_01βViolin_02) and all positions reset.
.trf file (updated after every hit, named by its
resolved position label, e.g. H03.trf or V07.trf) and one
.wav raw capture per hit inside a raw/ sub-folder. TRF files
include coherence and run metadata (sample rate, threshold, cutoffs, device name) readable
by Explore. At run completion, an .avr (magnitude average) and
.avc (complex average) file are written to the instrument folder root for
each prefix group, named <run> <group>.avr/.avc β e.g. an H,V run
named test2_09 with 12 positions per group produces test2_09 H.avr
/ .avc, test2_09 V.avr / .avc, and a combined
test2_09 HV.avr / .avc across all 24 positions.
Reviewing the FRF plot
The main plot shows the current position's FRF building up with each hit, along with a coherence overlay (Ξ³Β², scaled to the bottom third of the Y range). When you advance to the next position the plot clears so you start fresh β previous positions are saved on disk and can be loaded in Explore. Use the plot-toolbar controls to toggle log/linear X axis, rescale Y, or adjust the dB range.
Templates
A template stores your complete measurement setup β trigger settings, calibration factors,
position count, and all plot axis limits. Templates live in
ObieAppSettings/Templates/ inside your Data Folder.
- Click Template: in the toolbar to open the Template & Settings dialog.
- Click a template in the list β it applies immediately (fields update right away). An Undo button reverts an accidental click.
- The primary button at the bottom reads Use Template when your settings still match the applied template. Editing any field switches it to Update and Use Template, which saves your changes back into that template as well as applying them. With no template applied, it reads Use Settings and applies your changes to this run only.
- To save the current settings as a brand-new template, click Create New Template.
- Reset Default Templates re-downloads the built-in templates ("HV 24 Obie Rig", "ScratchPad", "Scratchpad Obie 26") without touching your custom ones.
Audio device disconnect
If the USB audio interface is unplugged or interrupted while acquisition is running, Acquire stops immediately and shows an alert. Re-plug the device and click βΆ Start again. If you change the selected input device in Settings while audio is active, the audio stream restarts automatically on the new device.
Session Notes
Click Notes (next to the Template button) to open the Notes panel and enter
free-text observations about the session. Notes save to notes.txt in the
instrument's folder and are shown in Explore when you hover that instrument's datasets.
The first time you open Notes for an instrument with no existing file, it's pre-filled with
a fill-in-the-blanks template (date/time, location, experiment, researchers, instrument info,
measurement info) to fill in or delete as needed.
Use π Delete Notes & Start Again (with a confirmation prompt) to clear the
notes and remove notes.txt from disk. π· Add Photosβ¦ attaches one
or more image files to the instrument, and πΈ Camera opens a live preview from
your computer's webcam with a Snap button to capture and save a photo directly β
both save into a photos folder alongside the notes. Saved photos are shown as
thumbnails; click one to open the full-size image in a new tab.
LiveView
Click LiveView to open a full-screen view of the FRF plot β useful when the laptop is placed at a distance from the instrument during measurement.
Technical reference β signal processing & file formats
Detailed derivations of the H1/H2 estimators, coherence, band averaging, convolution, and the acoustic wave equation, plus full binary file format specifications: Technical Reference (HTML) Β· ObieDocs (original PDF).