(English translation: ComParser-english)
ComParser is vrije software voor een hele globale manier van score following. De software werd ontwikkeld en toegepast door het Nederlandse Schreck Ensemble.
De manier is anders dan bij bijv. IRCAM. Hier wordt meer specifiek op onderdelen ingegaan: toonhoogt, klank, dynamiek,.. Wat een betere manier is, is momenteel nog onduidelijk vanwege de recente ontwikkelingen en de wens tot toepassing...
AvS:Dit deel lezend is het opmerkelijk. dat tussen IRCAM- en Comparser-benadering, de scheiding
tussen de deel-parameters is: onderverdeelde scannning vs. globale scanning (i.e.: toonhoogte vs.timbre?...[ideologische stellingname, vermoedelijk...]).
(Exegese: de klank als totaliteit, waarbij de verschillende eigenschappen verdisconteerd worden in de waarneming van dit geheel).
De keuze tussen hidden markov models en artificial neural networks is een moeilijk te bepalen element voor de werkzaamheid van beiden. De uitkomst is ook erg afhankelijk van de inpassing van de een of andere techniek.
In ieder geval levert iedere toepassing zo zijn eigen problemen op, die vooral afhankelijk is van de wenselijkheid van de uitkomst. Tijdelijk conclusie is echter dat beide benaderingen zo wel een geldigheid hebben...
Serieuze problemen met de huidige ComParser (versie 1.25):
- Beperkt dynamisch bereik: zachte, stille passages vormen nog steeds een probleem. Het is niet robuust af te regelen....
- Overdreven spectrale afhankelijkheid: de kracht is ook de zwakte: bij een iets andere plaatsing van microfoon; nieuwe snaren; etc. kan herkenning falen. De software biedt daarvoor een pragmatische oplossing: zet die opname met de iets andere klankkleur ernaast, als parallel alternatief. Deze vorm van handmatig bijleren noemt men wel supervised learning en kost in de praktijk veel tijd: knippen, monteren, evt converteren van audiofiles, cue-points opzoeken, start- en eindtijden intypen in een ComParser network bestand, opnieuw testen, etc.. Het zou fijn zijn als dit soort dingen geautomatiseerd zouden kunnen worden.
Hoe moet ComParser's preprocessor worden uitgebreid?
De feature-vector moet worden aangepast of uitgebreid, dat is wel duidelijk, voor zowel dynamiek, als timbre,... Maar hoe precies? ... Er moet toch wat meer nadruk komen op (fundamentele) toonhoogte... Nog meer hoge FFT-bins weggooien misschien?...
Arie benadrukt steeds het toevoegen van een (fundamental-)pitch-tracker in de feature vector. (7 mei: Arie komt met leestip: http://ccrma-www.stanford.edu/~pdelac/220c/pitch_detection/presentation.htm ... en dit is inderdaad een verbluffend voorbeeld met een viool: http://ccrma-www.stanford.edu/~pdelac/220c/pitch_detection/img24.htm). Hier lijkt te worden aangetoond dat het zogenaamde HPS algoritme het beste zou werken (in vergelijking tot Cepstrum, e.a.) Een blik op http://ccrma-www.stanford.edu/~pdelac/220c/pitch_detection/img2.htm maakt al snel duidelijk hoe het werkt :-).... slimme truc :-)
Ok, dat willen wij ook!
Feature-vector bevat nu alleen lineaire amplitudes:
- 1: Dummy-dimensie (geeft codering van 'stilte' na normalisatie).
- 2: RMS-verschil (toename, afname of gelijkblijvende gemiddelde geluidsdruk).
- 3-...: Gereorganiseerde FFT bins.
Deze lineariteit maakt het wel gemakkelijker om eventueel extra technieken in te passen, zolang deze zich hier aan houden.
PS: Wat gebeurt er als je dingen die niet op een lineaire amplitude-schaal liggen gaat toevoegen aan de feature-vector?
AvS: Vermoedelijk gaat de symmetrie verloren als de lineare schaal niet
meer gebruikt wordt, waardoor de ene techniek een onevenredig
accent verkrijgt boven de andere(n). Resulterend in een
onduidelijke weging.
PS: Ja, da denk ik eigenlijk ook.
PS: Kan dit wel?
AvS: Dit zouden experimenten moet uitwijzen.
PS: Hopelijk als gedachtenexperiment of dmv redeneren... :-)
PS: Of moet elk neuron een aparte matcher krijgen voor spectrum en fundamental?...
AvS: Levert dit geen schaal problemen op?
PS: Nee.
2 aparte fv's?....
AvS: Zou dan kunnen met ieder een eigen schaal, c.q.: lineair en
logaritmisch (bijv.), hierdoor kunnen uitbreidingen ingepast
worden aan de hand de schaal die gebruikt wordt.
PS: Ja, mee eens! Goed gezien:
spectral match * weging
/ \
audio samengestelde match.
\ /
fundamental match * (1-weging)
Webstekken en software-downloads
Volgende versies:
De volgende versie zal een POSIX multithread versie zijn, waardoor het geheel veel makkelijker te porteren is naar andere platforms. De broncode zal helaas niet meer zijn te compileren voor Apple Mac OS 7, 8 en 9. Met betrekking tot IRIX betekent dat meteen dat overgegaan zal moeten worden tot PortAudio versie 19 (want portaudio 18 voor IRIX is niet POSIX).
Te doen:
- BEN HIER NOG STEEDS MEE BEZIG: Feature vector verbeteren: meer overlap in de hogere (gereorganiseerde) FFT bins.
- Fundamental pitch (als scalar ipv vector?) toevoegen aan het kunstmatige neuron.
- POSIX multithreading.
- Exit OMS-MIDI ondersteuning.
- MIDI opnieuw.
- Amplitude- en dynamiekproblemen oplossen in de feature vector(en). Misschien moet/kan het hele idee van genormaliseerde vectoren verlaten worden....
- Syntax voor OSC-toevoeging aan CMP-netwerk-file bedenken (en ook MIDI aanpassen/leesbaarder maken?).
- OSC implementeren.