MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

2OC/Hemisphere Suite Clock Div pulse won’t trigger 281e?
MUFF WIGGLER Forum Index -> Buchla, EMS & Serge  
Author 2OC/Hemisphere Suite Clock Div pulse won’t trigger 281e?
mathomas
In my case it won’t. I compiled the latest a few weeks ago, with the obvious Buchla-related compiler directives commented in (sorry I don’t have my stuff in front of me so I don’t have the version — I’m writing this while I’m thinking of it).

Maybe I’m missing something? Have others made it work?

Thanks!

PS:

Here’s a scope trace comparing the two pulses — 250e in blue vs 2OC/Hemisphere Div output in yellow:

ArguZ
As of now hemisphere is not supported on the 2OC
The reason is that Euro works in -3+6V and Buchla in 0-10

There is hardware changes in the old 2OC that would need to be addressed in all apps.
The new 2OC 1.5 uses an inverted opAmp circuitry and that is the one I sent to Jason to experiment on.
So first we will hopefully see compatibility for the cardOC and 2OC 1.5 for the full hemisphere suite, the big one, not the extra apps .
mathomas
ArguZ wrote:
As of now hemisphere is not supported on the 2OC
The reason is that Euro works in -3+6V and Buchla in 0-10

There is hardware changes in the old 2OC that would need to be addressed in all apps.
The new 2OC 1.5 uses an inverted opAmp circuitry and that is the one I sent to Jason to experiment on.
So first we will hopefully see compatibility for the cardOC and 2OC 1.5 for the full hemisphere suite, the big one, not the extra apps .


Thanks! I guess the presence of the compiler directives threw me off, but they’re probably just a leftover from the original OC firmware (or there for experimentation as you guys work through it). I see now, by browsing the code a bit deeper, the directive that I commented-in is not controlling all that much: mostly quantization/octaval stuff.
jimfowler
Perhaps I'm misunderstanding the problem but if it's just a matter of getting Euro gate/trigger up to Buchla pulse levels wouldn't one of Tony's (synovatron) boards do the trick?

- Jim
mathomas
jimfowler wrote:
Perhaps I'm misunderstanding the problem but if it's just a matter of getting Euro gate/trigger up to Buchla pulse levels wouldn't one of Tony's (synovatron) boards do the trick?

- Jim


Yeah, it’s all Buchla in this situation. I have the dual O_C module for Buchla, with one side running Hemisphere. I’m feeding it Buchla pulses, but the clock divider output is insufficient to trigger the 281. Turns out Hemisphere is not fully compatible with Buchla at this point, which is fine. I just needed to know what to expect.
ArguZ
Time, time time...it will all come to you wink
mathomas
ArguZ wrote:
Time, time time...it will all come to you wink

Mr. Green
jimfowler
Right but wouldn’t Tony’s GTPulse board in between hemispheres and the 281 do the trick?
ArguZ
The Teensy is outputting the same 3V3 as before, that is scale by factor 3.
The software needs to be adjusted for the unipolar scaling..Same as the O_C suite.
Right now it probably tries to place a 10V pulse between -5V and +5V and the the hardware cuts the lower part so only a 5V pulse is present.
mathomas
ArguZ wrote:
The Teensy is outputting the same 3V3 as before, that is scale by factor 3.
The software needs to be adjusted for the unipolar scaling..Same as the O_C suite.
Right now it probably tries to place a 10V pulse between -5V and +5V and the the hardware cuts the lower part so only a 5V pulse is present.


I’m actually hoping to address this in a local build of Hemisphere, maybe this weekend. I’ve been looking at the code and I think I know how to proceed. If I make it work I’ll send the firmware developer a pull request.
mathomas
jimfowler wrote:
Right but wouldn’t Tony’s GTPulse board in between hemispheres and the 281 do the trick?


Thanks for these suggestions. I guess the GT Pulse could work but it’s not clear to me how to integrate it into my small system, with no spare space elegantly. If I can address it in software (here’s hoping), it’s cleaner, and all users benefit (eventually).

Thanks again.
mathomas
jimfowler wrote:
Right but wouldn’t Tony’s GTPulse board in between hemispheres and the 281 do the trick?


Oh, and ironically I actually have a un-racked CVGT1, but a) am not sure which of my many fully-packed cases of Eurorack to put it in, and b) even if I did, I don’t want yet another case of stuff littering my desk when Buchla-ing.

Yeah, it’s my problem — I’m weird that way :-)
mathomas
I have successfully hacked the firmware to emit a Buchla-sized pulse! I have now seen the clock divider successfully trigger a 281 channel, which is a huge win. While the code changes were simple, I need to boil it down to the minimal set of changes, and make it apply only for Buchla builds. Then I’ll submit a pull request to the Hemisphere developer

jimfowler
Awesome! I might dedicate half of my 2O_C to Hemispheres thanks to your efforts.

- Jim
mathomas
jimfowler wrote:
Awesome! I might dedicate half of my 2O_C to Hemispheres thanks to your efforts.

- Jim


Cool! My only worry is unintended consequences at this point. But maybe the Hemisphere dev can weigh in on that. I’m probably not going to dedicate a lot of time to extensive testing.

If you want to compile it yourself I can push the changes to my Github fork of the Hemisphere codebase once I’ve tested a bit more and cleaned things up a bit.
jimfowler
Yeah, I'd be down to give it a rip after you've played around a bit more. Worst case scenario I'll just reflash to the standard firmware if I find something that's really wonky.
mathomas
jimfowler wrote:
Yeah, I'd be down to give it a rip after you've played around a bit more. Worst case scenario I'll just reflash to the standard firmware if I find something that's really wonky.


