Coder Social home page Coder Social logo

chysn / o_c-hemispheresuite Goto Github PK

View Code? Open in Web Editor NEW
319.0 48.0 130.0 11.13 MB

Hemisphere Suite is alternate-alternate firmware for Ornament and Crime, featuring a dual-applet framework with dozens of different modular functions.

C++ 96.66% C 2.18% R 0.18% Python 0.87% Shell 0.02% Makefile 0.09%

o_c-hemispheresuite's Introduction

Hemisphere Suite: Alternate-Alternate Firmware for Ornament and Crime

My image

firmware:

Hemisphere Suite is an open-source project by Jason Justian (aka chysn)

ornaments & crimes is a collaborative project by Patrick Dowling (aka pld), mxmxmx and Tim Churches (aka bennelong.bicyclist) (though mostly by pld and bennelong.bicyclist). it (considerably) extends the original firmware for the o_C / ASR eurorack module, designed by mxmxmx.

hardware:

eurorack / teensy 3.2 DAC8565 quad 16bit CV module w/ OLED display

14HP, depth ~ 25mm

build guide: http://ornament-and-cri.me/

o_c-hemispheresuite's People

Contributors

chysn avatar dowotheedowo avatar evgazloy avatar mdashdotdashn avatar mxmxmx avatar patrickdowling avatar qiemem avatar timchurches avatar wheelibin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

o_c-hemispheresuite's Issues

Support for Plum Audio 1uO_c4Robots?

Looks like if you try installing Hemisphere on Plum Audio's 1uO_c4Robots, your outputs are a mangled mess of voltages despite what the screen tells you. I'm under the impression it's a result of the VOR variable voltage outs that's been made a feature of it. Any chance we could get official mainline support for this? ISTR there being a beta firmware of Hemisphere that supports it that are pre-installed on the Pulplogic 1uO_c's.

LowerRenz misbehaves

Found a repeatable Bug which freezes the Module (1.4.B)

-Left side:
LowerRenz

-Right side:
LoFi Tape (for example)

-Save State

-Power down

-Power Up

-Select App Selection on the right side

-Turn right encoder CCW <- Important!
when You get to the LowerRenz app it freezes!

Crashing while pressing stem on P1 while using sequence5 on P2

I had it on for a few hours so that may have contributed, but after a while whenever I would press the knob stem on P1 while I had the 5 step sequencer going on P2 it would freeze then reboot the module. Wouldn’t matter what module was selected on P1.

BootsNCat - Kick

Is there anyway to adjust the attack on the Kick so it doesn't click? I get inconsistency with the Kick causing an audible click on output. It needs the slightest adjustment to keep from clicking at higher gain settings on output.

[Buchla] Clock div app expects bipolar CV for div/mult, doesn’t work for Buchla CV

The clock divider/multiplier app accepts bipolar CV to adjust division/multiplication. In the Buchla world, all CV is unipolar. Thus it is impossible to reach the multiplication side of the app via CV (for, say, ratcheting).

In a Buchla unipolar, 0-10v CV, world, it might make sense to have 0-4.99v represent multiplication and 5-10v represent division (essentially offsetting the input expectations).

This is probably an issue in multiple apps, so if the expectation change can be generic that would be a win.

New Applet: Normalizer

Hi. I'm just starting with Hemisphere and really enjoying it. I'd like to write a new applet that would take an input CV and allow it to be mapped to a new range. This would be handy for things like taking a clock from a pocket operator which is I think 1V and amplifying it up to 5V, or scale/offsetting LFOs, etc. There are plenty of analog scale/offset modules which can do this job without needing to involve an O_c but I've yet to see one that works like a map() function where the input minmax is mapped to an output minmax. If there's already an applet that does the job just as easily, feedback to stop trying to reinvent the wheel is welcome, otherwise some guidance on what I could read or who to speak to in order to start development is what i'm after. Also feedback on what else this applet would need to feel useful.

My thoughts so far is that it should have a few different modes accessible by an encoder long-press

  • map(a,b,c,d) style normalization
  • rolling average / auto normalization / limiter
  • scale + offset style normalization

The gate input could be to

  • learn the input min/max range

Possible to add Quantermain back?

Would it be possible to add Quantermain back to the exclusive apps? Loosing the trigger functionality with DualQuant within Hemespheres is a deal breaker for me.

Darkest Timeline Parallel MIDI Probability

thanks for midi out in darkest timeline, i love it. one thing i noticed, the alternate output has no probability, the sequence plays just through, is this by design or maybe a bug?

Feature Request: Slew on/off via binary inputs

