Digitalized Surround Sound Effects Using ADSP BF 533 Kunal Gupta ECE 3551, 03 Fall, 2006.

Slides:



Advertisements
Similar presentations
I/O Management and Disk Scheduling
Advertisements

9.4 Page Replacement What if there is no free frame?
Chung-Ta King National Tsing Hua University
Chapter 2 HARDWARE SUMMARY
Microprocessor or Microcontroller Not just a case of “you say tomarto and I say tomayto” M. Smith, ECE University of Calgary, Canada.
University of Tehran 1 Microprocessor System Design Interrupt Omid Fatemi
Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 2.
Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 3 – New instruction recap Tutorial.
Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 2.
Software and Hardware Circular Buffer Operations First presented in ENCM There are 3 earlier lectures that are useful for midterm review. M. R.
Microprocessor or Microcontroller Not just a case of “you say tomarto and I say tomayto” M. Smith, ECE University of Calgary, Canada.
Chapter 1 Computer System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Over-view of Lab. 1 For more details – see the Lab. 1 web-site There will be a 20 min prelab quiz (based on Assignment 1 and 2) at the start of the lab.
1 Lecture 2: Review of Computer Organization Operating System Spring 2007.
1 ICS 51 Introductory Computer Organization Fall 2006 updated: Oct. 2, 2006.
Computer System Overview
1 Computer System Overview OS-1 Course AA
1 CSIT431 Introduction to Operating Systems Welcome to CSIT431 Introduction to Operating Systems In this course we learn about the design and structure.
Midterm Tuesday October 23 Covers Chapters 3 through 6 - Buses, Clocks, Timing, Edge Triggering, Level Triggering - Cache Memory Systems - Internal Memory.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Microprocessor or Microcontroller Not just a case of “you say tomarto and I say tomayto” M. Smith, ECE University of Calgary, Canada.
Getting the O in I/O to work on a typical microcontroller Ideas of how to send output signals to the radio controlled car. The theory behind the LED controller.
Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 2.
Computer System Overview Chapter 1. Basic computer structure CPU Memory memory bus I/O bus diskNet interface.
Getting the O in I/O to work on a typical microcontroller Activating a FLASH memory “output line” Part 1 Main part of Laboratory 1 Also needed for “voice.
Blackfin BF533 EZ-KIT Control The O in I/O
Professor: Dr Kepuska Presented by Kyle Farnum. Audio Manipulation through utilizing three types of filters: Low-pass filters Band- pass filters High-
Input Laboratory: GPIO Pin control needed to have the Blackfin accept your commands Re-uses information from ENEL353 and ENCM369 courses and text books.
Microcomputer Systems Project By Shriram Kunchanapalli.
Chapter 1 Computer System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Computer Systems Overview. Page 2 W. Stallings: Operating Systems: Internals and Design, ©2001 Operating System Exploits the hardware resources of one.
Computer System Overview Chapter 1. Operating System Exploits the hardware resources of one or more processors Provides a set of services to system users.
Chapter 1 Computer System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
To use the blackfin processor BF-533 to implement what we have learned about the blackfin processor. My approach for this project by : Input Audio will.
Audio Led Bargraph Equalizer Final Project for ECE /02/09 Instructor: Dr Kepuska By; Anushan Weerasooriya & Chris Guzowski.
Audioprocessor for Automobiles Using the TMS320C50 DSP Ted Subonj Presentation on SPRA302 CSE671 / Dr. S. Ganesan.
By Danny Matthews Supervised by Dr Des Watson. 8 Bit 8 Bit console released in Million 60 Million Units Sold 1000 Released Titles Over 1000 Released.
6-1 Infineon 167 Interrupts The C167CS provides 56 separate interrupt sources that may be assigned to 16 priority levels. The C167CS uses a vectored interrupt.
Simon Says ECE 3551 Microcomputer Systems I Elizabeth Nelson.
Lecture 1: Review of Computer Organization
Audio Manipulation And Buffers using DSP-BF533 EZ-KIT Lite Dr. Veton Z. Këpuska By Husain Alotaibi Ahmed Alalyak ECE 3551 Microcomputer System I Spring.
2005MEE Software Engineering Lecture 7 –Stacks, Queues.
Microcomputer 1 Final Phantom Speakers Patrick Marinelli Matt Hopkins.
Lab. 1 – GPIO Pin control Using information ENEL353 and ENCM369 text books combined with Blackfin DATA manual.
ECE 3551 – Microcomputer Systems 1 Fall 2010 Siobhan Ireland.
ECE 3551 – Microcomputer Systems I By Md. Raqiq Islam AUDIO EFFECTS IMPLEMENTATION.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
“Uber” Box Multifarious Systems 1 Pattarapong Rojanasthien Will Matthau.
By: Ryan Etwaru. Demonstrate the ability to implement functionality on a BlackFin Processor Implement on input signal: Audio Effects Echo Vibrato Change.
Sound Source Localization & Surround System A Blackfin 533 DSP Application by Jordan Arnold & Adam Hanafi.
Aaron Worob.  Create a program using the Blackfin BF533 that allows the user to “move” the source of input sound.
EE 345S Real-Time Digital Signal Processing Lab Fall 2008 Lab #3 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6713 DSP.
Computer Systems Overview. Lecture 1/Page 2AE4B33OSS W. Stallings: Operating Systems: Internals and Design, ©2001 Operating System Exploits the hardware.
1 Computer System Overview Chapter 1. 2 Operating System Exploits the hardware resources of one or more processors Provides a set of services to system.
Microprocessor or Microcontroller
Andrew Lash ECE 3551 DSP on BlackFin BF533
Microcomputer Systems 1
Software and Hardware Circular Buffer Operations
Trying to avoid pipeline delays
Blackfin Volume Control
TigerSHARC processor and evaluation board
Moving Arrays -- 2 Completion of ideas needed for a general and complete program Final concepts needed for Final DMA.
Lab. 2 Modeling an audio channel with delays on ADSP21061
* 07/16/96 This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items.
See the Lab. 1 web-site and later lecture notes for more details
Explaining issues with DCremoval( )
Lab. 1 – GPIO Pin control Using information ENEL353 and ENCM369 text books combined with Blackfin DATA manual.
Blackfin BF533 EZ-KIT Control The O in I/O
Computer System Overview
Working with the Compute Block
Presentation transcript:

