Let's design a tap tempo tremolo.

Started by Taylor, November 20, 2009, 04:14:55 AM

Previous topic - Next topic

Taylor

Quote from: ElectricDruid on February 06, 2010, 04:53:14 PM
Taylor, I can't work out if it'll do what you suggested with the taps - running at 4/4, you tap and go to triplets, count 3, tap and go to 8/4? Does that work out? Anyway, the chip does it, musical or not.

It's kind of hard to describe what I was talking about. If the multiplier tap switch could also reset the phase whenever you go into a new multiple setting, that would be ideal. Is that how it works now?

QuoteI think unless anyone has any unmissably great ideas or finds any bugs, I have to regard this as the final version and start getting some chips programmed. The alternative is that we spend forever tweaking and never get any units built!

Thanks,
Tom


I definitely agree.

I think what you guys have done is not only great compared to DIY projects, but actually better than the commercial tap tempo trems out there in terms of features. The only small fret I have is if the use of the LDR is going to smear some of the subtleties of the different waveforms out. But I think this is one of the coolest DIY projects so far.

JKowalski

#121
Quote from: ElectricDruid on February 06, 2010, 04:53:14 PM
I am indeed!

I've been tinkering about with it this afternoon, and I've got Version 2 code up on my site:

http://www.electricdruid.com/index.php?page=projects.taplfo

This includes the Wave Distort CV that JKowalski put in, and my adjustments to wave start positions. It also uses pin 8 as a digital input to step through the multiplier settings.

Taylor, I can't work out if it'll do what you suggested with the taps - running at 4/4, you tap and go to triplets, count 3, tap and go to 8/4? Does that work out? Anyway, the chip does it, musical or not.

I think unless anyone has any unmissably great ideas or finds any bugs, I have to regard this as the final version and start getting some chips programmed. The alternative is that we spend forever tweaking and never get any units built!

Thanks,
Tom



Well, let's see. We want the LFO to be based around the 0.5 multiplier, and not deviate from that basic interval no matter what multiplier setting is pressed.

Here is how it should go. Synchronized to the base interval (1) and the multiplication just divides that interval.

|               | 1
|       |       | 2
|    |     |    | 3
|   |   |   |   | 4
|  |  |   |  |  | 5
| |  |  |  |  | | 6
| | | | | | | | | 8

But our problem arises because the multiplier increases the phase increment at the point at which it was told to change, which can speed up the wave in the middle of the phase counter and that will throw everything totally out of whack - each multiplier change scoots the phase accumulator out of the base interval.

The only thing I can think of is to set up a counter that counts the cycles of the phase accumulator, compares is to the multiplier setting, and sets a flag when they equal. When the flag is set, the pending change in the multiplier settings will finally be uploaded into the frequency increments.

To keep the changes pending, the multiplier calculation can be done in the main loop and sent to a FREQ_INC_TEMP instead of the FREQ_INC. Then that TEMP is loaded into the real one when necessary. That way you can accumulate changes in the multiplier as well while it is waiting for the cycle to end and update to come (i.e. if you hit it more then once while the code is waiting for the update it will register every tap you input)

Basically what this would do is allow the chip to wait until the interval that is common to all of the multipliers (the lowest multiplier) is finished before it goes to the new multiplier, so that it doesn't throw it all out of whack.

There is the fact that you have to wait for the lowest interval to finish so at slow settings this may be a while.... But this is the only way I can imagine you would be able to do it. Resetting the phase directly on change would throw the LFO out of sync if you don't count the beats correctly, like Tom said... And by the way, counting the beats would end up doing the same thing as the idea I just laid out anyways  :icon_rolleyes:  I suppose it's just the same idea in an automatic way.

*shrug*

Quote from: Taylor on February 06, 2010, 05:20:15 PM
Quote from: ElectricDruid on February 06, 2010, 04:53:14 PM
Taylor, I can't work out if it'll do what you suggested with the taps - running at 4/4, you tap and go to triplets, count 3, tap and go to 8/4? Does that work out? Anyway, the chip does it, musical or not.

It's kind of hard to describe what I was talking about. If the multiplier tap switch could also reset the phase whenever you go into a new multiple setting, that would be ideal. Is that how it works now?

QuoteI think unless anyone has any unmissably great ideas or finds any bugs, I have to regard this as the final version and start getting some chips programmed. The alternative is that we spend forever tweaking and never get any units built!

Thanks,
Tom


I definitely agree.

I think what you guys have done is not only great compared to DIY projects, but actually better than the commercial tap tempo trems out there in terms of features. The only small fret I have is if the use of the LDR is going to smear some of the subtleties of the different waveforms out. But I think this is one of the coolest DIY projects so far.

Right now the phase is not reset on a multiplier change. The speed just starts increasing right at the point where you changed it. This does indeed throw the sync out of whack.

