temps_utile / 6 x clock generator [build thread etc]

From circuitbending to homebrew stompboxes & synths, keep the DIY spirit alive!

Moderators: luketeaford, Joe., lisa, Kent

Post Reply
User avatar
nevetsokyeron
Wiggling with Experience
Posts: 306
Joined: Sat Mar 12, 2016 10:38 pm
Location: Austin TX
Contact:

Re: Swing

Post by nevetsokyeron » Tue Oct 18, 2016 8:50 am

mxmxmx wrote: sure, why not. quick look suggests it would have to look slightly more complicated, because division and multiplication are handled somewhat differently. (also integer math would be preferable to using floats, there's no FPU on this chip.) fwiw / alternatively, there's some trigger delay functionality in the OC code, which probably could be adapted. i'm fairly busy with real work atm, so can't do much about this right now.
Understood. I'll try to see if I can get any farther along on my own and will take a look at the OC code as well.

Thanks!

User avatar
gerald
Common Wiggler
Posts: 82
Joined: Tue Jun 26, 2012 7:52 pm

Post by gerald » Thu Oct 20, 2016 7:33 pm

gerald wrote: I don't think it is something wrong with mine - or if it is, I am really good at doing something wrong twice, and right two more times with the O_C. -gerald
Turns out I was right - I am really good at forgetting to solder in the 3.3V regulators on both T_U modules. Frickin' stupid mistake... but really easy to fix! They work/look great now.

User avatar
nevetsokyeron
Wiggling with Experience
Posts: 306
Joined: Sat Mar 12, 2016 10:38 pm
Location: Austin TX
Contact:

Post by nevetsokyeron » Sat Oct 22, 2016 11:35 am

gerald wrote: Turns out I was right - I am really good at forgetting to solder in the 3.3V regulators on both T_U modules. Frickin' stupid mistake... but really easy to fix! They work/look great now.
:sb: :sb: :sb:

sockmonkey
Common Wiggler
Posts: 200
Joined: Wed Sep 30, 2015 11:39 pm
Location: Berlin

Post by sockmonkey » Sun Oct 23, 2016 8:55 am

So I have a feature request, which I'll probably implement myself, but wanted to first see if anyone has thoughts about it. I was using the module extensively yesterday (in MULT mode) and in the heat of battle made a number of changes to the mult/div factor. After saving and power-cycling, it became clear that some of the channels had been out of sync with the trigger based on when they were changed.

That's fine (although I bet that could/should be fixed), but I lost my groove.

So I know there's a feature for resyncing, but what I want is a desync/offset parameter so that I can shift the position of my /6 against the incoming trigger. Not sure if this should be in increments of a user-defineable subdivision (like 32 positions per trigger), or in 'ticks'. Maybe both should be an option in order to flexibly program different kinds of offset effects.

Thoughts?

I've also added a number of addl div and mult factors in my fork, incl */ 12, 24 and 48 divisions, and adding *>8 factors (since I sometimes work with very slow tempi). I'd love to get some fractional factors in there, too, but the current implementation will only deal with whole numbers. A problem for another day...

User avatar
mxmxmx
Super Deluxe Wiggler
Posts: 2243
Joined: Thu May 31, 2012 1:54 am
Location: berlin

Post by mxmxmx » Sun Oct 23, 2016 10:53 am

sockmonkey wrote:So I have a feature request, which I'll probably implement myself, but wanted to first see if anyone has thoughts about it. I was using the module extensively yesterday (in MULT mode) and in the heat of battle made a number of changes to the mult/div factor. After saving and power-cycling, it became clear that some of the channels had been out of sync with the trigger based on when they were changed.

That's fine (although I bet that could/should be fixed), but I lost my groove.

So I know there's a feature for resyncing, but what I want is a desync/offset parameter so that I can shift the position of my /6 against the incoming trigger. Not sure if this should be in increments of a user-defineable subdivision (like 32 positions per trigger), or in 'ticks'. Maybe both should be an option in order to flexibly program different kinds of offset effects.

Thoughts?
yeah, that's an artefact of the channels being basically independent. as things are, rather than all outputs deriving from one timer (as in, say, RCD / SCM), they all come with their own counters, and things start dividing as soon as the mult/div parameter changes. i'm not sure how best to fix it, tbh; or what the offset would have to be relative to. the channel with the largest division factor?
sockmonkey wrote: I've also added a number of addl div and mult factors in my fork, incl */ 12, 24 and 48 divisions, and adding *>8 factors (since I sometimes work with very slow tempi). I'd love to get some fractional factors in there, too, but the current implementation will only deal with whole numbers. A problem for another day...
pull requests welcome. ... re fractional factors: that should be doable though along the same lines. e.g. multiplier = (2^32 - 1) / 1.5 = 0xAAAAAAAA should yield 1.5x. i didn't come up with a good idea in terms of UI yet, but i was vaguely thinking it might make sense to provide different sets of divisors/multipliers, rather than cram them all into one setting: even, odd/even, maybe fractional.

sockmonkey
Common Wiggler
Posts: 200
Joined: Wed Sep 30, 2015 11:39 pm
Location: Berlin

Post by sockmonkey » Sun Oct 23, 2016 12:20 pm

mxmxmx wrote:
sockmonkey wrote:So I know there's a feature for resyncing, but what I want is a desync/offset parameter so that I can shift the position of my /6 against the incoming trigger. Not sure if this should be in increments of a user-defineable subdivision (like 32 positions per trigger), or in 'ticks'. Maybe both should be an option in order to flexibly program different kinds of offset effects.
yeah, that's an artefact of the channels being basically independent. as things are, rather than all outputs deriving from one timer (as in, say, RCD / SCM), they all come with their own counters, and things start dividing as soon as the mult/div parameter changes. i'm not sure how best to fix it, tbh; or what the offset would have to be relative to. the channel with the largest division factor?
If the channel-local counter were reset/auto-synced to 0 at incoming trigger time, wouldn't that solve the problem? There would be one "weird" cycle when changing the factor on the fly, but that could be avoided by buffering the change until the next trigger arrives.

pull requests welcome. ... re fractional factors: that should be doable though along the same lines. e.g. multiplier = (2^32 - 1) / 1.5 = 0xAAAAAAAA should yield 1.5x. i didn't come up with a good idea in terms of UI yet, but i was vaguely thinking it might make sense to provide different sets of divisors/multipliers, rather than cram them all into one setting: even, odd/even, maybe fractional.
Cool. I had already added the hex factors until I realized that the divisors_ array is expecting a uint8_t. There would need to be a more complex notion of numerator/denominator-specified clock division in order to get 1.5 (3:2) division working. It may be possible to leave it all in one list, I guess. But user-specifiable fractional division (22:7 anyone?) would be wicked cool.

Jaypee
Super Deluxe Wiggler
Posts: 1068
Joined: Sat Nov 22, 2014 11:46 am

Re: Swing

Post by Jaypee » Tue Nov 01, 2016 8:07 am

nevetsokyeron wrote:Swing...

So I had a crazy idea the other day... What if the TempsUtile could give us a swing (swung?) beat?

Roger Linn sez:
My implementation of swing has always been very simple: I merely delay the second 16th note within each 8th note. In other words, I delay all the even-numbered 16th notes within the beat (2, 4, 6, 8, etc.) In my products I describe the swing amount in terms of the ratio of time duration between the first and second 16th notes within each 8th note. For example, 50% is no swing, meaning that both 16th notes within each 8th note are given equal timing. And 66% means perfect triplet swing, meaning that the first 16th note of each pair gets 2/3 of the time, and the second 16th note gets 1/3, so the second 16th note falls on a perfect 8th note triplet.
So tonight I sat with a friend who can code in C (whereas I'm very hackish) and we tried to decipher the APP_CLK code and figure out how to implement some swing.

I posted my results as an issue on the Github page. It's just a few lines of code, but we were not really sure if we are in the right place to monkey with the timing.

Is this a feature worth pursuing? I think it'd be kinda groovy to be able to CV control swing.
THIS!!!!

User avatar
masterofstuff124
Wiggling with Experience
Posts: 392
Joined: Mon Aug 03, 2015 11:04 pm
Location: Miami

Post by masterofstuff124 » Wed Nov 02, 2016 11:59 am

is this the most up to date flashable hex?
https://github.com/mxmxmx/temps_utile-/ ... r/soft/hex

my newly built temps seems to be missing some functionality- no multiplication, calibration page seems incomplete, ive found mention of other functionality that I cant seem to find.

curious if its software or hardware as this is a fresh build.

User avatar
keninverse
Super Deluxe Wiggler
Posts: 1010
Joined: Mon Jul 26, 2010 4:12 pm
Location: mission control htx

Post by keninverse » Wed Nov 02, 2016 1:19 pm


User avatar
masterofstuff124
Wiggling with Experience
Posts: 392
Joined: Mon Aug 03, 2015 11:04 pm
Location: Miami

Post by masterofstuff124 » Wed Nov 02, 2016 6:34 pm

thanks. but i dont see a hex file in there?

User avatar
masterofstuff124
Wiggling with Experience
Posts: 392
Joined: Mon Aug 03, 2015 11:04 pm
Location: Miami

Post by masterofstuff124 » Wed Nov 02, 2016 7:19 pm

followed the instructions on the firmware page. all seems well now! thanks for the help~! :nana:

User avatar
mxmxmx
Super Deluxe Wiggler
Posts: 2243
Joined: Thu May 31, 2012 1:54 am
Location: berlin

Post by mxmxmx » Fri Nov 04, 2016 2:41 am

masterofstuff124 wrote:followed the instructions on the firmware page.
road to success ... i suppose i could make the branch master though, to cause less confusion.

User avatar
masterofstuff124
Wiggling with Experience
Posts: 392
Joined: Mon Aug 03, 2015 11:04 pm
Location: Miami

Post by masterofstuff124 » Fri Nov 04, 2016 7:41 am

New problem though channel 2 and 4 don't seem to output anything. Need to figure out how to open the pcb files it isn't just the standard brd eagle stuff. And then I can trace those connections.

User avatar
keninverse
Super Deluxe Wiggler
Posts: 1010
Joined: Mon Jul 26, 2010 4:12 pm
Location: mission control htx

Post by keninverse » Fri Nov 04, 2016 9:14 am

I use Pentalogics' Viewmate for viewing gerbers. Works well.

User avatar
nevetsokyeron
Wiggling with Experience
Posts: 306
Joined: Sat Mar 12, 2016 10:38 pm
Location: Austin TX
Contact:

Post by nevetsokyeron » Fri Nov 04, 2016 1:06 pm

masterofstuff124 wrote:New problem though channel 2 and 4 don't seem to output anything. Need to figure out how to open the pcb files it isn't just the standard brd eagle stuff. And then I can trace those connections.
Check the long row of resistors on either side of the TL074s. I had a resistor with one end not quite attached on one build that caused a similar problem for me IIRC.

User avatar
mxmxmx
Super Deluxe Wiggler
Posts: 2243
Joined: Thu May 31, 2012 1:54 am
Location: berlin

Post by mxmxmx » Sat Nov 05, 2016 10:49 am

nevetsokyeron wrote:
masterofstuff124 wrote:New problem though channel 2 and 4 don't seem to output anything. Need to figure out how to open the pcb files it isn't just the standard brd eagle stuff. And then I can trace those connections.
Check the long row of resistors on either side of the TL074s. I had a resistor with one end not quite attached on one build that caused a similar problem for me IIRC.
yeah, the channel 2 output should be easy to fix. it's just a non-inverting op-amp (see here); the op amp in question is right above the channel #2 jack, ie the left TL074, pins 1,2, and 3. should be easy to see on the PCB.

channel 4 is the DAC output, which is slightly more complicated. make sure you've actually connected the DAC pin (A14) and the jumper ("DAC"). the output stage is two multiple feedback filters in series:

Image

that's using two op-amps from the right-hand TL074 (pins 1,2,3 and 5,6,7).

first stage: R1 = 3k9, R2 = 6k8, R3 = 3k, C1 = 1n, C2 = 3n3.
second stage: R1 = 1k8, R2 = 3k, R3 = 1k2, C1 = 1n, C2 = 18n.

User avatar
dusk
Common Wiggler
Posts: 210
Joined: Thu Oct 01, 2015 1:11 am
Location: United States

Post by dusk » Sat Nov 05, 2016 4:12 pm

well shit.. one of the resistors was reading 66k instead of 100k, so I desoldered it to pull it and ended up putting the contact lead as well.. :(

can I solder a jumper wire to where the other end of this resistor is supposed to connect to?

I cant find a schematic for this.. is it that little hole right next to it for 470n?

also.. another resistor is reading 166K instead of 100K and now im afraid to desolder and replace it.. it's the top horizontal 100K right under where the dac/teensy go...

crap, I hope I can salvage this, ive spent 4 hours on it so far :)

thanks for the help!

im gonna keep soldering in the caps and hopefully can save it

Image

User avatar
mxmxmx
Super Deluxe Wiggler
Posts: 2243
Joined: Thu May 31, 2012 1:54 am
Location: berlin

Post by mxmxmx » Sat Nov 05, 2016 4:29 pm

dusk wrote:well shit.. one of the resistors was reading 66k instead of 100k, so I desoldered it to pull it and ended up putting the contact lead as well.. :(

can I solder a jumper wire to where the other end of this resistor is supposed to connect to?

I cant find a schematic for this.. is it that little hole right next to it for 470n?
use a gerber viewer, you'll see where to/how to connect the one end of the 100k resistor to the one sitting right next to it.
dusk wrote: also.. another resistor is reading 166K instead of 100K and now im afraid to desolder and replace it.. it's the top horizontal 100K right under where the dac/teensy go...

crap, I hope I can salvage this, ive spent 4 hours on it so far :)

thanks for the help!
4 hours? oh dear. fwiw, if it says '1003' on it chances are it's actually 100k, not 166k, so i'd leave it there for the time being.

User avatar
dusk
Common Wiggler
Posts: 210
Joined: Thu Oct 01, 2015 1:11 am
Location: United States

Post by dusk » Sat Nov 05, 2016 4:32 pm

mxmxmx wrote:
dusk wrote:well shit.. one of the resistors was reading 66k instead of 100k, so I desoldered it to pull it and ended up putting the contact lead as well.. :(

can I solder a jumper wire to where the other end of this resistor is supposed to connect to?

I cant find a schematic for this.. is it that little hole right next to it for 470n?
use a gerber viewer, you'll see where to/how to connect the one end of the 100k resistor to the one sitting right next to it.
dusk wrote: also.. another resistor is reading 166K instead of 100K and now im afraid to desolder and replace it.. it's the top horizontal 100K right under where the dac/teensy go...

crap, I hope I can salvage this, ive spent 4 hours on it so far :)

thanks for the help!
4 hours? oh dear. fwiw, if it says '1003' on it chances are it's actually 100k, not 166k, so i'd leave it there for the time being.
thanks for the reply!
its my first SMD build... taking it slow

what is the file i need to load in the gerber viewer?

User avatar
mxmxmx
Super Deluxe Wiggler
Posts: 2243
Joined: Thu May 31, 2012 1:54 am
Location: berlin

Post by mxmxmx » Sat Nov 05, 2016 4:46 pm

dusk wrote:
what is the file i need to load in the gerber viewer?
this zip file. you can use this one or use the oshpark preview, say. there's other options, but that'll do.

here is the relevant bit of the schematic.

User avatar
dusk
Common Wiggler
Posts: 210
Joined: Thu Oct 01, 2015 1:11 am
Location: United States

Post by dusk » Sat Nov 05, 2016 4:47 pm

excellent.. i soldered a jumper wire across to the resistor next to it, fingers crossed it'll work

shiftr
Common Wiggler
Posts: 200
Joined: Thu Aug 08, 2013 4:33 pm
Location: Netherlands

Post by shiftr » Sat Nov 05, 2016 4:57 pm

dusk wrote:well shit.. one of the resistors was reading 66k instead of 100k, so I desoldered it to pull it and ended up putting the contact lead as well.. :(
You can't measure a resistor once it is soldered in a circuit!
You will never know if you are not also measuring other resistors and parts too following another path of the circuit. Enless you know very sure you are measuring an isolated part of the circuit.
So the 100k was probably just 100k measured with some parallel resistor also measured in the circuit.

User avatar
dusk
Common Wiggler
Posts: 210
Joined: Thu Oct 01, 2015 1:11 am
Location: United States

Post by dusk » Sun Nov 06, 2016 10:31 am

thanks for the advice!

im on the output amplifier now.. but the TL074C doesnt have an indent in them.. is there a proper way to place these components? should i line the text up with the text on the pcb?

User avatar
lasesentaysiete
Super Deluxe Wiggler
Posts: 1519
Joined: Thu Feb 18, 2016 5:23 am
Location: Barcelona

Post by lasesentaysiete » Sun Nov 06, 2016 10:44 am

dusk wrote:is there a proper way to place these components?
yes. There should be a bevelled edge along the side of pin 1. Post a picture or check the datasheet if you're unsure.

User avatar
dusk
Common Wiggler
Posts: 210
Joined: Thu Oct 01, 2015 1:11 am
Location: United States

Post by dusk » Sun Nov 06, 2016 1:13 pm

thanks! ok have it all assembled and trying to load the firmware.. there is a light on the back of the teensy, but it's stuck in a loop of asking me to press button on teensy to manually enter program mode, i press the button it says REBOOT OK, then puts me back at the press button screen, and it loops endlessly.. any ideas?

Post Reply

Return to “Music Tech DIY”