Best Computer Language course to start learning DSP?

Recording Techniques, People Skills, Gear, Recording Spaces, Computers, and DIY

Moderators: drumsound, tomb

Post Reply
CalibratedRecording
pluggin' in mics
Posts: 34
Joined: Thu Jun 19, 2003 6:31 am
Location: Rochester, NY
Contact:

Best Computer Language course to start learning DSP?

Post by CalibratedRecording » Tue May 04, 2010 9:35 am

Hello all! I am looking to take a few computer language courses to start learning DSP. I have some knowledge of writing code, but not as in depth as I would like.

Where should I start? C? C+? C++? Java?

Thanks!

kslight
mixes from purgatory
Posts: 2970
Joined: Tue Oct 13, 2009 7:40 pm

Post by kslight » Tue May 04, 2010 10:47 am

I could be wrong but I believe you might need to write in assembly code to talkto the DSP?? As in not sure what platform you want to code for but you would probably need to go through several courses to get there. I would personally get the basics with C++ and work your way to something more specialized from there. I took a few C++ classes but decided it wasn't for me early on, quite mundane.

The Scum
moves faders with mind
Posts: 2746
Joined: Thu Jul 03, 2003 11:26 pm
Location: Denver, CO
Contact:

Post by The Scum » Tue May 04, 2010 11:23 am

You can write software to process signals in any language...you could write a PERL script to read in and manipulate .wav files...or even do it with Excel. It wouldn't be pretty or efficient, but it would work.

There is no C+. Once you learn a little C, you'll understand why.

Depending on the direction you want to go, the options will play out a little differently. If you want to write plugins, C or C++ are the languages you'll need to know. Steinberg make it easy to download the VST SDK if you want a look at their guts.

If you're looking at using standalone DSP chips, C and assembly are the languanges you'll probably want. If you're working with modern DSPs, they'll have proprietary constructs in C to make really efficient processing that map directly to the hardware, often better than hand coded assembly. If you're seriously considering this route, look for the Line6/Motorola tonecore dev kit, and the DSPic from Microchip.

If you really want to be a DSP guru, the thing you'll really want to study is higher math...linear alegbra, differential calculus, etc. Knowing a platform like Matlab where you can tweak algorithms without much system overhead will probably be useful.

brew
pushin' record
Posts: 284
Joined: Thu Aug 14, 2003 2:06 pm
Location: Brooklyn

Post by brew » Tue May 04, 2010 2:57 pm

It sounds like you're a beginner. I'd start with graphical object based to get your head around the concepts and immediately have some reward. MAX is the app of choice for this. http://cycling74.com/

To program actual DSP chips, as others have mentioned, you'll need more specific programming experience in the chip environment itself (Motorola, Analog Devices, etc).

Andy Peters
re-cappin' neve
Posts: 602
Joined: Mon Mar 12, 2007 8:45 pm
Location: Sunny Tucson

Re: Best Computer Language course to start learning DSP?

Post by Andy Peters » Wed May 05, 2010 12:04 am

DrumKingSven wrote:Hello all! I am looking to take a few computer language courses to start learning DSP. I have some knowledge of writing code, but not as in depth as I would like.

Where should I start? C? C+? C++? Java?

Thanks!
If you are interested in developing for the mostly-obsolete Motorola 56k series DSPs, then you'll need to learn that processor's assembly language and the myriad details of its instruction set and execution model.

If you are interested in developing for TI or Analog Devices DSPs, then you can do most of your work in C, but again, you really need to understand the processor architecture. Coding for a DSP is not difficult but it requires more attention to detail than coding for a Windows application.

Oh, yeah, the development tools for both TI and ADI DSPs are not inexpensive. Figure about four large to get going, unless you spring for an evaluation/starter board which will ship with a version of the tools limited to targeting just the board you bought.

If you want to simply model a filter or other algorithm, possibly the easiest way to get going would be to learn how to write an Audio Unit for Mac OS X's Core Audio. You'll do the actual coding in C or C++ and the whole set-up is pretty slick.

-a
"On the internet, nobody can hear you mix a band."

User avatar
millzners
ass engineer
Posts: 43
Joined: Fri Dec 28, 2007 6:57 am

