Vibation analyzer in Measurement, Diagnosis and Speech Recognition use a state machine for event-driven control. Which programming language is the best for a software-state-machine in event-driven audiosignalprocessor?
The C/C++ is the best ;) - event-driven programs can be written in any high-level language.
It really depends on your hardware, the libraries which adds the manufacturer. Of course, the start standard is quite obvious LabView and Matlab / Simulink.
Thank you @Christian Benjamin Ries. Your UML 2 Statemachine Code Generator is a good care for me. Is the run-time version without of licenses? Independent in next months I will lock for a license-free Statemachine in Java!
Perhaps a bit late in answering here, but, a recent development in LabVIEW is the queue driven state machine. You can find references to it online. The advantage is that it makes medium sized programming tasks (up to a few hundred subroutines) much more manageable by a single programmer. In addition, this architecture can be used to maintain backward compatibilty. Another feature is the ability to prevent cascading errors which occur (at least for me) when I make a change in one part of the program and it causes an error elsewhere.
Take a look on Pure Data (https://puredata.info/). As they name it: "Real-time graphical dataflow programming environment for audio, video, and graphical processing". It's free and runs on Linux, Win and Mac Osx.
Dear Alexandre, I will look for your proposal. In this moment I use Java. The number of state is strong limited. Because the structure of program is confusing. Can Delphi any parallel threads?
Everyone is best with the language they know the best. You mentioned a state machine, I would suggest LabVIEW using a Queue Driven State Machine (QDSM) approach. In this approach, you dedicate a Queue to each major function (GUI Input, GUI Output, File input, File Output, Data Acquisition, Preprocessing data, processing data, report generation, etc). Each of these Queues will be able to communicate with each other queue through queue commands or events. The entire project could have a script queue that would allow it to be scripted from a text file (something I often do to allow reusability of the code).
I find that I can handle projects with over a thousand subroutines / SubVIs by myself using this method. So little outside help is needed once you get some experience with it.
Dear James, LabVIEW was me several times recommend. It is specialized software from a company and no universal. We in Europe have not fain this dependence. Excuse me for this prejudice!