Digitalized Surround Sound Effects Using ADSP BF 533 Kunal Gupta ECE 3551, 03 Fall, 2006

Objective Create different surround sound effects Methods –Research existing algorithms –Think on new ideas and create them

Requirements At starting all LEDS are off and sound is played as it comes. This shall be considered as start state of the system. On the first press of button on BF 533 EZ KIT board with label SW 4 for PF 8 the LED 4 will be lit on and input source is played to two speakers – speaker 1 and speaker 2. The sound shall be played same by speakers to the user. The algorithm for implementation will use inefficient. On the second press of button on BF 533 EZ KIT board with label SW 4 for PF 8 the LED 4 will continue to be lit and input source sound will be processed so the left speaker plays the input sound before the right speaker. The algorithm for implementation will use inefficient use of memory move. On the third press of button on BF 533 EZ KIT board with label SW 4 for PF 8 the LED 4 will continue to be lit and input source sound will be processed so the right speaker plays the input sound before the left speaker. The algorithm for implementation will use inefficient use of memory move. On the forth press of button on BF 533 EZ KIT board with label SW 4 for PF 8 the LED 4 will be lit off and system shall return to its start state. On the first press of button on BF 533 EZ KIT board with label SW 5 for PF 9 the LED 5 will be lit on and input source is played to two speakers – speaker 1 and speaker 2. The sound shall be played same by speakers to the user. The algorithm for implementation will use more efficient implementation of circular buffer through use of moving pointers

