hobby project - 16 bit digital audio mixer using m68k

Hello all,

As a hobbyist project I am planning on constructing a digital audio mixer using a M68000 processor, along with some 16 bit serial A/D (MAX195) and D/A (MAX542) converters from Maxim. I will probably use a M68681 as a UART; also, I would like to use an analog fader (pot) fed into an 8 bit parallel ADC as the level control for each input channel. Adding a mute toggle to each input would take practically no extra work so I'm planning on doing this as well.

For the initial phase I am setting my goals as follows: - 16 bit resolution (external) - 48 kHz sampling rate (per channel) - 2 input channels (mono) - 1 output channel (mono)

The idea is to take two mono, line-level, analog input signals, sample them at 48 kHz or so (at 16 bits), "process" them, send a 16 bit digital output and convert it to a mono, line-level, analog output. Right now my "processing" will simply be something like: out = ( a*in1 + b*in2 ) / 2 where a & b are coefficients obtained from the position of the faders. I have no experience with DSP yet (junior level computer engineering student), but a good amount of experience with microcontroller systems and an excellent book on the 68000 (Microprocessor Systems Design, by Alan Clements), as well as a whole bunch of 68k family processors and support chips.

This is not supposed to be a commercially viable project (obiviously, I hope), but it would be nice to have a piece of homebrew digital equipment I could use as a DJ (I'd add phono amp's to use it with turntables). Thank you for reading this far, I know I ramble, but I would appreciate any advice on the feasibility of this project, ways to make it easier or better (without radical changes to the architecture), and especially the limits I will eventually encounter if I attempt to add more channels (stereo?) or "DSP" features such as equalization (this is probably not feasible on a 68000, but I can't easily tell).

-Thanks in advance for all helpful replies! =^) Alexander Miller

(this was cross-posted to comp.arch.hobbyist but it appears that new posts aren't appearing there, at least through groups.google.com)

Reply to
Alexander Miller
Loading thread data ...

Find out the clock frequency for the original 68K processor. Find out how many clock cycles are required by average instructions. Now you can calculate the average number of instructions are available each second. Divide this figure with 48000 (your sample rate) and you know how many instructions are available to process each sample.

I don't remember, if the original 68K already had a fast multiplier, but since you are going to need at least two multiplications for each cycle, check out how many clock cycles are required by the multiplications.

Typically serial converters may require multiple machine instructions to handle each sample, thus reducing the number of instructions available for the actually processing of the audio sample.

You may be able to build a simple main loop, which reads the ADCs, performs some simple operations on the two audio samples and write the result to a DAC. If the loop repetition rate is 48 kHz or something much less is hard to tell, without doing the actual calculations.

And when did you intend to find the time to service this ?

This still consumes the available cycles for each audio sample. If you are using some kind of SAR ADC, it might be a good idea to read only one bit during each 48 kHz cycle, thus, the 8 bit SAR sample rate would be 6 kHz or less, but it would not cause too much variation in the main loop cycle times.

I would suggest using some more modern processor requiring less external hardware and with more computing power, so that you have a decent number of machine instructions available to process each sample.

Paul

Reply to
Paul Keinanen

-Hello all,

-

-As a hobbyist project I am planning on constructing a digital audio

-mixer using a M68000 processor, along with some 16 bit serial A/D

-(MAX195) and D/A (MAX542) converters from Maxim. I will probably use

-a M68681 as a UART; also, I would like to use an analog fader (pot)

-fed into an 8 bit parallel ADC as the level control for each input

-channel. Adding a mute toggle to each input would take practically no

-extra work so I'm planning on doing this as well.

-

-For the initial phase I am setting my goals as follows:

- - 16 bit resolution (external)

- - 48 kHz sampling rate (per channel)

- - 2 input channels (mono)

- - 1 output channel (mono)

-

-The idea is to take two mono, line-level, analog input signals, sample

-them at 48 kHz or so (at 16 bits), "process" them, send a 16 bit

-digital output and convert it to a mono, line-level, analog output.

-Right now my "processing" will simply be something like: out = (

-a*in1 + b*in2 ) / 2

-where a & b are coefficients obtained from the position of the faders.

- I have no experience with DSP yet (junior level computer engineering

-student), but a good amount of experience with microcontroller systems

-and an excellent book on the 68000 (Microprocessor Systems Design, by

-Alan Clements), as well as a whole

-bunch of 68k family processors and support chips.

-

-This is not supposed to be a commercially viable project (obiviously,

-I hope), but it would be nice to have a piece of homebrew digital

-equipment I could use as a DJ (I'd add phono amp's to use it with

-turntables). Thank you for reading this far, I know I ramble, but I

-would appreciate any advice on the feasibility of this project, ways

-to make it easier or better (without radical changes to the

-architecture), and especially the limits I will eventually encounter

-if I attempt to add more channels (stereo?) or "DSP" features such as

-equalization (this is probably not feasible on a 68000, but I can't

-easily tell).

Well, at first glance it seems like your hardware will create a tough climb for your goal. But the problem is that I'm not really sure what your goal is:

1) Learning 68K stuff. 2) Homebrewing. 3) Building a usuable mixer.

If it's 1) Then by all means proceed. However if the main goal is either 2) or

3) then you should look at new hardware that integrates all (or most) of the functionality you're talking about. A perfect example is Microchips new dsPIC hardware which has all the periperals you need along with a 30 MIPS DSP core. Microchip is in fact sponsoring a design contest where you can get a development board for $140. Here's the link:

formatting link

TI and AMD also have chips that are much more suitable for the project. In fact if I were to stay in Motorola space then the 56002 DSP (or its current equivalent) would be a better choice.

This is a DSP project. Attacking it without DSP hardware is like getting into the ring with one hand tied behind your back.

-

--Thanks in advance for all helpful replies! =^)

-Alexander Miller

-

-(this was cross-posted to comp.arch.hobbyist but it appears that new

-posts aren't appearing there, at least through groups.google.com)

That newsgroup is moderated. Your post will show up soon enough.

BAJ

Reply to
Byron A Jeff

snip Totally off topic, well sort of try the alesis al3101 dsp, designed for audio, very cheap and digital i/o onboard

The AL3101 is a fast signal processor optimised for signal filtering, equalisation and dynamics processing. Large word size provides easy, accurate algorithm creation for audio and other high dynamic range applications. It operates stand-alone with a serial PROM or in conjunction with a host microprocessor. An internal PLL eliminates the need for external high frequency clocks.

data on

formatting link
check out "wavefront" semiconductors

martin

Three things are certain: Death, taxes and lost data. Guess which has occurred.

Reply to
martin griffith

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.