Releases: djphazer/O_C-Phazerville
Phazerville Suite v1.11.1
One
I fixed and refined some things...
- Eliminate memory leaks introduced in v1.11
- Guard against excessive MIDI processing, lock-ups
- Bigger USB Host buffer for high-speed devices
- Reworked UI for Quantizer selection in TwoRings, TB-3PO
- DuoTET: fix clocked mode
- Bungverb/Freeverb: fix CV control for decay, damp, and cutoff
Full Changelog: PSv1.11...PSv1.11.1
Two?
As always, the best is yet to come. I'd like to get a v2.0 beta build ready by the end of the year (2025). It will include major code restructuring and support for file management over USB - easy access to the SD card or internal LFS storage via a PC or mobile device. This currently depends on using the latest Teensyduino beta library with some custom modifications to usb_desc.h for MIDI + MTP support. Another possibility is class-compliant USB Audio support.
Firmware version 2.0 will drop support for Teensy 3.2 to fully embrace floating-point math operations and other luxuries of Teensy 4.
Free
I'm working to provide a great, extensible firmware platform with high-quality ideas and implementations for anyone to utilize at no cost. You can help by contributing code or coffee, by writing/editing documentation, or making demo/tutorial videos!
Choices
Pay attention! There are 5 different files here for 5 different hardware variants:
- T32 - for standard O_C hardware with Teensy 3.2
- T32+VOR - for Plum Audio O_C / OCP / OCP X hardware with Variable Output Range (VOR)
- T40 - for standard O_C hardware with Teensy 4.0
- NLM+cardOC - for the Northern Light Modular Easel card module with Teensy 4.0
- T41 - for all new O_CT4.1 aka ORN8 hardware
Phazerville Suite v1.11
✨ Smooth Operation
Thanks to @HaveANiceDay33 (aka Flashbung), we have two new flavors of reverb, and a super-mega-oscillator called HandSaw.
I also added global Slew for every output! Easily add portamento to pitch CV, decay tails to triggers, and smoothing to modulation.
Behind the scenes, I'm working on optimizations to prevent crashes when some processing takes too long, or when memory runs out.
✔️ Features
- Global output Slew
- Edit on full-screen applet config or in Clock Setup.
- Linear slew rate, approximate range: 6ms to 1.47s per octave
- Remember seed values for Shredder & ProbDiv/ProbMeloD - #157
- Save & recall the same exact deterministic sequences
- Thanks to @benirose! Long Live Benisphere!
- Support for 20Vpp DAC range on T41 (using HW_ID = ~0.125V)
- This may also be feasible on old O_C hardware, but will require a custom build... (hint)
- New T41 Audio Applets:
- Reverb (basic Freeverb algorithm)
- Bungverb (Schroeder/Moorer algorithm) - #162
- HandSaw - 4 voices, 3xOsc each, with Detune and Phase offset
- Calibration: hold X or Y for coarse encoder adjustments
🐛 Fixes
- Avoid some clumsy clock duplication scenarios
- Extra UI context labels in Clock Setup
- Clip after final gain in Dynamics applet (instead of overflowing)
- WAVPlay support for any sample rate (resampled to native 44.1khz)
- Various memory optimizations and crash guards
Caveats
T32 builds are still here, unsupported. (v2.0 will not support T3.2!) Some new features may be ported to the T32 branch for availability on Custom Builds, long-term support on v1.9.x. Output Slew works, but the setting is not saved. Newer applets like DuoTET and WTVCO may misbehave on old hardware.
⚡⚡⚡☕⚡⚡⚡
Enjoy the new PEW-PEWs, and please support me if you're able! Happy Patching!
Full Changelog: PSv1.10.2...PSv1.11
Phazerville Suite v1.10.2
Squashed a few more pesky MIDI config bugs that were hiding. Clock Sync should work better now.
🐛 Fixes
- On a fresh install, MIDI Input config didn't take effect until changing the channel number.
- Incoming MIDI Clock/Start/Stop were ignored unless a mapping was configured for Omni-channel.
- On Teensy 4.0 & 4.1, the Hemispheres app didn't save MIDI Maps or Sequence patterns.
- Some applets were loading/changing settings on the wrong quantizer slots.
- "Backup/Restore" App included on T4.0 & T4.1 - untested
- should work for copying Calibration Data between T32 and T40 EEPROM
- App Data isn't guaranteed to work, but you can try...
By The Way
- You can change Banks in the Quadrants Preset Load screen by pressing the Left-Encoder.
Check previous release notes for more info about the v1.10 series.
Full Changelog: PSv1.10...PSv1.10.2
Phazerville Suite v1.10.1
Some important fixes, and tweaks to make the calibration process easier for vendors.
🐛 Bugs Squashed
- Quantizer engine scale mask editing was broken (could only turn notes off) - #154
- Quadrants: Input Mapping settings weren't saved/loaded correctly for the "southside" applets
- Presets saved with v1.10 will be slightly broken, sorry!
- WavPlay applet: fixed crash when looping; improved stability
- also added input map for retriggering with a gate source
- Avoid CPU spikes by not waiting for display transfer in ISR
- Streamlined initial Calibration procedure ("Start Fresh? Yes")
- DAC interpolation is automatic (no need for long-press B)
- ADC offset is automatic; optionally use long-press B to re-zero
Full Changelog: PSv1.10...PSv1.10.1
Phazerville Suite v1.10
Known Issue in Quadrants: Input Mappings don't save correctly for the "southside" applets. Presets saved with v1.10 will be slightly broken.
Video Overview
🎹 MIDI & Modulation Enhancements
- All CV input mappings can be attenuverted, range of +/-448%
- Expanded MIDI input mapping - 32 slots (M1 - M32) to capture incoming MIDI traffic
- output as CV via MIDI-In applet (also used for editing the slots)
- map to inputs of any applet via Input Mapping
- modulate any parameter within the Audio applets or advanced CV applets
- mappings are saved globally (per bank file)
- (WIP) Captain MIDI partially reworked for new MIDI system changes, expanded to 8 channels on new hardware
⚡ Updates
- New DivSeq10 applet - single-channel variant of DivSeq
- Experimental MidiLoop applet - a clocked step recorder, up to 64 steps
- (audio) Fold/MMF - added multimode options: LP, HP, and Tilt EQ
- (audio) WavPlay - filter rework, with CV modulation
- Fixed save/load custom Waveforms on T4.x
- UI Long-press actions for Clock Start and Main App Menu happen on button release
- Various bugfixes and refactoring behind the scenes...
✔️ Made for Teensy 4.0 and 4.1
New features & new settings require more storage! While expanding to make the most of the new, we are surpassing the limitations of the old... This time around, we're making MIDI control and input modulation more flexible and capable.
The T40 build still includes most of the available apps, excluding Viznutcracker. (Try the BitBeat applet instead!) The NLM build is for the new T4.0-based cardOC for the Buchla Easel.
The T41 build includes the core Phazerville Apps (Quadrants, Scenery, Calibr8or, Scale & Waveform Editors) plus Piqued, Quadraturia, Captain MIDI, and Pong. This unified T41 firmware has hardware detection, suitable for all O.R.N.8 variants...
What about Teensy 3.2?
This version will still build and run on old modules, but no guarantees... there are only 8 MIDI map slots, input attenuversion settings won't be saved, and there's increasingly limited room for other Apps. All saved data from previous firmwares will be lost when upgrading to v1.10 on T3.2.
The Custom Build script will continue to use the T32 branch for stable long-term support with v1.9.x, possibly receiving cherry-picked updates.
⚡⚡⚡☕⚡⚡⚡
Full Changelog: PSv1.9.1...PSv1.10
Phazerville Suite v1.9.1
Primarily bugfixes for Teensy 3.2 EOL. Additional fixes may be pushed to the T32 branch to serve the Custom Builds.
(More updates for T4.x are right around the corner, including expanded MIDI Mapping... stay tuned!)
⚡ Features
- New BitBeat applet by @Ericxgao - #152, #148, #147
- supercedes Viznutcracker app
- use AuxButton to assign input modulation to parameters
- WARNING: T3.2 might choke when running it on both sides...
🐛 Fixes
- FLIP180: Corrected I/O reversal in legacy apps
- Metronome: properly restore modulated tempo/shuffle on unload
- Increased standard trigger pulse voltage from 5V to 6V
- EbbAndLfo: bipolar mode maxes out at +/-6V; Amp Level can be reduced to avoid clipping at -3V
- Waveform Editor: fix crash while editing
- Calibr8or: transpose works in semitones when Scale is set to OFF
- Various minor T41 fixes for Quadrants and Audio Applets...
🎓 New Contributors
Full Changelog: PSv1.9...PSv1.9.1
Phazerville Suite v1.9
It's time for new Crimes... we're out of beta! This chapter explores themes of Complexity & Contradiction.
⚡ Teensy 4.1 - Very Ornate
This is the first official firmware release for the new T4.1-based hardware... (TODO: links to products for sale ;)
Featuring Quadrants - 4x CV applets + 10x DSP slots (5 per channel) using new Audio Applets (designed by @qiemem) for effects chains and sound sources, with vast external or internal modulation potential.
Audio Applets currently include:
- Input - physical jack inputs
- Oscillator - various waveshapes and modulation options
- Ladder-style low-pass filter
- State-variable filter + wavefolder
- WAV file player with variable speed, tempo sync, DJ filter
- Delay - w/ 12-second buffer, multi-tap, time/feedback/dry/wet modulation, synced or free-running, Crossfade or Stretch modes (for Karplus-Strong)
- VCA - with variable curve
- Dynamics - gate + compressor + limiter
- Crosspan
- Mid/Side
- more to come...
The DSP runs at 16-bit 44.1khz - higher sampling rates may be possible in the future.
The entire platform is open-source, holding massive potential for ideation, prototyping & embedded development!
💽 Teensy 4.0 - Extra Storage
T4.0 on old hardware also gains more storage space for presets and sequences, lifting previous EEPROM constraints.
- 50 Hemisphere Presets on any hardware with Teensy 4.0
- 32 global sequence slots for Seq32/SeqPlay7
- 512KB total space in LittleFS (upgraded from ~3KB in EEPROM)
- Warning: save data from v1.8.x will be lost on T4.x after upgrading.
T4.1 will also use microSD storage for Quadrants preset banks - 32 Presets per Bank file. This means patch storage is portable! I've included a BANK_000.DAT file here with a handful of demo patches and sequences.
Calibration data is still stored separately in "EEPROM", so calibration on all modules should persist when upgrading.
✔️ Fresh Features in v1.9
Even Teensy 3.2 gets in on these goodies:
- Full-screen applet config view (double-click select button)
- with a cursor for configuring input mappings, internal clock trigger multipliers, or switching applets with a list
- rotate Left Encoder to switch between applet view and applet config
- Enhanced polyphonic MIDI Input handling from @beau-seidon (#113, resolves #32)
- WTVCO - new wavetable oscillator applet from @beau-seidon
- DuoTET - new microtonal quantizer applet from @efairbanks
- Mask rotation functions added to ProbMeloD, including CV modulation
- TwoRings - (renamed from DualTM, minimal changes)
- Scenery - upgraded from Scenes App
- 8 scenes on Teensy 4
- revised UI with coarse/fine adjustment via Left/Right encoders
- Quantermain octave range constraint parameters added by @Loupi - #134, #133
- Various fixes - #136, #132
🧓 Teensy 3.2 - EOL
The v1.9 series is the final stretch of support for Teensy 3. New hardware features have priority, and it's becoming less feasible to accommodate the speed, memory, and storage limits of the previous generation. Added features will continue to increase the binary size, leaving less room to squeeze in legacy apps next to Hemispheres on T3.2. Things might break, and some new settings won't be saved.
- Reverted large OLED support (subpage display transfer) to restore maximum framerate and reduce CPU usage.
📜 Legacy Apps
While most of the Apps fit into a single firmware for T4.0, most are excluded from the official T4.1 build in favor of the Audio DSP subsystem and its resource requirements - and I simply haven't been motivated to maintain a lot of them on the new hardware. They all still run great as 4-channel applications! Yet viable alternatives for quantizers, envelopes, LFOs, and sequencers exist as applets, so apps like Quantermain, Piqued, Quadraturia, and Sequins are somewhat deprecated. Later on, with better dynamic memory management, we can squeeze more stuff back into the binary, and maybe expand old favorites to utilize the 8-channel I/O (maybe for v2.0?) - maybe you can help?
Choices
_T41 includes: Quadrants, Hemispheres, Calibr8or, Scenery, Piqued, Quadraturia, Viznutcracker
_T40 has everything except Sequins
_T32 includes Hemispheres, Scenery, and Calibr8or, and a limited selection of other apps. I will make a reasonable effort to backport applet updates when possible, to make them available for the Custom Build bot 🤖
☕ Thank You for the Support!
Help fund R&D ⚡ and watch for exclusive T41 Preset Banks! Include your feature requests in a message for consideration ;-)
Full Changelog: PSv1.8.4...PSv1.9
Phazerville Suite v1.8.4
Maintenance release with fixes and features backported from v1.9 development.
Fixes
- Fixed SSD1306 display support regression - #121
- Calibration: use a lower Max point for DAC; avoids non-linearity at top of range - #114
Features
- New Clk2Gate applet - two-channel gate generator
- Parameters for Length, Length Variance, and Skip Probability.
- CV modulates Length.
- Calibr8 UI update by @beau-seidon in #111
- Brancher: flip-flop gate mode using TR2
- Squanch: added note wrap range parameter
- Metronome: CV inputs modulate internal Clock Tempo and Shuffle
- Max internal tempo raised to 65535 BPM for audio-rate clocking
- BugCrack: shorter minimum Snare decay
- Seq8 (fka SequenceX): reworked CV Randomize
- positive gate = unipolar; negative gate = bipolar
- Quantermain: clock divider max increased to 128 - #119
⚡⚡⚡☕⚡⚡⚡
Full Changelog: PSv1.8.3...PSv1.8.4
Phazerville Suite v1.8.3
This is the final v1.8.x release for the year before we move on to v1.9 and start changing things around. Some fixes, some features, all crimes.
Eye Candy
- New applet icons from ph.xyz! Visible in full-screen help, preset picker, and applet filtering list.
- Clock Setup makeover as an overlay
- DualTM UI update - dynamically adjusts depending on length
- DrumMap UI update from @qiemem - #110
Features & Fixes
- DivSeq - randomize on startup, UI button to re-roll (16 steps left, 32 steps right)
- TB-3PO - save/load seed-lock state; fix gate output stuck high after 36 hours
- Shredder - optional Shred-on-Reset, per-channel
- EuclidX - gate mode
- ADSR applet - save both envelope settings - #108
- Clock Out trigger skipping %, per output (settings in Clock Setup, not yet saved)
- Simplified DAC calibration routine
- support for larger OLED screens (slower refresh rate, subpage SPI transfer) - #91
- Expanded support for NLM hardware via Custom Builds
Build Choices
There are no more "_flipped" builds! Flipped screen/controls is configured by a calibration flag now. I'm also decommissioning the "_phz" builds after this one, but they're still here for existing v1.8 users with saved Hemisphere presets - the main builds have 4 preset slots, _phz has 8, and switching will invalidate Hemisphere save data. Are you confused yet?!
T3.2 builds include: Hemisphere, Calibr8or, Scenes, Piqued, Quadraturia, Passencore, Pong, Viznutcracker, Dialectic Ping-Pong
T4.0 includes everything except References.
T41 here is the same as T3.2. The latest Audio DSP features for T4.1 beta hardware are still under development on a separate branch while we work out better memory management strategies! Currently, it excludes all the legacy apps to make room in RAM...
⚡⚡⚡☕⚡⚡⚡
Full Changelog: PSv1.8.2...PSv1.8.3
(wiki-docs branch has been merged, so there are lot of documentation commits)
Phazerville Suite v1.8.2
What's my age again?
Monthly maintenance release for the v1.8 series. See previous release notes for more details.
Custom Builds are always produced with the latest updates and bugfixes. Stable nightly builds here.
Fixes
- Building with PlatformIO on Windows no longer requires Linux CLI tools (thanks to @zerbian!) - #105 / #19
- Calibration fixes - prevent right encoder long-press from exiting; updated text for ADC 1v & 3v steps
Features
- AutoReset - applets are automatically reset when the internal clock starts
- (currently no option to disable this; I couldn't imagine a use case where you'd want to start the clock without resetting...)
- Seq32 - record mode reworked; gate & glide options for accent
- Strum - step mode added, AuxButton on Length to toggle
- when engaged, only advance on clock
⚡⚡⚡☕⚡⚡⚡
Full Changelog: PSv1.8.1...PSv1.8.2