Post by millzners » Wed May 05, 2010 11:59 am

For my EE senior design class I did a DSP project and used Matlab and Simulink to do my DSP coding and then to loaded the DSP to a piece of hardware (I forget which one). I had a blast doing it, and I got one of the few A's out of my class.

Using Simulink you simply draw up a signal chain like you'd see in your control systems text books by connecting modules, fill in some code using Matlab's coding language where necessary, and it will do all the debugging, compiling, and will actually convert your code directly to C and fill in all the necessary hardware-specific things before loading the program onto the board. It was ridiculously simple. I never even looked at C, and after years of using C, it was a huge relief.

I made all sorts of wicked effects from simple delays to complex things and it didn't require the drudgery of coding in C. You make a mistake and it tells you in plain English what you did wrong, it's not like if you fuck up with C and you'll spend days looking over pages of code.

Simulink and Matlab are fantastic programs to use anyway and you may find you get a lot of mileage out of Matlab not only for DSP and music technology type applications, but also for hardcore electrical and mechanical engineering if that's your major.

User avatar
@?,*???&?
on a wing and a prayer
Posts: 5804
Joined: Wed May 07, 2003 4:36 pm
Location: Just left on the FM dial
Contact:

Post by @?,*???&? » Thu May 06, 2010 9:08 am

Excellent quest for you.

There are myriad jobs for this skill too.

Check out:

http://allthingsd.jobamatic.com

Search "digital audio" and you'll see the listings.

Best of luck!

User avatar
sonocide6
alignin' 24-trk
Posts: 58
Joined: Mon Apr 09, 2007 9:41 pm
Location: Metamora, IL
Contact:

Post by sonocide6 » Thu May 06, 2010 9:50 am

I think Matlab would be a great place to start as well. There's a similar open-source suite called SciLab you could poke around with too to kinda "test the waters." Both Matlab and SciLab have signal processing toolkits/packages. There's tons of tutorials and examples out there on the internets for both.

Andy Peters
re-cappin' neve
Posts: 602
Joined: Mon Mar 12, 2007 8:45 pm
Location: Sunny Tucson

Post by Andy Peters » Fri May 14, 2010 10:44 pm

millzners wrote:Simulink and Matlab are fantastic programs to use anyway and you may find you get a lot of mileage out of Matlab not only for DSP and music technology type applications, but also for hardcore electrical and mechanical engineering if that's your major.
MatLab and Simulink are pretty cool tools, but unless you have an educational version the package is simply unaffordable for the casual user.

GNU Octave is a pretty good MatLab clone.

-a
"On the internet, nobody can hear you mix a band."

User avatar
route-electrique
gettin' sounds
Posts: 109
Joined: Tue Sep 08, 2009 6:49 am
Location: Finland, Biggsby Street
Contact:

Post by route-electrique » Fri May 14, 2010 11:08 pm

C. Good idea is to check what software companies want from you, and that is usually C.
♫ "Beware the handshake that hides the snake. Beware the pat on the back - it just might hold you back." ♫

Image

dynomike
carpal tunnel
Posts: 1651
Joined: Wed Jun 18, 2003 8:26 am

Post by dynomike » Mon May 17, 2010 6:58 am

PureData is a great way to start if you've never programmed anything. I found the 'dataflow' system very easy to understand as an engineer who's used to hooking up a lot of wires. It is free. You can do a fair amount of DSP stuff. You may find it useful if only for prototyping as you can whip shit together pretty quick.
Making Efforts and Forging Ahead Courageously! Keeping Honest and Making Innovations Perpetually!

cdixon6
alignin' 24-trk
Posts: 52
Joined: Thu Jan 24, 2008 2:51 pm

Post by cdixon6 » Thu May 20, 2010 7:40 pm

To learn and understand DSP isn't about the programming language but the the math involved. Differentials, etc. The programming language is merely the vehicle. With that said, learning C is probably the best starting point. Assembly can get really complex, depending on the processor.

The Scum
moves faders with mind
Posts: 2746
Joined: Thu Jul 03, 2003 11:26 pm
Location: Denver, CO
Contact:

Post by The Scum » Fri May 28, 2010 10:16 am


Post Reply

Who is online

Users browsing this forum: T-rex and 122 guests