You don't have to use a LDR for this! The LDR is just an easy way to do it. You could definitely convert the PWM to an analog LFO and use something more linear, like a OTA, for the VCA. The chip's not the limitation in that case.

I am definitely happy with my PIC LDR trem, but a more linear one might be useful. I think I said something to you similar to that in a PM a while back, that the LDR does tend to mush up the nice waveforms from the chip...




Oh and Tom, I think it would be useful to include this in the datasheet: That you can alter the rail-to-rail voltage on the PWM output simply by buffering it with a digital buffer/inverter that is hooked up to different supply voltages. For example, getting a LFO centered at 4.5 volts would be as simple as putting the 0-5V PWM into a 9V supply inverter and filtering the output of that... then you have a 0-9V LFO. So you don't need offset cancellation op amps in the output stage.

Also, voltage dividing the output of the inverter/buffer down to GND or Vref (the desired LFO bias) before an op amp filtering stage would eliminate the need for a rail to rail op amp.

Maybe a note that you can flip the waveform around by using a digital inverter as well. Some people may not realize it and find it useful.

Taylor

Yep, LDR wasn't the only way to go. I had thought about a FET thing at one point, but ultimately couldn't find the time to design a circuit for it so I just went with the LDR. We'll soon see how much of a problem it is, if at all. It's probably no big deal.

JKowalski

Quote from: Taylor on February 06, 2010, 08:01:56 PM
Yep, LDR wasn't the only way to go. I had thought about a FET thing at one point, but ultimately couldn't find the time to design a circuit for it so I just went with the LDR. We'll soon see how much of a problem it is, if at all. It's probably no big deal.

The LDR is definitely alot simpler and it does a perfectly good job. There's not too much incentive to go with the more complicated version.

ElectricDruid

Quote from: JKowalski on February 06, 2010, 07:49:40 PM
Oh and Tom, I think it would be useful to include this in the datasheet: That you can alter the rail-to-rail voltage on the PWM output simply by buffering it with a digital buffer/inverter that is hooked up to different supply voltages. For example, getting a LFO centered at 4.5 volts would be as simple as putting the 0-5V PWM into a 9V supply inverter and filtering the output of that... then you have a 0-9V LFO. So you don't need offset cancellation op amps in the output stage.

Also, voltage dividing the output of the inverter/buffer down to GND or Vref (the desired LFO bias) before an op amp filtering stage would eliminate the need for a rail to rail op amp.

Maybe a note that you can flip the waveform around by using a digital inverter as well. Some people may not realize it and find it useful.

Yes, thanks. That's a good point. There's a nice example of something similar in the Juno 106 synth, where they use a simple transistor to control the sub-oscillator level. Since the SubOsc is a digital signal (a square wave) you can feed it directly to the base of the transistor, and then put a varying voltage on the collector to control the amplitude of the output pulses. Very clever.
I don't think there's any need for a rail-to-rail op-amp. At least, I never used one. But I did have +/-15V rails, and was only looking for a +/-5V output, so that isn't very demanding. With a 9VDC supply, I can see that you might want to push it closer to the rails. Still, it isn't essential.

Tom

Taylor

Hey fellas, I've got the chips, got the prototype PCB, and built up a prototype. After some fiddling and head-scratching, I sorted out the ticking problem, so it's now working as it should.

