MFX2181
所属分类:单片机开发
开发工具:Asm
文件大小:65KB
下载次数:8
上传日期:2015-08-16 00:58:43
上 传 者:
storedproc9
说明: Poly-channel music synthesizer & guitar effects in ASM for DSP
To run on the ADSP-2181 EZ-KIT Lite with no additional
hardware, except for an EPROM.
文件列表:
--TXT-- (0, 1998-09-05)
--DOS-- (0, 1998-09-05)
CONV81.C (16955, 1998-09-05)
CONV81.EXE (7368, 1998-09-05)
REMOTE.C (12231, 1998-09-05)
REMOTE.EXE (6542, 1998-09-05)
--ADSP-- (0, 1998-09-05)
DO.BAT (388, 1998-09-05)
2181.ACH (85, 1998-09-05)
ADSP2181.H (5484, 1998-09-05)
MACRO.H (3712, 1998-09-05)
COMMON.H (658, 1998-09-05)
INTVEC.ASM (1825, 1998-09-05)
MAIN.ASM (2750, 1998-09-05)
CODEC.ASM (10110, 1998-09-05)
MIXER.ASM (2525, 1998-09-05)
M81DEF.H (1143, 1998-09-05)
M81PLAY.ASM (28517, 1998-09-05)
FILTER.ASM (3435, 1998-09-05)
CHORUS.ASM (6368, 1998-09-05)
REVERB.ASM (11827, 1998-09-05)
SONGS.H (784, 1998-09-05)
UART.ASM (6538, 1998-09-05)
FIRDATA (0, 1998-09-05)
--EPROM- (0, 1998-09-05)
DEMO1.BIN (32768, 1998-09-05)
DEMO2.BIN (32768, 1998-09-05)
FIRDATA\F63.DAT (504, 1998-06-30)
FIRDATA\F125.DAT (504, 1998-06-30)
FIRDATA\F250.DAT (504, 1998-06-30)
FIRDATA\F500.DAT (504, 1998-06-30)
FIRDATA\F1000.DAT (504, 1998-06-30)
FIRDATA\F2000.DAT (504, 1998-06-30)
FIRDATA\F4000.DAT (504, 1998-06-30)
FIRDATA\F8000.DAT (504, 1998-06-30)
Poly-channel music synthesizer & guitar effects
-----------------------------------------------
VladiTX, 19***
------------------------------------------------------------------------------
This package contains the source code, demo EPROM images and utilities.
This is intended to run on the ADSP-2181 EZ-KIT Lite with no additional
hardware, except for an EPROM.
------------------------------------------------------------------------------
In general, the DSP software consists of the following parts:
- music synthesizer
- guitar effects
- mixer
- UART communication
The synthesizer works on the wavetable synthesis method, and it's input
data is basically derived from a MOD file (world known). Because of the
unnecessary complexity of the MOD file structure it is first converted to
some internal format and then burned into the EPROM. This data is fetched
through the Byte Memory of the ADSP-2181, so generally it could be any
type of memory (FLASH memories like Am29F800 or Am29F016 would do great job).
I choosed EPROM, because I had an EPROM simulator with 256kB and thus there
was no need for additional hardware. The music data (CONV81.EXE converts
from MOD files) in the internal format should be written somewhere in the
Byte Memory and only the start address is required. The synthesized output
is 16-bit stereo at a pre-specified sample rate (currently 32 kHz). Panning
between left & right channel is also implemented.
Converters from other type of music files like STM,S3M,NST,FAR,MTM,669 are
also possible, but I had no time.
Guitar effects are: filter, chorus and reverb. Of course, they should work
with every kind of sound, but I used electric guitar.
'Filter' effect is the worst of all, because I used FIRs, but the filter
design program was limited to 63 taps only and the resulting FIR does almost
nothing. I've tried to implement a 'phaser' effect by changing the FIR at some
rate and it almost works, but is too difficult to sense (I've managed to hear
some phaser effect by feeding strongly distorted guitar somewhere at the lower
G and A notes). I think IIRs could do the job, but once again - I had no time.
'Chorus' effect is achieved by sliding the pitch up and down a bit and mixing
with the original sound. Works pretty well.
'Reverb' module is the best of all. It has preset values for 5 types of reverb
and 3 echos.
The three effects are cascaded and every one is controlled independently.
The mixer takes the output from the synthesizer and the effects and postmixes
them. Gains are independently controlled.
UART module emulates asynchronous serial interface and is used to link with
a PC. The PC becomes a remote control for the EZ-KIT, because the only one
button isn't too suitable. A small program on the PC (MS-DOS based) simply sends
commands to the DSP, which in turn interprets them and takes action.
------------------------------------------------------------------------------
Suggested way to try this stuff:
Find: ADSP-2181 EZ-KIT Lite + it's serial cable
8-bit EPROM + programmer / EPROM-simulator
some electric guitar (preferably with a compressor)
stereo audio amplifier
PC/AT (with at least one COM)
Prepare the EPROM: Assemble the software and burn it into the EPROM.
It's about 0x1E00 bytes.
Get your favourite MOD file and convert it with
the CONV81.EXE program. Burn the resulting file
from address 0x2000 (of course, the EPROM must be
big enough to hold the music data). A 27C040 would
be great. Place the EPROM into the socket.
Cheap alternative: find at least 27C256 and select
one of the two demo EPROM images in this package.
Connect: EZ-KIT audio input with the guitar output
EZ-KIT audio output with the amplifier input
EZ-KIT DB9 connector with one of the PC's COM port
EZ-KIT power
Run: REMOTE.EXE -c#
where '#' is the number of the COM port (1..4)
COM1 is the default
Try to start the music. If nothing goes out ... well, find yourself.
But if it plays, then you can start playing the guitar and trying
to do some solos on the top of the music. Fiddle around with the
remote control, too. The reverbs and the echos are good.
------------------------------------------------------------------------------
About the files:
readme.txt - this file
conv81.c - source code
conv81.exe - converter from MOD file to internal data
remote.c - source code
remote.exe - remote control for the ADSP-2181 EZ-KIT Lite
do.bat - instead of makefile
2181.ach - ADSP-2181 memory description
adsp2181.h - constants
macro.h - macroses
common.h - common definitions
intvec.asm - interrupt vectors
main.asm - main module
codec.asm - AD1847 SoundPort support
mixer.asm - mixer routine
m81def.h - music data definitions
m81play.asm - music data player (synthesizer)
filter.asm - filter effect
chorus.asm - chorus effect
reverb.asm - reverb effects
songs.h - songs addresses in Byte Memory. Currently all at 0x2000
uart.asm - UART emulation and command interpreter
FIRDATA - subdirectory with FIR data
demo1.bin - demo playing SHARY.MOD
demo2.bin - demo playing PRELUDE.MOD
------------------------------------------------------------------------------
I hope that everyone will be able to try this and maybe even improve it
somehow. All the source code is here, and it's commented pretty well.
Can I at least be credited if this is used somewhere ???
------------------------------------------------------------------------------
The history: well, this was my Master Of Science thesis and it was done
for about a month and a half (mostly in the nights). It's my first DSP
application and strangely enough - it works. After I received my M.Sc.
degree, I decided to release it to the public. This turns the EZ-Kit Lite
into pretty good music-box.
The original idea was to build some midi-expander (including megabytes of
FLASH memories for the sample banks), but this goes too far beyond a thesis.
------------------------------------------------------------------------------
e-mail:
or
------------------------------------------------------------------------------
Have fun!
VladiTX a.k.a. M.Sc. Vladimir Paraskevov Ivanov
------------------------------------------------------------------------------
近期下载者:
相关文件:
收藏者: