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 ------------------------------------------------------------------------------

近期下载者

相关文件


收藏者