C developer: Developing MP3 files organization CLI program that renames files by adding their BPM tempo/rhythm rate to the filename

Mathematics and/or Informatics
Slovenia
KOPER/CAPODISTRIA
Period: 
2 May, 2023 to 29 Jul, 2023
Deadline: 
7 Apr, 2023

General information

Duration: 
3 months
Commitment: 
Part-Time
Description: 

Most DJ/VJ software has BPM (beats per minute) detection already implemented and uses BPM information to propose compatible songs to play after currently playing song. In those cases BPM information is stored in a proprietary format which forces people to keep using the same software in the future. Since BPM detection is trivially simple to implement we are thinking of writing an open source "file renaming utility" that would scan a folder, analyze each MP3 file's BPM and would rename that file by adding its BPM value in the beginning of a filename. The end result would be a folder consisting of MP3 files that are named "125BPM Michael Jackson - Whatever Song" and similarly. Such a naming convention would group songs with same tempo together when listed in an alphabetical order (we believe alphabet was never a good methodology to organize music musically). This simple file renaming strategy seems trivial but it allows further manipulation via GREP and is easily reversible in any file renaming utility (simply delete first 6 chars of filename). This project would be a bit of PITA to all modern DJ software and could become an important music files utility in open source community. Intern will keep all moral rights and we hope will lead this project in open source community. We will help as much as we can but we will impose no restrictions or demands on IP or project outcomes. Let open source flow freely!

Compensation: 
No financial compensation

Keywords

FFT  audio  dj  beat detection  low pass  statistics  
Requirements
Languages: 
English: Proficient User C1
Skills: 
C
Linux
GREP
GCC
Git