would be awesome to be able to activate/deactivate slew with a gate sequencer for per-step glide! slew could default to on but if input is patched have gate high turn it on and gate low turn it off.

Issue with Captain Midi

Hi there,
i've just put Hemisphere Suite 1.4 on my O&C. I'm trying the Captain MIDI app and experiencing a problem.
If i send a melodic sequence over MIDI, O&C updates with the graphics as correct (showing the incoming midi notes) but doesn't send out a correct pitch cv signal, there are no discernible differences between different notes. I tried changing cables, VCOs, and outputs on the O&C and I can't get it work as expected. Could you give me some pointers on where I might be going wrong please? Very keen to use this app!
best wishes,
Guy

Enigma, Jr.: Register view not offset

Per aaooaa via Muffwiggler: So I think I've got a bug but it's my first time using Hemisphere so I might be wrong. When using Enigma Jr in the right Hemisphere the register is displayed on the left hand side and covers whatever is loaded there. Seems to work fine when using it on the left though.

Saving State

The selected waveform in vectorLFO doesn´t seem to be saved here.

Possible to add Midi Clock to MidiIn?

Would it be possible to add "Midi Clock" to the Midi-In applet? Would be really awesome to have this functionality outside of CaptainMidi.

Thanks,
Charlie

1.7 Carpeggio Trigger Issue

Carpeggio, in Left Hemisphere, does not respond to any input. I have confirmed the triggers work for other modes; BootsNCats for instance. Carpeggio also does not respond to input on the Right Hemisphere but I think there may be an issue with my Digital 3 input on the hardware side.

1.6b (Flipped Screen) BinaryCtr counter backwards?

Is there a potential to flip the counter as well so it follows left to right, top to down behaviour?

Proposed:
Left side
cv D: 0001
cv C: 0010
tr D: 0100
tr C: 1000

Current:
Left side
cv D: 0010
cv C: 0001
tr D: 1000
tr C: 0100

TrigSeqs duplicate steps

via MuffWiggler: I am afraid I've found a bug also. TrigSeq seems to add one step to both sequences (tried in right panel, clock is taken from Metronome)

Default starting app

Is the a way to set an app to be the default starting app on a hemisphere? I always use Clock Div on the left hemisphere, so it would be great for that app to be the default on power up for that #side.

"A"SR Freeze when scrolling past USER1

In 1.5A, when selecting a scale in the "A"SR widget further to the left of USER 1, O+c will lock up. It will also freeze past scale "B-Pl" if scrolled to the right. I am assuming this is the same issue.

Clock Skipper

I noticed something else. If I feed a Pattern into the Clock Skipper App, so an irregular pattern and turn up the probability 100% i get not the same patter as the one i feed in. Is this app just for regular clocks? should that not be like the Brancher without switching the outputs?

Captain Midi crashing on fast midi input

Hello
First of all thank you for the fantastic work you have done here - Hemisphere is a daunting piece of work and I really love it so much!

I experience an issue with Captain Midi crashing the Teensy on an otherwise perfectly functioning module. I have fairly fast CV signals going into all four CV inputs which are then fed to channels 1-4 as mod data. It works fine for some time but at some point, inevitebly it seems, it crashes the whole Teensy leading to glitches on the screen and the whole thing dead until reboot.

I am running Hemisphere v1.8 on a mini OC with a Teensy 3.2 overclocked to 120 mhz as per the OC instructions.

I hope this information is useful and otherwise let me know if you want more detail. I atttach here a picture of the dead Captain Midi.

Thanks

2

1.6c (flipped screen) "A" SR ABCD outputs reversed

Should the behaviour look like this?
Flipped:
DCBA vs ABCD (Normal)?

Currently it still is outputting as if it were normal (not flipped) orientation.

Normal:
Out A: The most recent sample
Out B: n steps back
Out C: 2n steps back
Out D: 3n steps back

1.6b (Flipped Screen) Trending Not working?

Hi Chysn,

Trending does not detect anything but a "Steady" state in cv A B C or D throughout the range of sensitivity.

Thanks again for the quick response and sorry for spamming issues especially if they are all related to the same bug.

Addition to SynthModes?

Hi @Chysn

I run https://www.synthmodes.com and the Synth Modes app for iOS. O&C Hemisphere is one of the most requested modules I have yet to add. The documentation that powers the website and app is open-source and available here: https://github.com/boourns/synthmodes

I see the MIT license is on the documentation, so by license I would be okay to base my documentation on the wiki here, but I wanted to say hi and ask permission regardless.

