music recordingsk
MSck Computerk Sciencek Projectk Report
Thiskreportkisksubstantiallykthekresultkofkmykownkwork,kexpressedkinkmykownk
words,kexceptkwherekitkiskexplicitlykindicatedkinkthektext.k Ikgivekmykpermissionkf
orkitktokbeksubmittedktokthekJISCkPlagiarismkDetectionkService.
Thekreportkmaykbekfreelykcopiedkandkdistributedkprovidedktheksourcekiskexplicitlyk
acknowledged.
Ibrahimk Sha’ath
DepartmentkofkComputerkSciencekandkInformationkSystemsk
Birkbeckk College,k Universityk ofk London
, Abstract
Thekgoalkofkthiskworkkisktokdevelopksoftwarekthatkcankanalysekakdigitalkrecordin
gk ofk musick andk estimatek thek keyk ofk thek recordedk piece,k ink orderktokprovid
e,katkakglance,ksomekinformationkonkitsktonalkcompatibilitykwithkotherk recordin
gs.
Sectionk1kdescribeskthekmotivationkforkautomatedkkeykclassificationktoksup-
portkdisckjockeyskwithkakcomputer-
k
enabledkworkflow.k Itk presentsk somekbasickmusicktheoryktokclarifykthekconcep
tskandktermskunderpinningkthekproject.kThekscopekiskestablishedkwithkakstatem
entkofkrequirementskforktheksoftware.
Sectionk2kdescribeskthekproject’sktheoreticalkapproach,kcomparingkitktokprevio
uskworkkonkthekproblem.kItkdiscusseskthekalgorithmskemployed,kandkdescribesk
aknovelkmethodkofktranslatingkthekoutputkofkakFastkFourierkTrans-
formk intok ak musicalk analysis.
k
Sectionk3kdescribeskthekimplementationkfromkaksoftwarekengineeringkper-
spective.kItkoutlineskthekprincipleskadheredktokduringkdevelopmentkandkdescri
k
besk thek designk ofk thek userk interfacek andk classes.kThek testingk strategykisk pres
ented.
Sectionk4kdescribeskthekexperimentskconductedktoktestkandkoptimisekthekaccur
acykofktheksoftware.kItkcompareskthekperformancekofktheksoftwarektokexistingk
products.
Thekconclusionskdrawnkarekpresentedkinksectionk5.kThekcontributionskandklimit
ationskofkthekprojectkarekconsidered,kandkpossiblekfuturekimprovementskarek di
scussed.
Projectk supervisork Stevek Maybank
ii
, Acknowledgements
IkwouldklikektokthankkmyksupervisorkStevekMaybankkforkhiskguidance,kR
olandkHeapkforkhiskenthusiasmkandkpridekinkkeyingkwhateverkmusickwaskth
rownkhiskway,kandkChriskHartekforkhiskencouragement,kaskwellkaskhiskabil
ityktokexplainkanythingkinksmallkwords.kThankskalsoktokQualiakforkenrichi
ngk thek DJk communityk withk Rapidk Evolution.
IkwouldklikektokacknowledgekMixedkInkKeykforkprovidingkakcopykofktheirksoft
warektokusekinkmykexperiments,kandkthekdeveloperskbehindkthekQtkframew
ork,kkLibAV,kthekFastestkFourierkTransformkinkthekWest,kkTagLibkandkSecretk
RabbitkCode,kwithoutkwhosekeffortskthiskandkdoubtlesskmanykotherk projec
tsk wouldk notk havek beenk feasible.
iii
, Contents
Abstractk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . ii
Acknowledgements .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k . iii
1 Introductionk .k .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 1
1.1 Thek DJk andk mixingk musickk .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k . 1
1.2 Musick theory .k .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 3
1.2.1 Notes .k .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 4
1.2.2 Octaves .k .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 4
1.2.3 Tuningk .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k . 5
1.2.4 Scales .k .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 6
1.2.5 Keysk .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k .k . 7
1.2.6 Consonancek .kk.kk.kk .kk.kk.kk .kk.kk.kk.kk .kk.kk.kk .kk.kk.kk .kk.kk.kk .kk.kk. 7
1.2.7 Keyk compatibilityk .k .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 8
1.3 Requirementskk.kk.kk .kk.kk.kk .kk.kk.kk.kk.kk .kk.kk.kk .kk.kk .kk.kk.kk.kk .kk.kk.kk.kk .kk. 10
1.3.1 Usek Casesk .kk .kk .kk .kk .kk .kk .kk .kk.kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 10
1.3.2 Non-functionalk requirementsk.kk.k .kk.k .kk.kk.k .kk.kk.k .kk.k . 10
1.4 Summary .k .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 12
2 Solutionk designkk .kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk. 13
2.1 Overviewk.k .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk .kk . 13
2.2 Pre-processingk ofk digitalk audiok.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk.kk. 14
iv