Author Topic: How time consuming is digital and DSP compared to analog, one offs worthwhile?  (Read 7290 times)

Processaurus

Not knowing much about the subject, but being more than casually interested in learning about digital and dsp, I'm wondering from the few people around here that write programs for their DIY effects, how time consuming it is in general compared to analog stompboxes.  Obviously the sky's the limit, and how well you know how to do it, but for those who do, does it make any sense for one offs or is it more like something you'd want to do if you're selling them.

Another thing I was wondering if it was realistic, I had an idea for a loose "club" where people here could trade their work (like I'll trade my tap tempo for your random waveform generator, etc), maybe you get in the club by submitting something, and have a signed thing about not stealing peoples work to sell commercially, since obviously that type of thing makes the most generous people lose enthusiasm for sharing work.  Or maybe people could just trade copy protected chips?

coxter

Not much of a difference if you're building a delay pedal. Just a chip difference.

The Tone God

This question really depends on the skill of the builder. There are advantages and disadvantages to using micro computers in effects. Lets take  Payback for example. Payback has alot of gate logic. I had to do the boolean math and alot of tweaking to get the everything right. That alone took up the majority of the development time. I sat there as I was going through all of it knowing that I could have been done in a matter if minutes if I were to use a uC hence the advantage.

Now if I were to have used a uC and screwed up something in the code or mis-wired the hardware then I would have had a new set of problems to debug which could cost more time then the gate logic so it could easily become a disadvantage. All that is really being done is moving the problems to other areas granted so a new set bugging skills are needed. This is why it depends on the builder's skill.

As for the idea of sharing bits there has been talk of a uC / DSP library akin to the schematics gallery. DSP right now is very complex to get into. Some basic uC information is available but it scares off newbies so I don't see much happening for awhile. I hope in the years to come people will moved along and take the plunge.

Andrew

Processaurus

Andrew, thanks for the thoughts.  I have the impression that you knew programing previously from work related things outside DIY music equipment, so it makes a lot of sense to use your skills.  Similarly I use a 3d modeling program to design my pedals and make sure stuff fits, and am able to knock out a drilling template in minutes for a new box (by modifying old similar layouts), but I probably wouldn't recommend people casually learn it specifically to make stompboxes.  Whats on my mind is if some basic programming skills for microprocessors (leaving DSP out of it for the time being) would seem, to those who have spent the time to learn them, to be a good investment of energy to learn for someone already with a start in analog electronics, interested in using the skill for their personal projects, and probably not in the gold rush known as the boutique effects business :icon_rolleyes:.  Is it about the same kind of investment as learning basic analog electronics: to read schematics, use a multi meter, get the basic ideas of how components work, solder...

One idea that is very compelling about digital stuff for a DIYer is that once you do the work (or someone else does) its possible to graft building blocks together to make new effects, or control signals, saving labor of physically making things over and over again (like once your tap tempo, multi shape, multi phase , voltage controlled, super fantastic LFO program is designed, you could use it in all kinds of things, flanger, phaser, filter, trem, etc.)

Yes, I can see how debugging can be daunting when its unknown if the software or the circuit is the problem.

The Tone God

I treat it as another tool in the toolbox. Take your CAD skills. Most people around here don't know how to CAD and don't really need to know how to CAD so for most people it would not be worth learning. The advantage that you have  by having the CAD skills already is that if you decided to build something that others haven't tried you have the skills to figure it out ahead which saves you alot time. I CAD most of my stuff too. ;D

Part of this is decided where do you want to go with your building. If you are happy with building basic fuzzes then it may not be worth your time. If you want to expand the functionality of effects you designing then it maybe a set of skill worth learning.

The re-usability of code is a great feature I must admit. I have a somewhat large library of things that I use so when I decided to build something I can take the various bit and plug them together spending most of time writing the glue code and a new bits if needed. It does reduce time greatly. The idea is later on we would have an open source collection like that here but that is a dream for long down the road.

Andrew

Processaurus

If you are happy with building basic fuzzes then it may not be worth your time. If you want to expand the functionality of effects you designing then it maybe a set of skill worth learning.

Thanks Andrew, sounds good.  I'm going to start getting through my book, "easy microcontrol'n"  :icon_smile: since I'm interested in more than a few fuzz boxes for sure, start by making some LEDs blink.  Worse comes to worse there is a local I bet I could chop firewood for in exchange for fixing buggy codes.

RaceDriver205

Quote
(like once your tap tempo, multi shape, multi phase , voltage controlled, super fantastic LFO program is designed, you could use it in all kinds of things, flanger, phaser, filter, trem, etc.)
Is this specifically what you wanted to make (in the end)? Cos if so, theres a great pdf I posted in the DSP forum about making sine/triangle etc waves with micros.

If you are learning programming for AVRs, avrfreaks.net has a very helpfull forum (esp. if you ask questions about basic code).

Processaurus

Thanks, I'll look that up once my LEDs are blinking.  Have you used it yet in an effect of yours?

Digital LFO generation is definitely one thing that I think would be handy to learn, from wanting funny custom tapered waveforms, like if a phaser or flanger needs to linger longer at certain points in the sweep.  I wonder if anyone's painstakingly made a digital univibe lfo that reproduces the mojo laden idiosyncrasies of the combination of the phase shift oscillator and quirky special bulb/ldr.  Whats weird to think about is that if you got light to shine on the LDR in exactly the same amount, it would scientifically have to sound the same, even though whats making the light pulse is a little computer.

RaceDriver205

Quote
Thanks, I'll look that up once my LEDs are blinking.  Have you used it yet in an effect of yours?
No, I don't do much experimenting with effects at all. I only make tried and tested effects.

If you are deciding on PIC or AVR, may I be the first to recommend strongly AVR.
With AVR you can:
  • Make your own simple programmer
  • Write and program Programs in C and Assembly with free software
I would say AVR has a superior instruction set to PIC, and I would say that I prefer the AVR programming setup, and I would also say that I think AVR devices are far more cool as far as features/size goes than PIC devices. I would say that PICs are not easier toi use than AVRs, too.

Rectangular

I generally tend to favour digital only for time-domain manipulation. pitch shift, granular synthesis, sampler/delay. opto-coupling is a very undemanding application, most LDRs in the 50-200 cents area, aren't precision stuff

is anyone here familiar with Pure Data or Max/Msp ? what I'd really like to see, is a microchip in a pedal (high-end PIC ?) where you can load basic pd or max patches (through usb or serial I suppose), and get new DSP effects on the fly. the beauty of those programs is that you don't have to be an egghead programmer and learn a new programming language. its structured very similarly to schematics and block diagrams, something everyone here is capable of reading and comprehending

I think such a project could get everyone on board the DSP bandwagon, I wonder how plausible it is.

cheers
-rec

caress

max/msp is the shizzle fo rizzle!  and it's not too hard to learn either.  i had a good amount of experience in max way before i started bulding pedals and IMO, a lot of the ideas are interchangable between hardware and software design.

SeanCostello

As far as MAX/MSP or Pd in a pedal, the problem is that the generic floating point code that both programs are based on is not efficient enough to be cost effective in a pedal. You would need to do one of three things:

- rewrite the program to run in fixed point (there has been some progress on this in Pd), to use cheaper processors,
- port the unit generators to assembly language for a SHARC or TI 67xx DSP, or
- use an embedded microprocessor with enough power to run the program, such as a PowerPC

Personally, I would think it would be a better use of energy to learn the assembly code or C programming for a given embedded processor, and work from there. I have a bit of a bias against programming DSP algorithms in a visual environment, as algorithms that get fairly complex (such as reverbs or higher quality pitch shifters) end up being almost impossible to debug visually, with wires all over the place. For me, Pure Data and MAX/MSP are programming languages, with their own learning curve.

Disclaimer: I was working on two different visual programming environments for DSP algorithms for the last 7 years at my old job, so I am kinda burned out on them. I am finding that working in C, or a non-visual DSP scripting language, allows me to create more complicated algorithms that are far easier to debug and understand.

Right now, I think that the Spin Semiconductor FV-1 is the bee's knees for DSP algorithms in a pedal. It is limited, but the assembly language is minimal, simple and powerful. If you want reverb, dynamic processing, filtering, or simple pitch shift, it is the first place I would turn.

Sean Costello


David

Quote
Thanks, I'll look that up once my LEDs are blinking.  Have you used it yet in an effect of yours?
No, I don't do much experimenting with effects at all. I only make tried and tested effects.

If you are deciding on PIC or AVR, may I be the first to recommend strongly AVR.
With AVR you can:
  • Make your own simple programmer
  • Write and program Programs in C and Assembly with free software
I would say AVR has a superior instruction set to PIC, and I would say that I prefer the AVR programming setup, and I would also say that I think AVR devices are far more cool as far as features/size goes than PIC devices. I would say that PICs are not easier toi use than AVRs, too.

I humbly beg to differ:

A PIC programmer is also easy to build.  It's even easier to go to www.sparkfun.com and buy one for a few bucks.
PICs can be programmed in assembler, a BASIC variant and C.  Probably others, but I don't recall them at the moment.  A complete IDE is available from Microchip.  For free.

There's a hell of a base of pretested and downloadable code for PICs at www.piclist.com.  There is more at www.winpicprog.co.uk .

puretube

I currently love to play with the "SPIN" as a so-called: "analoguely embedded digichip":


"SpinPhonizer"

"OrCaster"

"SpinPhonCaster"

"SpinQuire"

"SwellFreeze"

RaceDriver205

Quote
There's a hell of a base of pretested and downloadable code for PICs at www.piclist.com.  There is more at www.winpicprog.co.uk .
Nifty! I guess PIC does get used lots too.
Quote
PICs can be programmed in assembler, a BASIC variant and C.
Is this C compiler free?

The Tone God

Nifty! I guess PIC does get used lots too.

PICs have been around for a long time and have alot of support to offer in terms of programmers and code. I don't think there is very good forum support for PICs though.

Is this C compiler free?

I believe there is one or two that are free but very limited. To be honest C on PICs is really painful. Its one of the reasons I stopped using PICs and uC altogether for awhile. Atmel designs their uC with higher level languages in mind which is one of the reasons that AVRs are popular.

I'm alittle out of touch but Is there only one Basic compiler for PICs now ?

I still stand by the advice of purchasing a programmer no matter the architecture. Besides I don't believe you can buy a JTAG/ICE for PICs for $50.

Andrew

hgamal

Free PIC C compiler?

Try http://sdcc.sourceforge.net/
Haroldo Gamal