Skip to content

"Cequal - Terminal DJ" is a music equalizer capable to adjust volume in selected frequency bands

Notifications You must be signed in to change notification settings

superpi15/cequal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cequal - Terminal DJ

Cequal stands for: C-based equalizer for educational purpose.

This equalizer demonstrates a typical conversion between time and frequency -domain, often applied to audio processing.

It can amplify or decrease volumn in the selected bands.

Better performance and higher spectrum resolution may be supported later.

- Warning: gently adjust volumn especially in low frequncy 

system prerequisite

  • pthread
  • g++
  • Open MP
  • Open AL
  • ncurses

compile

sh compile.sh

run

./cequal <YOUR_WAV_FILE> [OUTPUT.WAV (optional)]

Output file by default is named tmp.wav.

to do

  • better performance for higher spectrum resolution (to solve frequnecy leakage)
  • refine ncurses refreshing synchronization

This document is exported from: https://github.com/superpi15/cequal/


implementation notes

radians

1Hz 6.28 rad/sec

In C math library, sine function takes radians as its input.

A sample is a data of a time step. Given sample rate and sample index , the elapsed time is

Consider a frequency from a selected set of band , the amplitude of sine function at the time is

Shown above indicates that band frequency can be first converted into angular freqency to reduce computation overhead.

FFT

Define , DFT has the form

Partition into even and odd part

Using the identiry

Observe the elements crossing half window size

Observe K+1-th term

Observe K+(N/4)-th term

About

"Cequal - Terminal DJ" is a music equalizer capable to adjust volume in selected frequency bands

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published