Requirements On the second press of button on BF 533 EZ KIT board with label SW 5 for PF 9 the LED 5 will continue to be lit and input source sound will be processed so the left speaker plays the input sound before the right speaker. The algorithm for implementation will use more efficient implementation of circular buffer through use of moving pointers. On the third press of button on BF 533 EZ KIT board with label SW 5 for PF 9 the LED 5 will continue to be lit and input source sound will be processed so the right speaker plays the input sound before the left speaker. The algorithm for implementation will use more efficient implementation of circular buffer through use of moving pointers. On the forth press of button on BF 533 EZ KIT board with label SW 5 for PF 9 the LED 5 will be lit off and system shall return to its start state. On the first press of button on BF 533 EZ KIT board with label SW 6 for PF 10 the LED 6 will be lit on and input source is played to four speakers – speaker 1, speaker 2, speaker 3 and speaker 4. The sound shall be processed with some surround sound effect. On the second press of button on BF 533 EZ KIT board with label SW 6 for PF 10 the LED 6 will be lit off and system shall return to its start state. On the first press of button on BF 533 EZ KIT board with label SW 7 for PF 11 the LED 7 will be lit on and input source is played to four speakers – speaker 1, speaker 2, speaker 3 and speaker 4. The sound shall be processed with some surround sound effect. This effect should differ from the effect created on requirement number 10. On the second press of button on BF 533 EZ KIT board with label SW 7 for PF 11 the LED 7 will be lit off and system shall return to its start state.

Interrupts - SIC_IAR Ref: [HwrMan, 4-32] Check for all fff in the code value DMA 1 (SPORT 0 RX) Interrupt

Interrupts - SIC_IAR PF A Interrupt Timer 0 Interrupt The relative priority of peripheral interrupts can be set by mapping the peripheral interrupt to the appropriate general- purpose interrupt level in the core. The mapping is controlled by the System Interrupt Assignment register settings [4-32]

Interrupts - SIC_IMASK Timer 0 Interrupt PF Interrupt A DMA1 Interrupt (SPORT0 RX) The System Interrupt Mask register allows masking of any peripheral interrupt source at the System Interrupt Controller (SIC), independently of whether it is enabled at the peripheral itself. Ref: [5, 4-29]

FIFO Stacks Implementation “If the FIFO stacks are of the sample length, then there will be no relative time delay when the mono sound source is played to both ears. This means that the sound will appear, to the listener, to be coming from the centre of the head.” [1] “If the left FIFO stack is shorter than the right stack, a given sound sample will leave the left stack before it leaves the right stack. This means that any given sound sample will arrive at the left ear before it arrives at the right ear. The sound will appear, to the listener, to be coming from closer to the left ear. Similarly, the sound will appear to come from near the right ear if the right FIFO stack is shorter than the left stack.” [1]

FIFO Stacks – Same length LEFT FIFO Stack (Delay line for left speaker) Right FIFO Stack (Delay line for right speaker) No Relative Time Delay

Memory Move if(pf8Counter == 1) // as if the sound source is to left { iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; // Insert new value into the back of the FIFO delay line left0DelayLine[LEFT_DELAY_LENGTH] = iChannel0LeftIn >> 8; right0DelayLine[RIGHT_DELAY_LENGTH] = iChannel0LeftIn >> 8; // Update the Left FIFO delay line using inefficient memory to memory moves for (count = 0; count < LEFT_DELAY_LENGTH; count++) left0DelayLine[count] = left0DelayLine[count + 1]; // Update the Right FIFO delay line using inefficient memory to memory moves for (count = 0; count < RIGHT_DELAY_LENGTH; count++) right0DelayLine[count] = right0DelayLine[count + 1]; // converting values from 16 bits to 24 bits iTxBuffer1[INTERNAL_DAC_L0] = left0DelayLine[0] << 8; iTxBuffer1[INTERNAL_DAC_R0] = right0DelayLine[0] << 8; }

Pointer movement if(pf9Counter == 1) // as if the sound source is to left { iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; // converting values from 24 bits to 16 bits left0DelayLine [left0Ptr] = (iChannel0LeftIn >> 8); right0DelayLine[right0Ptr] = (iChannel0LeftIn >> 8); // incrementing the pointers on the delay lines left0Ptr++; right0Ptr++; // converting values from 16 bits to 24 bits iTxBuffer1[INTERNAL_DAC_L0] = (left0DelayLine[FIFO_LENGTH - 1] << 8); iTxBuffer1[INTERNAL_DAC_R0] = (right0DelayLine[FIFO_LENGTH - 1 ] << 8); // maintaining the circular movement of pointers on the delay lines left0Ptr %= FIFO_LENGTH; right0Ptr %= FIFO_LENGTH; }

