/PitchAdjustmentDSP

My course project in Systems Design based on Digital Signal Processors.

Primary LanguageCMIT LicenseMIT

Real-time Pitch Adjustment on BF533 DSP

This repository shows my course project in Systems Design based on Digital Signal Processors, 2022-2023, Department of Electronic Engineering by Professor Weibei Dou.

The main idea to adjustment pitch of the audio is to:

  1. interpolate and resample the audio
  2. split and overlap-add frames using a gap equals $\frac{H_s}{H_a}$

Python

Python codes are used to verify the feasibility of the algorithm, which is not real-time.

Setup Development Environment

$ conda create -n audioexp python=3.10 pip
$ conda activate audioexp
$ pip install numpy scipy

Resample and Overlap-add (OLA)

  1. Create a folder output in Python/.
  2. Modify parameters such as wav_name and alpha in resample-stretch.py.
  3. Run python resample-stretch.py
  4. Play audios generated in Python/output/.

C

C codes are based on demo project Talk_Through_533_I2S _FIR_2MAC.rar provided by Systems Design based on Digital Signal Processors. It aujusts pitch of the input audio in real-time.

Create the Project

  1. Open IDDE CrossCore®Embedded Studio 2.10.1 and create a new project.
  2. Choose BF533 with Silicon Revision any selected. Do not add Startup Code/LDF.
  3. In Project > properties > C/C++ Build > Settings:
    • CrossCore Blackfin Linker > Processor > Tool Settings > Memory usage, select Internal SRAM and external SDRAM. In
    • CrossCore Blackfin Linker > General > Tool Settings, select Individually map functions and data items.
  4. Rename C folder in this repo to src to replace the scr folder generate by IDDE.
  5. Build and debug the project.

Contribute

Issues and PRs are welcome!

References