1 / 18

Auld Lang Synthesis

Auld Lang Synthesis. Microcomputer Systems I ECE 3551 – Fall 2010 Ryan M. Winget. Purpose. To synthesize the old Scottish poem song “Auld Lang Syne ” using the ADSP-BF533 board. To be able to be able to start and stop the song using the button PF8

allayna
Télécharger la présentation

Auld Lang Synthesis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Auld Lang Synthesis Microcomputer Systems I ECE 3551 – Fall 2010 Ryan M. Winget

  2. Purpose • To synthesize the old Scottish poem song “Auld Lang Syne” using the ADSP-BF533 board. • To be able to be able to start and stop the song using the button PF8 • To be able to slow down and speed up the song using the buttons PF9 and PF10.

  3. Sound Synthesis • Used Digital Sinusoids for the sound synthesis. • fs = 48000 Hz • f0 = note frequency

  4. Sound Synthesis

  5. Interrupts Used • Sport0 • Used to send the audio signals to the speakers • FlagA • Used for control of the buttons PF8-PF10 in this project • Timer0 • Added to this project to control the timing of the song.

  6. Code • Code files used: • Talkthrough.h • main.c • Initialize.c • ISR.c • Process_data.c

  7. Talkthrough.h • Bit Manipulation: #define bit_get(p,m) ((p) & (m)) #define bit_set(p,m) ((p) |= (m)) #define bit_clear(p,m) ((p) &= ~(m)) #define bit_flip(p,m) ((p) ^= (m)) #define bit_write(c,p,m) (c ? bit_set(p,m) : bit_clear(p,m)) #define BIT(x) (0x01 << (x)) #define LED9 BIT(5) #define LED8 BIT(4) #define LED7 BIT(3) #define LED6 BIT(2) #define LED5 BIT(1) #define LED4 BIT(0)

  8. Talkthrough.h • Music Control extern int count; //initialize counter for Auld Lang Syne extern intspeedUp; //initialize counter for speeding up extern intslowDown; //initialize counter for slowing down • Counter for button PF8 extern int pf8_state;

  9. Main.c • Uses a while loop to run the code indefinitely until it is halted. • Initializes the values for count, speedUp, slowDown and pf8_state to be 0.

  10. Initialize.c • Initializes: • Init_EBIU • Init_Flags • Init_Flash • Init1836 • Init_Sport0 • Init_DMA • Enable_DMA_Sport0 • Init_Interrupts • Init_Timers

  11. ISR.c • Interrupt Service Register • Sport0_RX_ISR • Sends audio to the speakers in this project • FlagA_ISR • *pFIO_FLAG_C == 0x0100 • PF8 • *pFIO_FLAG_C == 0x0200 • PF9 • *pFIO_FLAG_C == 0x0400 • PF10

  12. ISR.c • FlagA_ISR (Cont.) • *pFlashA_PortB_Data • Controls the LEDs • Timer0_ISR • Controls timing for the notes

  13. Process_data.c • I initialized the values for the radial frequencies of the notes and some other values used for the digital sinusoid equation for synthesizing the notes.

  14. Process_data.c • An else if statement was used to cycle through the notes of the song.

  15. Improvements • Timing for the notes sounds off and can use work. • Need to add a slight pause between notes with the same frequencies that are back to back. • Clean up unused code from the lab I initially used.

  16. Special Thanks: • Xerxes Beharryfor helping me realize that the value of *pSIC_IAR2 should be 0xffff5ff4. • Ben Lishmanfor helping me debug my project. • HarenLachlandfor helping me understand the board throughout the course.

  17. Questions?

More Related