FIFO Stacks – Varying length LEFT FIFO Stack (Delay line for left speaker) Right FIFO Stack (Delay line for right speaker) Left Speaker will play the sound before right speaker plays it, same applies vice-versa.

Memory Move if(pf8Counter == 2) // as if the sound source is to left { iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; // Insert new value into the back of the FIFO delay line left0DelayLine[LEFT_DELAY_LENGTH] = iChannel0LeftIn >> 8; right0DelayLine[FIFO_LENGTH - 1] = iChannel0LeftIn >> 8; // Update the FIFO delay line using inefficient memory to memory moves for (count = 0; count < LEFT_DELAY_LENGTH; count++) left0DelayLine[count] = left0DelayLine[count + 1]; for (count = 0; count < FIFO_LENGTH; count++) right0DelayLine[count] = right0DelayLine[count + 1]; // converting values from 16 bits to 24 bits iTxBuffer1[INTERNAL_DAC_L0] = left0DelayLine[0] << 8; iTxBuffer1[INTERNAL_DAC_R0] = right0DelayLine[0] << 8; }

Pointer Movement if(pf9Counter == 2) // as if the sound source is to left { iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; // converting values from 24 bits to 16 bits storage type left0DelayLine [left0Ptr] = (iChannel0LeftIn >> 8); right0DelayLine[right0Ptr] = (iChannel0LeftIn >> 8); // incrementing the pointers on the delay lines left0Ptr++; right0Ptr++; // converting values from 16 bits to 24 bits storage type iTxBuffer1[INTERNAL_DAC_L0] = (left0DelayLine[LEFT_DELAY_LENGTH - 1] << 8); iTxBuffer1[INTERNAL_DAC_R0] = (right0DelayLine[FIFO_LENGTH - 1 ] << 8); // maintaining the circular movement of pointers on the delay lines left0Ptr %= LEFT_DELAY_LENGTH; right0Ptr %= FIFO_LENGTH; }

Surround sound 1effect 4 Speaker implementation Sampling rate 48K Hz. Delay between for each speaker set to 0.1 seconds. To save space – using short data type Buffer size Needed 48 * 0.1 * 2 * (Number of delay frames) * (K bytes) 48 * 0.1 * 2 * 3 * 1000 = 28,800 bytes Short type buffer array size = 14,400

Surround Sound 1 effect …… 9599 ……… 3399 ……… Speaker 0Speaker 1Speaker 2Speaker 3

Surround sound 2effect Timer 0 switches the control between 4 speakers With each switch of speaker control its status to maintaining the delay changes.

References [1] M. Smith, “Lab. 2 – High Level Language DSP Algorithm Audio Project, “ October 28, 2003, Project/AudioProject/AudioBlackfin_HighLevelDSPAlgorithms/HighLevelDS PFrame.htm. Project/AudioProject/AudioBlackfin_HighLevelDSPAlgorithms/HighLevelDS PFrame.htm [2] M. Smith, “Implementing the FIFO stack in ‘C/C++ Version 1,” March 28, 2003, Project/AudioProject/AudioSHARC_HighLevelDSPAlgorithms/FIFO_V1.com mon.htm. Project/AudioProject/AudioSHARC_HighLevelDSPAlgorithms/FIFO_V1.com mon.htm [3]M. Smith, “Implementing the FIFO stack in ‘C/C++ Version 2,” May 9, 2003, Project/AudioProject/AudioSHARC_HighLevelDSPAlgorithms/FIFO_V2.com mon.htmhttp://www2.enel.ucalgary.ca/People/Smith/ECE-ADI- Project/AudioProject/AudioSHARC_HighLevelDSPAlgorithms/FIFO_V2.com mon.htm [4] A. Martin, “Spurce Files and Demonstration Executables,” Nov 16, Project/AudioProject/AudioSHARC_HighLevelDSPAlgorithms/FilesNeeded. common.htmhttp://www2.enel.ucalgary.ca/People/Smith/ECE-ADI- Project/AudioProject/AudioSHARC_HighLevelDSPAlgorithms/FilesNeeded. common.htm [5]“ADSP BF 533 Blackfin Processor Hardware Reference, “ July, 2006, Rev 3.2

Demonstration