Do you have any issue or preference with me adding documentation for Hemisphere based on the existing wiki and/or existing open source cheat sheets?

Thanks,
Tom

Gated VCA app stops working when screen goes to sleep

I have the Gated VCA running, but when the screen goes to sleep, the GVCA stops working, or at least is mostly muted.* I am activating the GVCA with a trigger from Euclidean Circles V2 and the GVCA is managing noise sent to a T-Networks percussion module to create a clap/snare-like sound. It does the same if manually activating the screen-saver, or just letting the screen time-out on its own.

*Definitely muted, rather than stops completely.

Feature Inquiry: ShiftGate Normaling

Firstly, since discovering ShiftGate, I love it. It's tremendously useful!

Is it possible to internally normal the first channel's output to the second channel's input in code (A > C2, C > C4)? I'm doing this with stack cables now, and I'd love to save some cables and clutter. A pattern based on the other pattern is really useful to me, so mostly I'm curious if it's possible with the code and hardware as is (even if it's not something that goes into general release)?

Key Mixing UI for Quantizer

I'd like to suggest an optional variation on the quantizer user interface, based on the Camelot Wheel/Circle of Fifths, discussion here

The encoder would alow ideal navigation, rotation with the encoder switch moving between the inner and outer ring. I think it would be a great help when trying to jam with other people.

Thanks for your efforts, it's a wonderful firmware.

ClockDiv - Multiply doesn't work

I just installed Hemisphere Suite v1.6 on my O&C, and I might have found a bug, or I'm overlooking something.

These are the steps to reproduce it:

  • Clock divider app (on left hemisphere)
  • Clock from Batumi square wave to TR1 IN

Issue: OUT A doens't output anything when clock multiplication is set. Clock division works fine.

ShiftGate: Channel 2 goes dark?

I was playing with ShiftGate this afternoon, and at one point I switched channel one from Gate to Trigger - or back? - I can't recall offhand, and channel 2 seemed to become stuck such that regardless of inputs the gate was seen as low so the pattern cleared out and no new outputs were generated. I tried reconnecting all cables with no luck. Resetting fixed, but it was in the middle of a practice set, which was unnerving. It's possible there was human error, but I don't think so. I've just integrated ShiftGate into my performance patch recently, so if the behavior repeats, I'll try to get a more accurate diagnosis.

1.3 Not Working

I tried loading version 1.3 of the suite. Once I rebooted my OC, I was unable to get out of the load page. I pressed and held everything, nothing worked. The load bar completed it's cycle, but that's the only animation that you see. I reloaded version 1.2 and it's working like it was before.
Since I'm leaving this note, might as well tack just one more on. I've noticed that the I can only get one quantizer to work at a time when using the dual quantizer app; the module will freeze and I'll have to reboot.
I love the hemisphere suite, hope this feedback helps.

HEM_Tuner bug in FLIP_180 mode

When compiling with FLIP_180, the tuner warning/help messages indicate it should be run in the right hemisphere. The hardware constraint forces it to use digital 4 input which is the left hemisphere in flipped mode. Here is what I did to fix it, although this could probably be cleaned up.

diff of HEM_Tuner.ino (old to new):

74,75c74,86
<         if (hemisphere == 1) DrawTuner();
<         else DrawWarning();
---
>         if (hemisphere == 1) {
> #ifdef FLIP_180
>             DrawWarning();
> #else
>             DrawTuner();
> #endif
>         } else { 
> #ifdef FLIP_180
>             DrawTuner();
> #else
>             DrawWarning();
> #endif         
>         }
100c111,114
<             help[HEMISPHERE_HELP_DIGITALS] = "1=Input";
---
>             help[HEMISPHERE_HELP_DIGITALS] = "Due to hardware";
>             help[HEMISPHERE_HELP_CVS]      = "constraints, the";
>             help[HEMISPHERE_HELP_OUTS]     = "Tuner must run in";
>             help[HEMISPHERE_HELP_ENCODER]  = "left hemisphere";
103d116
< #endif
106a120
> #endif
107a122,127
> #ifdef FLIP_180
>             help[HEMISPHERE_HELP_DIGITALS] = "1=Input";
>             help[HEMISPHERE_HELP_CVS]      = "";
>             help[HEMISPHERE_HELP_OUTS]     = "";
>             help[HEMISPHERE_HELP_ENCODER]  = "A4 Hz P=Reset";
> #else
111,113d130
< #ifdef FLIP_180
<             help[HEMISPHERE_HELP_ENCODER]  = "left hemisphere";
< #else

Updated View() function:

    void View() {
        gfxHeader(applet_name());
        if (hemisphere == 1) {
#ifdef FLIP_180
            DrawWarning();
#else
            DrawTuner();
#endif
        } else { 
#ifdef FLIP_180
            DrawTuner();
#else
            DrawWarning();
#endif         
        }
    }

Updated SetHelp() function:

    void SetHelp() {
        if (hemisphere == 1) {
#ifdef FLIP_180
            help[HEMISPHERE_HELP_DIGITALS] = "Due to hardware";
            help[HEMISPHERE_HELP_CVS]      = "constraints, the";
            help[HEMISPHERE_HELP_OUTS]     = "Tuner must run in";
            help[HEMISPHERE_HELP_ENCODER]  = "left hemisphere";
#else
            help[HEMISPHERE_HELP_DIGITALS] = "2=Input";
            help[HEMISPHERE_HELP_CVS]      = "";
            help[HEMISPHERE_HELP_OUTS]     = "";
            help[HEMISPHERE_HELP_ENCODER]  = "A4 Hz P=Reset";
#endif
        } else {
#ifdef FLIP_180
            help[HEMISPHERE_HELP_DIGITALS] = "1=Input";
            help[HEMISPHERE_HELP_CVS]      = "";
            help[HEMISPHERE_HELP_OUTS]     = "";
            help[HEMISPHERE_HELP_ENCODER]  = "A4 Hz P=Reset";
#else
            help[HEMISPHERE_HELP_DIGITALS] = "Due to hardware";
            help[HEMISPHERE_HELP_CVS]      = "constraints, the";
            help[HEMISPHERE_HELP_OUTS]     = "Tuner must run in";
            help[HEMISPHERE_HELP_ENCODER]  = "right hemisphere";
#endif
        }
    }

App Concept: Annular Fission (Quad Euclidian Circles)

I may try to tackle this myself eventually, but I wanted to share this here - no expectations obviously (if there's a better place for this, please direct me).

I understand the HEM file structure, but the APP's are more complex, and I'm not quite sure I understand well enough to adapt Annular Fusion into an APP version. Anywho, here is the notion:

AnnularFission

Arrow above the numbers bounces 1 pixel up and down and indicates the circle the knobs are currently set to modify.

Knob 1, Fill
Knob 2, Length

Up Arrow, Last circle
Down Arrow, Next circle

Knob Button 1, Switch Control to rotation / fill
Knob Button 2, Maybe manual reset? Maybe toggle CV between reset and rotation?

Trigger in to clock the respective circle
Option to have the CV in be rotation or reset (not shown in UI mock)

Beyond this, the app behaves like Annular Fusion. The mockup uses rings that are sized to the smaller ring for Annular Fusion. I have trouble reading Annular Fusion as is, and I think having a quad version would help in this respect and otherwise seems like a compelling app.

Tuner can't be used in Flipped Screen

Tuner needs to observe the FLIP_180 option. This involves allowing it in the left hemisphere when FLIP_180 is enabled. This fix will be released with v1.6 on Oct. 26.

Quantizer Latency

Shledge wrote:

I've noticed there is noticeable slight latency when you put a gate into the quantiser modes, especially if you tie it to a VCO being controlled by a VCA or filter - you'll hear a small part of the previous note as tit updates. If you let it autodetect, there's no latency.

FEATURE REQUEST

Hi Not sure if this is the right place to ask, but is it possible to adjust the minimum LFO speed so they are slower? Currently in the vector LFO it is 0.1Hz and in the skewed LFO is ~3sec? Can these be made even slower like the quad LFO in the OG apps allowed? Cheers

"A"SR quantise issue

When sequencing with a quantised sequencer (such as René) and no scale is selected in Hemisphere, some of the notes seem to be offset from time to time. The gate input is taken from the output of René.
I can't reproduce this issue if I'm running the same patch in o_C CopierMaschine.

Unlinked "A"SR

Is it possible to run "A"SR in both hemispheres without being linked? I'd essentially like to be able to have two shifted inputs, and Hemisphere is the most efficient channels/hp there is if it's able to be run unlinked.

CVRecorder provides VMax when recording 0V or less

Hemisphere Suite 1.3, CV Recorder loaded on right side: Maths Channel 2 output patched into CV in, O_C output patched into V/Oct of uBraids. When getting close to 0V or below, the pitch output jumps up. It is hard to adjust the Maths channel to level which is low enough to have O_C send about 0V.
Proposal: Have CV recorder clip to 0V when input is 0V or less, or - even better - also record and put out negative values, when seen on the input side. Can teensy do that? Don't know...
Thanks for the great stuff anyway!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.