MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   SearchSearch   Muff Wiggler Blog & NewsNews   Muff Wiggler StoreMW Store 
 RegisterSign up   Log inLog in 

RCD with longer divisions
MUFF WIGGLER Forum Index -> Eurorack Modules Goto page 1, 2, 3  Next [all]
Author RCD with longer divisions

JP

I was wondering if there's a possibility that a variant of the RCD firmware/hex is floating around that might do even longer divisions.

Now I have an RCD and an SCM, I'd really like a super RCD that I could use for triggering x1, x4, x8, x12, x16, x20, x24, x28, x32 etc for triggering bar length progressions.

I do understand I could just clock the x4 out of my rcd into another rcd, but figured I'd ask if a specific version might exist.


50quidsoundboy

isn't this what the RCD breakout panel is for? goes down to x64 if i remember correctly. it's very cheap, you can even buy a kit (i haven't built mine yet...)


bsmith

If you have the avrisp then grab code from the 4ms site here.

Quote:

if (switchread==0) {
t=7;
d=adc>>5;} //LL: d=0..7, masked by t=0b00000111 gives on jack 1 DIV 1-8
else if (switchread==(1<<ROTATE_JUMPER2)) {
t=15;
d=(adc>>4)+8;} //LH: d=8..23, masked by t=0b00001111 gives: DIV 9-16|1-8
else if (switchread==(1<<ROTATE_JUMPER1)) {
t=31;
d=(adc>>3)+16;} //HL: d=16..47, masked by t=0b00011111 gives: DIV 17-32|1-16
else {
t=63;
d=(adc>>3)+32;} //HH: d=31..95, masked by t=0b00111111 gives: DIV 32-64|1-31

Those are the jumper settings - so the t= in the various ones is the top division for that jumper setting ( minus 1 - in the code generally look at the outs and divisions starting at '0'). You'll want to up that t= value to the top division you're wanting for whichever switch setting.


The various gate and jumper sections have parts that look like:
Quote:
if (GATEMODE_JUMPER){
if (o0==((((0+d)&t)/2)+1)){OFF(OUT_PORT1,0);}
if (o1==((((1+d)&t)/2)+1)){OFF(OUT_PORT1,1);}
if (o2==((((2+d)&t)/2)+1)){OFF(OUT_PORT1,2);}
if (o3==((((3+d)&t)/2)+1)){OFF(OUT_PORT1,3);}
if (o4==((((4+d)&t)/2)+1)){OFF(OUT_PORT1,4);}
if (o5==((((5+d)&t)/2)+1)){OFF(OUT_PORT1,5);}
if (o6==((((6+d)&t)/2)+1)){OFF(OUT_PORT2,7);}
if (o7==((((7+d)&t)/2)+1)){OFF(OUT_PORT2,6);}
} else {
if (++o0>((0+d)&t)){ o0=0;}
if (++o1>((1+d)&t)){ o1=0;}
if (++o2>((2+d)&t)){ o2=0;}
if (++o3>((3+d)&t)){ o3=0;}
if (++o4>((4+d)&t)){ o4=0;}
if (++o5>((5+d)&t)){ o5=0;}
if (++o6>((6+d)&t)){ o6=0;}
if (++o7>((7+d)&t)){ o7=0;}

So could maybe change the upbeat one to:
if (++o0>((0+d)&t)){ o0=0;}
if (++o1>((3+d)&t)){ o1=0;}
if (++o2>((7+d)&t)){ o2=0;}
if (++o3>((11+d)&t)){ o3=0;}
if (++o4>((15+d)&t)){ o4=0;}
if (++o5>((19+d)&t)){ o5=0;}
if (++o6>((23+d)&t)){ o6=0;}
if (++o7>((27+d)&t)){ o7=0;}



or something like that - poke with it.


infradead

o_0 he is a wizard with the RCD!!


JP

infradead wrote:
o_0 he is a wizard with the RCD!!


BURN HIM!~!

Dead Banana


JP

bsmith wrote:
If you have the avrisp then grab code from the 4ms site... snipped ...or something like that - poke with it.


I need to buy a burner and look into this some more.

Although my worry is I'll get carried away and before I know it I'll have 12u full of RCD's all going crazy.


bsmith

JP wrote:
bsmith wrote:
If you have the avrisp then grab code from the 4ms site... snipped ...or something like that - poke with it.


I need to buy a burner and look into this some more.

Although my worry is I'll get carried away and before I know it I'll have 12u full of RCD's all going crazy.


http://www.mouser.com/ProductDetail/Atmel/ATAVRISP2/?qs=2mdvTlUeTfBRoy csKqwYpg%3d%3d

Kind of thinking about a second rcd myself.


Rozzer

Wow, I'm very interested in this. I've often thought it would be cool to have the RCD rotating non-sequential divisions.

bmsith - have you actually had this working with your code tweak? Has anyone?


infradead

Rozzer wrote:
Wow, I'm very interested in this. I've often thought it would be cool to have the RCD rotating non-sequential divisions.

bmsith - have you actually had this working with your code tweak? Has anyone?


when i said bsmith was a wizard he is. wink

you should hang out on IRC and talk to him about it.


bsmith

Rozzer wrote:
Wow, I'm very interested in this. I've often thought it would be cool to have the RCD rotating non-sequential divisions.

bmsith - have you actually had this working with your code tweak? Has anyone?


Yeah, I've changed what the jack divisions put out, as well as some other things like changing some jacks to rotate in increments of 2 while others do 1 as shipped...
there may or may not be some much cooler stuff on the rcd being worked on by bigger brains than myself we can all look forward to.
Ninja


Rozzer

That's fantastic news, guess I'll be buying a burner this week then thumbs up


machetemirage

Get a second RCD, and send the slowest clock from the first to the second.... hmmm.....


JP

AVR programmer ordered, 3rd RCD/SCm kit ordered. :-) I'm keeping this third one for bonkers.


Rozzer

machetemirage wrote:
Get a second RCD, and send the slowest clock from the first to the second.... hmmm.....


This wouldn't give the same results as JP is suggesting at all. A second RCD would still rock of course hihi


JP

I can see the RCD project files:

http://4mspedals.com/clocker/code/rcd_avrgcc_project.zip

But does anyone know if the other hex files are available as project bundles? I'd love to see how the sequential switch and the SCM are coded, to get some foundation for how to approach some of my ideas.

I was also thinking of putting some of the project files up on github, so they can be versioned, and forked and bug fixed communially.

Hoping Dann, might wander in here and say everything would be cool with that smile


4mspedals

Yes! I haven't used github, but it looks allright. If you want to set up a clocker repository, I'll put the various versions I have around on it. It makes a lot of sense to use a revisioning system because there are several forks already, and I'm working on some new ones too...

Here's the SCM project files:

http://www.4mspedals.com/scm.php#firmware

I've got the Tracking Gate Sequencer code as well, I can throw that up too.

And I know I need to comment better (hides) Please feel free to ask me questions/explanations of the code..


Drumdrumdrumdrum

What fork!? I thought it was a spoon? seriously, i just don't get it

The only thing that makes any sense to me in this thread is "a second RCD"


4mspedals

Heh... OK with thedug's help I dove into github... started a repository here:

https://github.com/4ms/Clocker

Maybe we should move this discussion to the DIY forum?


a scanner darkly

This is awesome. Just bought an RCD because of this thread. I want to try programming something more radical with it though nanners

I had a quick look at the code (and there is actually a lot of comments - very helpful thumbs up ) so if I understand correctly RCD (or SCM) can be seen as 2 CV inputs going through ADC, and same ADC converts additional CV inputs in the extensions?


JP

4mspedals wrote:
Heh... OK with thedug's help I dove into github... started a repository here:

https://github.com/4ms/Clocker

Maybe we should move this discussion to the DIY forum?


Awesome ! This is going to be an adventure.

As I suspected SCM is much more complex than the RCD by a factor of pw0=8400,pw1=4200,pw2=2800,pw3=2200,pw4=1680,pw5=1400,pw7=1050;


bsmith

JP wrote:
4mspedals wrote:
Heh... OK with thedug's help I dove into github... started a repository here:

https://github.com/4ms/Clocker

Maybe we should move this discussion to the DIY forum?


Awesome ! This is going to be an adventure.

As I suspected SCM is much more complex than the RCD by a factor of pw0=8400,pw1=4200,pw2=2800,pw3=2200,pw4=1680,pw5=1400,pw7=1050;


That bit is one of the simpler easier to tinker with things in the scm code - the initial pulse width on the various outs.....


4mspedals

a fuzzy beacon wrote:
This is awesome. Just bought an RCD because of this thread. I want to try programming something more radical with it though nanners

I had a quick look at the code (and there is actually a lot of comments - very helpful thumbs up ) so if I understand correctly RCD (or SCM) can be seen as 2 CV inputs going through ADC, and same ADC converts additional CV inputs in the extensions?


Yeah, there's two CV inputs and a clock input. On the RCD the breakout pins are switches (digital inputs) and on the SCM they're mostly analog inputs (ADC). The ADC is set to read one input at a time by setting the ADMUX register


a scanner darkly

4mspedals wrote:
Yeah, there's two CV inputs and a clock input. On the RCD the breakout pins are switches (digital inputs) and on the SCM they're mostly analog inputs (ADC). The ADC is set to read one input at a time by setting the ADMUX register


RCD and SCM both use ATmega168 chip, right? So it has 8 channels that can be selected by ADMUX plus I saw this in the doc: "The analog input channel is selected by writing to the MUX bits in ADMUX. Any of the ADC input pins, as well as GND and a fixed bandgap voltage reference, can be selected as single ended inputs to the ADC" - that makes 10 inputs in total if I understood it correctly.

3 inputs are used for clock / rotate / reset on RCD and for clock / rotate / slip on SCM, that leaves 7 for extensions - what confused me was that SCM breakout got 8 inputs, but 2 of them are duplicates of SCM (rotate and slip).


4mspedals

Clock IN goes to PD2 which is a digital pin (not controlled by the ADC).

The mega168 has 6 ADC channels on pins PC0-PC5. In the SCM they are
PC5=Shuffle
PC4=Resync
PC3=Skip
PC2=PW
PC1=SLIP
PC0=ROTATE

On the RCD there's only one analog channel, just PC0=ROTATE. The rest are used digitally (on or off).
PC1=Reset and PC2-5 are the breakout switches.

Additionally, PD5 and PD4 go to the breakout header for "Fast x4" and MUTE on the SCM, and more breakout switches on the RCD.


JP

really wishing there was some way to test the code before burning it to the chip and testing. is there such a thing as an atmel emulator? or someway to run the code and test it by passing it fake triggers and seeing a log out for the triggers sent?

MUFF WIGGLER Forum Index -> Eurorack Modules Goto page 1, 2, 3  Next [all]
Page 1 of 3
Powered by phpBB © phpBB Group