Calling All Electronics & Programming Gurus!

Tekker

New member
Hi all,

I am currently in my second year of a 2-year electronics degree, and next term we have a class where we work in groups to design and build any project that we choose to do. So myself and a couple of the others in the class have already decided that we want to build a guitar multi-effects pedal for our project.

The guidelines for the project is that it has to be part analog and part digital (using the Motorola 68hc11 microcontroller).

We're thinking about doing the distortion with tubes and the rest of the effects, like delay, flange, chorus, reverb, etc... in the digital world (depending on how long it takes us of course) along with a digital display. We have lots of great instructors who really know their stuff and we'll have lots of help if we get stuck, so I'm not too worried about that… But I would like to try to do as much of this stuff on our own as we can. I'm not expecting the best sound quality, since it's mostly for the experience (and the grade! lol) but I would like it to be somewhat decent at least.

Right now I'm trying to get a head start on it by doing some research and I'm looking for any of the following information/websites:

How To Program Digital Audio Effects - In Either C++ Or Assembly Language: Preferably Assembly since we won't be learning C++ until next term (which is kind of weird that they didn't have that class before we have to do our projects).
Here's a good example for C++.
http://users.iafrica.com/k/ku/kurient/dsp/algorithms.html

"Easy To Understand" C / C++ Tutorials

Comparisons Of Different Components:
For Example: Tubes - The 12AX7 seems to be used a lot, but it's not the only one out there. So how does this tube sound in comparison to another brand/model? A/D and D/A Converter IC's - Which ones are good and which ones should be avoided?

Any other info that may be helpful to our project!

So if anyone has any input and/or websites that they would like to share, it would be greatly appreciated! :)

Thanks,
-tkr
 
Sounds like a very good class to me. Building a tube distortion unit sounds really cool. You may want to look at building a tube compressor with that. As for the digital side, why don't you make a digital recorder/looper to go with it. With memory prices low, it would not cost that much and you could make it expandable.

You may also want to look at adding MIDI capabilities into the unit. It would allow you to use off the shelf stomp switches or use PC control.

Personally, I would use assembly to write the programs in. It would be much faster and you can take it to a ROM easily. C has a tendency to put some overhead in the programs.
 
juststartingout said:
Sounds like a very good class to me. Building a tube distortion unit sounds really cool. You may want to look at building a tube compressor with that. As for the digital side, why don't you make a digital recorder/looper to go with it. With memory prices low, it would not cost that much and you could make it expandable.

You may also want to look at adding MIDI capabilities into the unit. It would allow you to use off the shelf stomp switches or use PC control.
WOW!!! That might be a bit too much for our project! lol :D

I'll be happy if we can have the tube distortion section, some basic digital effects, and a digital display by the time our class is done!

Personally, I would use assembly to write the programs in. It would be much faster and you can take it to a ROM easily. C has a tendency to put some overhead in the programs.
The general info I've been getting is that it would probably be better to write it in C... But since I don't know squat about C (at least not yet), it may be more work to learn how to program in C than it would be to just do it in Assembly! I've seen codes done in C and it looks very confusing to me! :confused: (But that's why I'm asking for some good C tutorials also)

I'm just doing basic research right now, so anything info/websites anyone can give it would be a huge help! :)

Thanks,
-tkr
 
Wow - brings me back a few years (20 years to be exact). Electronics Engineering Technology 1981-84.
My technical report was a digital audio delay unit.

Designed and built from the ground up. Used 16 KILOBYTES (! :eek: !) of dynamic RAM (and that cost me 100 bucks !). I didn't use a microprocessor, as that would have been over designing the thing (although I did start out with that intent - a Motorola 6809).
For timing, I manually programmed an EEPROM to send out my RAS, CAS and refresh signals to the RAM controller, as well as other timing, and by varying its clock speed, controlled the sample rate. The delay time (storage) was switch controlled. Quite simple, and ingenious if I do say so myself :rolleyes:

It worked well enough to get me an A. And during the demo when I hit the note, heard it, watched the instructor’s eyes go, well, this didn't work, and 1.5 seconds later, out came the delayed note, and again, and again.
Fuck that was great ! No faith in those pricks.

Anyway, with the components available today, god, this would be so much fun to do over again. Also, we didn't have the research tools (i.e. the Internet) you have at your disposal.

My only suggestion is to spend more time (and money) on your analog section - I didn't, and the quality could have been much better. The cleaner the input - the better samples you're going to get, and the better you will be able to manipulate them digitally (whether they are software or hardware algorithims).

I wish you all the best in this, man. And blow them away !

Mike
 
I'm a programmer, I know and use several languages including C as one of the primary. A long time ago (late 80's maybe) I made a few things in both assember and C and found that you had to be a pretty good assembler-programmer to beat the compiler. Later experiences confirm this. If you find that some parts need a boost you can always use assembler at those points (easy to do in C).

Never done any audio (lots of midi back then), but I've been tempted to get my hands on dx sometimes. There's lots of C-tutorials on the web. Kernighan & Richies book is the grandfather of them all (you can't miss it, it's like missing the cross in a church).

http://www.harmony-central.com/Computer/Programming/
http://www.programmersheaven.com

Good luck!
 
Hey teknomike,

Thanks for the input, that sounds like a really cool project!

I don't know how much we are going to be able to spend, but I'll keep your sugestion on the analog section in mind!

I don't know who all is going to be working in our group yet (I know of at least 3 and possibly a 4th) or how many we are going to be allowed to work with. But I would definitely like to build my own effects pedal that I would be able to keep (who would be the one ot keep it after it's finished would be a tough decision if we only built one! :confused: )... And I sure don't have much money, so I don't know what we are going to do yet! lol


Thanks a lot Beltrom for those excellent links!
One of the C++ tutorials I saw on the programmers heaven website looks like a really good one! So I'm gonna start with that one! :)

Thanks,
-tkr
 
Using C vs Assembly for hardware programming. I guess that argument is like asking who is the best guitarist, everyone will have an opinion, and at the end of the day it really dosn't matter because either will work well for you.

Personally I would prefer assembly only because it is the language that the processor uses. But keep in mind, I have been programming for 25 years and can write in most any language. That was when a 1k prom and 2k of memorywas king, and 2Mhz processors were cooking. I have found that, if you are programming something to stick in a ROM, it is easier to write in assembly. When you have a little bug, you can compare the ROM directly to your source.Like I said, either will work well for you and pick whatever you are more comfortable with.

Now I don't know if it's allowed in your project, but there are many manufacturers that make small processor boards with the support chips already on it. You can use the I/O lines to tie into and control your tubes and discrete circuits. You can write the programs and stick it in a rom without having to solder the ICs and make your own PC board.

Have fun with it. It's a project you can be proud of and something you will never forget.
 
juststartingout said:
Now I don't know if it's allowed in your project, but there are many manufacturers that make small processor boards with the support chips already on it. You can use the I/O lines to tie into and control your tubes and discrete circuits. You can write the programs and stick it in a rom without having to solder the ICs and make your own PC board.
I don't know what is going to be allowed for our project yet, but that may be something to keep in mind. Although it would be nice to be able to do everything ourselves, that would definitely make things easier on us and allow us to focus more on the "sound" aspect of the project of it instead of spending a lot more time trying to build the whole thing from the ground up and making it work. :)

Thanks,
-tkr
 
Wow, thanks Doug!
Both of those sites look great... And the message board on the Music DSP site should be especially helpful! :cool:

Thanks again,
-tkr
 
Back
Top