Just FYI, I haven’t dropped this. I’ve just caught a really bad cold and have not been up to it. I did at least fork the Hemisphere repo and start over on the changes. I’ll definitely be getting back to it.
jimfowler
Please don’t rush on my behalf. I have seventy million other things to do/start/finish in the meantime!
mxmxmx
fwiw, i'm not overly familiar with the hemisphere code but quick looks suggests it should be as easy as passing a different octave value to ClockOut (in HemisphereApplet.h), ie say

void ClockOut(int ch, int ticks = HEMISPHERE_CLOCK_TICKS) {
clock_countdown[ch] = ticks;
Out(ch, 0, 8);
}

rather than

void ClockOut(int ch, int ticks = HEMISPHERE_CLOCK_TICKS) {
clock_countdown[ch] = ticks;
Out(ch, 0, 5);
}

and you probably want to do the same for GateOut. that should work for any version of the board, euro included, there's no particular reason to use a 5V clock or whatever 5 means in this context.

NB: i'm not 100% what would be the max value, it shouldn't matter as the functions downstream constrain the value (< 2^16), so it won't wrap around.
mathomas
mxmxmx wrote:
fwiw, i'm not overly familiar with the hemisphere code but quick looks suggests it should be as easy as passing a different octave value to ClockOut (in HemisphereApplet.h), ie say

void ClockOut(int ch, int ticks = HEMISPHERE_CLOCK_TICKS) {
clock_countdown[ch] = ticks;
Out(ch, 0, 8);
}

rather than

void ClockOut(int ch, int ticks = HEMISPHERE_CLOCK_TICKS) {
clock_countdown[ch] = ticks;
Out(ch, 0, 5);
}

and you probably want to do the same for GateOut. that should work for any version of the board, euro included, there's no particular reason to use a 5V clock or whatever 5 means in this context.

NB: i'm not 100% what would be the max value, it shouldn't matter as the functions downstream constrain the value (< 2^16), so it won't wrap around.


Thanks! Yep, that's pretty much what had done, and it seemed to do the trick.

Unfortunately I also fooled around with a couple of other CV constants (thinking of other continuous CV features of the firmware) "while I was in there", but I did not approach it scientifically, with measurements beforehand. Bad developer d'oh!

So I need to separate the clock level change, using some #defines to clean it up, and commit that separately. Then properly measure to determine whether these other changes are even necessary.
mathomas
OK, I have a few branches in my fork of the Hemisphere Suite repository:

https://github.com/mathomas/O_C-HemisphereSuite

The main branches of interest are:

https://github.com/mathomas/O_C-HemisphereSuite/tree/buchla-pulses
Gives 10v pulses/gates for Buchla stuff. I've (very shallowly) tested successfully (scope only) with all the pulse-y apps in the Suite. I'd appreciate feedback if other folks want to test.

https://github.com/mathomas/O_C-HemisphereSuite/tree/buchla-pulses-and -cvs
Try this branch/hex at your own risk.
Gives the above and also tries to scale max CV outputs to 10v. Does nothing for negative voltages. Works with the AD EG for sure. Probably with ADSR (I just didn't test it). Seems to work with Lorenz but there's some clipping that I haven't debugged yet.

Other LFOs are broken/risky because I didn't change any code to offset them. In my measuring they looked half-rectified (really just negative voltages cut-off), but I'm new to this stuff, and might not have had my scope set up properly.

For those that don't want to build their own, I've uploaded here (probably should right-click and 'save-as'):
Just Pulses:
https://s3.amazonaws.com/samohtstuff/O_C/o_c_REV.buchla-pulses.ino.TEE NSY31.hex

Pulses and (maybe) CVs:
https://s3.amazonaws.com/samohtstuff/O_C/o_c_REV.buchla-pulses-cvs.ino .TEENSY31.hex

The usual "legalese" applies:
No warranty as to fitness to purpose, use at your own risk, etc., etc.
mathomas
FYI, my Buchla pulses changes were accepted by Jason (the Hemisphere/Suite author). So those will be in an upcoming version someday.

I have also updated the CV-generation apps a bit, and they are working better than before in Buchla-land. Same info applies as above, re the buchla-pulses-and-cvs branch and .hex file. Those have been updated to latest.
chysn
Michael, I really appreciate your help with this. I can test some things with the 2OC hardware (for example, I swapped the buttons and encoders so that both the left half and the right half work properly with Hemisphere), but I don't have the Buchla experience to know that the triggers need to be at a higher voltage. I wasn't really sure how to proceed without that experience, so thank you.
mathomas
chysn wrote:
Michael, I really appreciate your help with this. I can test some things with the 2OC hardware (for example, I swapped the buttons and encoders so that both the left half and the right half work properly with Hemisphere), but I don't have the Buchla experience to know that the triggers need to be at a higher voltage. I wasn't really sure how to proceed without that experience, so thank you.


Dude, my pleasure!

Proof that open source allows those with an itch to solve a problem! Your great work on Hemisphere Suite inspired me to contribute what little I could so that I (and others) could use and enjoy the fruits of your labor in Buchla-land. There’s almost certainly more to be addressed, but the bits I’ve changed do help. I’ll keep my eye out for other things that need addressing.

Thanks again for Hemisphere Suite! And thanks to Patrick Dowling, mxmxmx, and Tim Churches for the original O&C, which got all this started.
MUFF WIGGLER Forum Index -> Buchla, EMS & Serge  
Page 1 of 1
Powered by phpBB © phpBB Group