This is a great, great trem. It gets a really nice throbby sinewave (most trems have a triangle wave as the smoothest LFO, which doesn't get quite as throbby as a real sine), and an excellent choppy square wave. My concerns about not getting choppy enough are totally unfounded - using the Wave Distort knob allows you to slice the square down to the tiniest blip, which makes for an amazing stuttering fast trem that I was never able to get with any of the other trems I've built (all the usual suspects, Trem Lune, EA, Heartthrob...). The up ramp wave works great before a distortion to get a raunchy swelling industrial kind of sound.

So even not considering the "main feature", this is my favorite trem I've built or heard. And then of course, it's tap tempo!

I haven't had a chance to mess with the "next multiplier" step switch, or sweeping through multipliers with an expression pedal yet. I'm going to put it through a lot more testing, to make sure everything is as it should be, then pretty soon the PCBs should be ready to go.

I'm using an NSL-32 optocoupler. It seems to do the job without ticking.

aziltz


Skruffyhound


bunnycat

Amazing work - thanks!!!  Do you think you'll be able to offer a pcb and programmed chip once the project is finished?  If so, count me in for sure.

Taylor

#129
Yep, I'll sell the chips for $5 (my cost) along with the PCBs. I had to order a second round of prototype boards because of a few changes I made, so at this point we're looking at 3 weeks until the PCBs can ship.

Taylor

Somebody had asked me via PM to update what's up with this, so...

The PCBs have been ordered as of today. I went with blue soldermask on these, just for fun. I am a bass player mainly, but today I borrowed my dad's '60 Strat and tried it out to see how it does with a much weaker signal - sounds excellent. I can confirm after quite a bit of testing that this is the best tremolo I've played. The square wave with a really narrow pulse width is awesome. If you've heard Aphex Twin's tune "Mont St. Michel", this is the only trem I've heard that can replicate the ending where the  pulse width gets narrower and narrower until the whole track just about disappears. The coolest thing is going to be putting exp. pedal outputs for everything - expression control over wave distort would be a really nice performance feature.

So, since the boards are now on the way, if anybody wants to order now, they can. Boards will be $13 and the chips are $5. Shipping is $2 to the US, $4 to the rest of the world, and 50 cents for each additional board. I'll be making up the build PDF in the coming days, including parts list. Boards should start shipping in 10-14 days.

oliphaunt

#131
Great news, I'm really looking forward to the pdf to see how all the features have come together.

Taylor

Well, it has 5 knobs. Depth, multiplier, waveform, speed, wave distort. You can preset the wave distort to 50% duty cycle with 2 resistors if you don't want that control. Then there's the bypass switch (regular 3PDT true bypass), the tap switch (SPST momentary), and if you choose, the multiplier step switch (SPST momentary).

There are spots for 3 trim pots internally. 1 for each LED and 1 for the gain of the final opamp stage. Some people might want to bring this gain control to the front panel. I don't have that on my 2 prototypes I've built, but it's easy to do if you want to adjust gain to make up for changing average gain when using narrow pulse widths. The LED trims allow you to trim the current to the OPTO and the visible LED, which cuts out ticking while still allowing a bright LED. I'd recommend a superbright LED for this. You can of course just put in fixed resistors in all 3 trimpot areas if you like.

The tap switch does reset the wave to the beginning, so you can tap it once on a beat to get it back in time if things start to drift. There doesn't seem to be a pop or click when changing multipliers or waveforms, so you can probably do this with an expression pedal while playing with problem.

ElectricDruid

Very glad to see this nearing completion, Taylor. Well done for getting it there.

Regards,
Tom

Taylor

Hey fellas, the moment has arrived.



Boards are here. I will have the full document up in the next few days with a description of all the features, the final schem, bill of materials, wiring diagrams, etc. I'll post the bill of materials in the following post so you can start getting your parts together. Mouser part numbers will be available for the more obscure parts.

To get a board and a chip, see here.

Taylor

Here's the BOM. Let me know if you see something wrong or that doesn't make sense.

Tap tempo tremolo
Bill of Materials

Part type
   quantity - part       (Mouser part number where available, additional info)

ICs
   1 - Electric Druid TAPLFO
   1 - TL072       (dual opamp)
   1 - 78L05       (5 volt regulator)

   1 - 14pin IC socket
   1 - 8pin IC socket

Transistor
   1 - 2N3904       (NPN transistor)
   
Potentiometers
   5 - B10K       (if you're not using the Wave Distort knob, you'll only need 4 B10K potentiometers.)
   1 - A25K       (Optional. This is for an external gain knob if you want one)
   3 - 22K trimpot       (Strongly recommend you use Mouser part# 652-3362P-1-223LF. Other trimpots may be difficult to fit.)

Resistors
   3 - 10K          (if you aren't using the Wave Distort feature, you'll need 2 more 10k resistors, for a total of 5)
   4 - 1K
   1 - 3K6          (3.6K)
   2 - 1M
   1 - 10R          (10 OHMS)
   2 - 220K
   2 - 100K
   
Diodes
   1 - 1N4001
   1 - LED       (superbright blue is ideal)
   
Capacitors          (cap types are just suggestions)
   7 - 100NF (.1UF) film
   2 - 1UF film         (Mouser part# 80-R82DC4100DQ60J)
   1 - 330NF film

            NOTE: all film caps are intended to be boxed metal film caps. Other cap types will not fit.

   2 - 22PF ceramic
   1 - 330PF ceramic
   1 - 10UF electrolytic
   1 - 100uf electrolytic

OPTO
   1 - NSL-32 is recommended. If using something else, look for around 500 ohm ON resistance, 500k OFF resistance.

Switch
   1 - Momentary SPST stomp switch for the tap function, labeled "TAP SW" on the board. If adding the Multiplier step switch, you'll need a second momentary SPST.
   1 - 3PDT stomp       (bypass)

Crystal
   1 - 20 MHZ crystal, labeled "XTAL" on the board. (Mouser part #815-ABL-20-B2)

jmasciswannabe

How is the noise on this build? If you have your amp super cranked can you hear the LFO bleed through? I love my tremulus build but haven't been able to solve that annoyance.
....the staircase had one too many steps

Taylor

I'm not sure yet. I haven't had my 100w amp dimed while using the trem, but at tolerable home levels I don't have a problem with noise.

dubs

my final question b4 buying one - can it do softer fender style tremolo as well?

Taylor

I don't have any experience with a Fender amp, but with the sine wave and low depth, this gets very smooth and creamy.