Overview
HV1 is a 16HP oscillator from Weston Precision Audio that mixes analog and digital. At its core is an analog triangle-core VCO, whose sine, triangle, sawtooth and pulse outputs are fully analog. The triangle also feeds a digital phase shifter running at 150 kHz with 16-bit DACs. That digital stage drives the right-hand hybrid outputs, a phase-shifted triangle turned back into saw, sine and pulse by analog circuits, plus the WT (wavetable) output.
Around that, HV1 has through-zero FM, linear phase modulation over ±720 degrees, a digital detune that makes it act like two parallel oscillators, and an Aux CV input you can route to wavefolding, bitcrushing, or a wavetable chord or cluster. It also has a built-in tuner.
Wavetables on the HV1 Hybrid Oscillator
The WT output always plays a bank of 16 tables held in memory, and the Morph knob and CV blend smoothly from the first to the sixteenth. HV1’s internal tables are 1024 samples long. User tables come from the front-panel SD card in two formats, and HV1 converts both to its own bank size as it loads.
WaveEdit files are 16-bit, 256 samples per table, 64 tables per file. HV1 assumes exactly that, interpolates each table up to 1024 samples, and because a bank is 16 tables, each WaveEdit file shows up as four banks. Serum files are 2048 samples per table, and HV1 picks 16 evenly spaced tables to build one bank: from a 256-table file it takes every 16th table, then downsamples each to 1024 samples.
The Serum route has catches. HV1 needs 32-bit files to be integer, not float, and Weston notes that many Serum files carry non-standard header data that stops them loading. Weston’s fix is to resave them as plain 16-bit mono WAVs. For that reason, WaveStack’s E352 / E370 (WaveEdit) target is the reliable choice here: it writes a plain 16-bit mono WaveEdit bank of 64 frames of 256 samples, resampling any table to 64 frames. Its Serum target writes 32-bit as float, which HV1 can’t read.
If you build an 8 × 8 grid in WaveStack, it’s written row by row, so if HV1 splits the file in order, each of its four banks holds two rows of your grid. When you switch banks with antialiasing on, HV1 takes a few seconds to build its high-octave tables. Antialiasing for the WT output can be switched off in the Options view, which also has a setting to shift the wavetable output up an octave. With an empty card or none at all, the WT output loads an alternating sine, saw, square and triangle morph. To convert a whole folder of Serum-style WAVs, link the card in WaveStack with the E352 / E370 target selected: Export lists each file as ready, needs converting or unreadable, and Convert all rewrites the ones that need it as WaveEdit banks.
Specifications
| WaveEdit files | 16-bit, 256 samples × 64 tables (shown as 4 banks) |
|---|---|
| Serum files | 2048 samples per table, 32-bit integer (not float) |
| Tables per bank | 16 |
| Internal table size | 1024 samples |
| Digital resolution | 16-bit, 150 kHz |
| Transfer | Front-panel SD card |
| Width | 16HP |
From WaveStack to the HV1 Hybrid Oscillator
- Build or import a table in WaveStack.
- Open Export and pick E352 / E370 (WaveEdit) as what the table is for. It writes a plain 16-bit mono WaveEdit bank, the format HV1 handles most reliably.
- Save to the SD card, or to a linked folder on the card.
- If HV1 is running, unmount the card first: on the wavetable morph screen, hold the encoder for 2 seconds until the screen reads SD CARD NOT MOUNTED.
- Insert the card with its notch facing up and hold the encoder for 2 seconds again to mount it.
- In the wavetable view, use UP and DOWN to jump between WAV files and turn the encoder to step through the four banks in each file.
Frequently asked questions
Why won’t my Serum wavetable load on the HV1?
Two common reasons, according to Weston’s manual. Many Serum files have non-standard data in their WAV header, which HV1 can’t parse, and HV1 can’t read 32-bit float files, only 32-bit integer. Weston recommends resaving the file as a standard 16-bit mono WAV. Another option is to import it into WaveStack and export it with the E352 / E370 (WaveEdit) target, which writes a plain 16-bit WaveEdit bank.
Why does one WaveEdit file show up as four banks on HV1?
HV1’s wavetable output morphs across 16 tables at a time. A WaveEdit file holds 64, so HV1 divides it into four banks of 16. Turn the encoder in the wavetable view to step through them, and press UP or DOWN to jump to the next file. Each 256-sample table is interpolated to HV1’s 1024-sample size as it loads, so the 256-sample source sets how much detail each wave has, not HV1’s playback resolution.
How does HV1 handle a 256-frame Serum table?
It doesn’t play all of it. HV1 builds a 16-table bank from the file by taking evenly spaced tables, so from 256 tables it uses every 16th one, and it downsamples each from 2048 to 1024 samples. Detail between those 16 frames is skipped. If your table changes a lot from frame to frame, a 64-frame WaveEdit export gives you four banks with more of the in-between frames.
Can I swap the HV1’s SD card while it’s running?
Yes, for wavetables. On the wavetable morph screen, hold the encoder for 2 seconds to unmount the card and wait for SD CARD NOT MOUNTED before removing it. After inserting a card, hold the encoder for 2 seconds to mount it, and HV1 loads the first file. For firmware updates, power the module off first, then copy the .BIN file to the root of the card, not inside a folder.