Jump to content
xisto Community
seec77

Open-source Dsp An idea for open musicians.

Recommended Posts

The power of computing has been utilized in the music industry for quite a while now... beginning with the mandatory Cubase installation in every self-respecting studio, and going up to music that is created solely by a CPU. Music helps us express ourselves, and machines help us create music.

 

The prices of various types of DSPs (digital signal processors) for guitarists have been sky-high since the dawning of effects. They will also continue to be expensive because the technology that enables them ain't cheap. So you're paying quite a lot of money for a GFX-8 which, with all respect for the box that's been serving me loyally for the past two months, can not do that much. A normal computer processor, even a really slow one (about 133Mhz) can serve as a great DSP unit, I think, if programmed the right way.

 

All this led me to thinking about creating an open-source multi-effect unit for guitar players. I think it should work like a Line6 POD, where there is a processor that can be accompanied by a foot-switch board. That way production costs can be quite minimal (delegating the foot-switch to 3rd party companies), which will leave us with a really cheap multi-effect. But! More than that, this DSP unit will be very extensible, seeing as how it is pretty much a normal computer. A few megabytes will be enough to store all the effects you might want, and it will also be able to process sound signals with a number of effects (unlike my GFX-8 which can't put tremolo and chorus together).

 

It will also be advantaged by the open-source community of musicians which, I hope, will help by creating numerous effects and posting them on the internet! I've seen numerous signal processing programs lying around, and if we the unit will support the Nyquist standard for audio effects, it will have a vast array of features not found in any current box I know. Besides, if a GP32 can cost less than $200, we might be able to pull it off with the same price roughly, which is less than what I payed for a 2nd hand GFX-8 (which usually costs about $300-400).

 

I really want to actually get this project off the ground! I was hoping for assistance here. How do I go about creating something like this? I will need to buy a processor, but how do I program it? And will a Linux-based operating system be light-weight enough for something like this, or do I have to program my own memory/hardware manager? (I really hope not!) What memory should I be using, and do you guys have some examples of open source DSPs? And besides... what do you think? Would you buy something like this?

 

I don't think this endeavor might generate any revenue for anyone, but maybe through things such as ads, sponsorships and licensed effects I will be able to not lose any money over this. I don't think this'll actually come through at the end, but I'd really like to try!

 

Thank you all for listening to my rambling. :)

Share this post


Link to post
Share on other sites

I am not sure if the processors - the architecture they are built would be suitable for giving an real time solution to the problem. (You did not say, it would be real time - but out of what I understood, that is what is required, I think). Anyway, let me see if I understood this correctly, because I am not familiar with the GP32 or GFX8 and such things.

 

You would use this setup to take input from a musical instrument (a guitar), and also from a 'foot switch-board', and these signals would be converted to digitals (because I belive, guitars by default, gives rich analog signal), and then it would go to the processer to do the number churning to get a digital sample of the effects applied sound or music and that would be played or recorder out. So a general, very minimalastic data flow architecture would be something like this:

 

Musical Instrument + Foot Pad -> ADC (Analog to Digital Circuit) -> Our DSP unit -> target

 

Correct me if I am wrong, because the rest of the things that I am going to say are based on this assumption I made above here.

 

Now if it is just the DSP unit you would want to work in real time, then I actually have my doubts. The reason is something as follows:

The CPU processors that we use for our systems, have adder units and multiplier units. (The old ones only had adder units). Now using these units, the CPU is able to perform one calculation (adding, subtracting, multiplying, dividing) in one machine cycle (the actual time is the inverse of the speed given in terms of GHz). This is fine as far as normal computing goes.

 

But for a DSP there are a lot of Cosine Transforms, Z Transforms and similar time-to-frequency-curve-converter functions involved. These heavily depend on what is called multiply-and-add units. The DSP is able to do a multiplication and addition in one machine cycle. This calculation is built into the hardware itself. And usually in DSP, as far as I know there are multiple multiply and add units, because each of these transformation functions that I am talking about has numerous such operation. Now if we were to implement it in software, we would need to do a lot many things. We would need to - in terms of basic machine operations - one multiply, one move and one add operation. And that is just for one unit - it would be required to be done for several such units. That would mean 3 times number of such calculation required for a transformation.

 

And that is just for one transformation. All effects would require atleast two transformation - one to convert from time signal to frequency signal, and the other to convert it back (because only time signal can be played back).

 

I would like to repeat that I am assuming here that what you require is a real time solution, and over that I do not know the speed of operation of the DSP units in GPX8 and GP32. If they are very low when compared to CPU, the speed of CPU would compensate for the round about methods and we would be able to pull it off.

 

May be someone with more knowledge of these special effect units who also have the knowledge of DSPs would come along and clear this up.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.