Praat: Doing Phonetics by Computer
fon.hum.uva.nl
fon.hum.uva.nl
I worked my way through some of its source code many years ago during my post-graduate studies and it was very _strange_. I see it is now on GitHub [0].
They used C macros to implement object oriented programming, with symbols like `me` and `my` and `thee` scattered throughout the source code. It seems the code has been converted to C++ (IIRC it used to be in C), but I still see the `my` keyword in there.
They have their own BASIC-like scripting language. The weirdest property for me was that it allowed for whitespace in the identifiers. Just look at the example in [1]: The `Create simple Matrix` is actually a function in the scripting language that constructs a matrix object. The function name corresponds to a menu item and IIRC they used some more preprocessor magic to reuse the same code for the menus on the GUI and the functions in the scripting language.
I don't think you're supposed to write the scripts by hand. Rather it recorded your actions as you worked your way through the GUI and then you could export and modify those recordings as scripts.
They also implemented their own cross platform GUI toolkit rather than using one of the existing cross-platform GUI toolkits, so it works on Windows, Linux (or any X Windows I believe) and MacOS.
[0]: https://github.com/praat/praat [1]: https://github.com/praat/praat/blob/master/test/script/comma...
It did lead to my first publication as co-author and some interesting insights: https://kuleuven.limo.libis.be/discovery/fulldisplay?docid=l...
https://www.speech.kth.se/wavesurfer/
We used both in university courses.
I also used both a good time ago, when I was teaching myself phonetics. I always preferred the much simpler Wavesurfer. Even back then Praat seemed like a relic from the past, although one could appreciate the effort that had gone into it.
Back when I was messing with this stuff, I was planning to build a sequence recognizer/predictor (not unlike transformer in what it does, but not in how it does it) - begining of an AI project - and wanted to start with speech as an input, so wanted to understand it (formants, fricatives, plosives, etc).
I did end up building a Qt-based real-time spectrogram for Linux that let me play with things like wideband vs narrowband spectrograms so I could visualize what they were extracting. Never did anything further with it though - part of my scrap pile of abandoned projects, although I may yet resurrect it.
(From Wiktionary.)
https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic...
So perhaps the Middle Low German and Scandinavian words just have the same old origin.
Ugh, the scripting.