Tuesday, July 3, 2018

Hemisphere Beta Release PFAQ

PFAQ? Potentially Frequently-Asked Questions, because I haven't been asked any questions yet. But I'm looking for synthesists who are interested in trying alternate firmware for Ornament and Crime, and providing bug reports and feedback.

When is the release?

July 4, 2018, at www.beigemaze.com

How will it be released?

A Teensy hex file is available at http://www.beigemaze.com/hemisphere.html.

You can install with the instructions at http://ornament-and-cri.me/firmware/#method_a.

This is a beta release. I'm looking for people who'd like to try Hemisphere and provide feedback. You should be comfortable installing firmware, and optionally reverting back to the previous version if you want to return your O_C to its factory state. It's not a difficult process, but unfortunately I can't hold your hand very much.

Will I lose any data saved in my O_C?

Yeah, it's a pretty safe bet that you'll lose everything saved in your O_C. This isn't something you want to do just before a show.

Will I lose any apps?

The native Ornament and Crime firmware pretty much takes all of the Teensy's memory. So I had to free up about 20K by disabling Meta-Q in this release.

Do I have to be part of the beta, or can I just download Hemisphere and install it?

When the hex file is released, you can just download Hemisphere and install it without participating in the beta. But it's all going to be pretty informal anyway. I won't be asking beta testers to follow any particular procedures or use bug tracking software. The best place to talk about the beta will probably be right on this here blog page.

Is it finished?

There's always room for improvement, but there are 14 applets available now. These are:
  1. Dual Quantizer - Selectable scales, continuous or clocked operation
  2. Dual Clock Divider/Multiplier - Two divider/multipliers share a single clock, from 1/8 to 8/1
  3. 5-Step Sequencer - 2 1/2 octaves, quantized to semitones
  4. Dual 8-Step Trigger Sequencer - Edit steps in groups of four, with adjustable length
  5. Sample and Hold with Random - One is a conventional S&H implementation, the other side is a clocked random source, with the option for both sides share a single clock
  6. Dual Calculator (arithmetical operations) - Sum, difference, min, max, average, and ranged random
  7. Dual Logic (boolean operations) - AND, OR, XOR, NAND, NOR, XNOR, with the option to put the operator under CV control for both channels
  8. Threshold Logic Neuron - Generate complex but deterministic clocks or states; this is how they thought the brain worked in the 1950s
  9. Two-Channel Gated/Sequential Switch - Switch between two voltages with a gate signal and/or a clock
  10. Probability Brancher - Switch between two voltages for each clock pulse, based on a set probability
  11. Skewed LFO - From saw to triangle to ramp, add a little simple modulation
  12. Dual ADSR - This
  13. Lo-Fi Tape Looper - One second. 8 bits. 2kHz. Go!
  14. Gated VCA - Sort of a two-level VCA, accepts a signal, modulated by CV, and unleashed with a gate... or not, your call
There's a YouTube video going over the functions of each module at https://www.youtube.com/playlist?list=PLC5d4vp670NsuEUQybeCPYOvoDJb9fnBi.

There will be more apps in the future, but to make space on the O_C for more, I'll have to do a full release that removes most of the native O_C apps.


  1. Great functionality!

    I discovered that the user scales in the quantiser don't work. Maybe you are aware of this already. I can imagine that this information is linked to the quartermain app itself and that you don't want to include a scale editor in your small app.

    Not a very big deal as it made me dive in the code to add the scale that I needed myself. Which worked. Yay!

    1. Thanks for the info! Your explanation seems like the correct one. I think the best course of action is to leave them on the list, but note in the documentation that you'll need to go code-diving to add the scales. The O_C website has a nice explanation of that process for those so inclined.

  2. Will Hemispheres overwrite calibration data?

  3. Thanks for the app, its great!
    i have a question, does the clock divider has a reset input?

    1. I've added the clock divider reset, which will be available in Beta 5 tomorrow morning (July 17).

  4. Holy crap..Hemisphere is awesome. I've now moved both of my OnCs over it. I do have a couple of small suggestions, I have no idea if they can be incorporated into later releases or not.

    1) Skewed LFO minimum frequency. I used to love setting quadaturia to glacial speed and letting it slowly run.

    2) A master clock app. They would be great as I'm pretty much using my beat step pro as a master clock to sync everything.

    3) Dual Quantitise...Base root note. Not for me, but for more musical types I've been told this is important!

    Once again cheers for developing this!

  5. Thanks for trying it out!

    The October release of Hemisphere Suite will have more LFO options, with the ability to go way slower. The 1.6 release's theme is going to be Timing.

    In the same vein, expect a master clock applet in the near future.

    The Dual Quantizer already has a diatonic root note as of Hemisphere Suite 1.4.

  6. Any chance or getting the bytebeat app (viznutcracker) from OnC as a hemisphere app? Ive recompiled it to add in the few OG apps that I did use (quad LFO and ENV), but that one keeps on spitting up errors I cant fix.

    Cheers and once again great work!

    1. Probably not, but if you let me know what errors you're getting, I might be able to give you some insight.

      I've reconfigured the EEPROM storage quite a bit, and took out pretty much everything that supported the original apps, so some might be harder to replace than others.

    2. Cheers for that, will have another crack at it tonight. The only three OG apps I used was the LFO/ADSR and the bytebeat. With the new LFO vector waveforms I can probably drop piquied and Quadraturia now.

    3. the LFO and ADSR compile, but result in a unresponsive unit and blank OLED. The bytebeat comes back with the following errors in compile..

      APP_BYTEBEATGEN:340: error: 'History' in namespace 'util' does not name a template type
      util::History history_;

    4. Unresponsive unit and blank (or frozen) OLED usually means a runtime segfault. These can be ridiculously hard to track down because there's no runtime debugger for the Teensy. The basic problem is that so many things have been changed in Hemisphere Suite that it's a pretty hostile environment for the classic O_C apps.

      If I had to make a guess about the Bytebeat issue, I'd say that it's missing OC_DAC.h, so put this at the top of the file:

      #include "OC_DAC.h"

  7. Awesome. will give that a try, just flashed both units with vanilla 1.6. The vector waveforms are awesome


Pitch Calculation and Output

"If pitches were horses, we'd all be eatin' steak." --Jayne Cobb And where have I been for almost two months? I was busy...