Structured programming, canonical structures : Per the Church–Turing thesis , any algorithm can be computed by a model known to be Turing complete , and per Minsky's demonstrations, Turing completeness requires only four instruction types—conditional GOTO, unconditional GOTO, assignment, HALT. Kemeny and Kurtz observe that, while "undisciplined" use of unconditional GOTOs and conditional IF-THEN GOTOs can result in " spaghetti code ", a programmer can write structured programs using only these instructions; on the other hand "it is also possible, and not too hard, to write badly structured programs in a structured language".  Tausworthe augments the three Böhm-Jacopini canonical structures :  SEQUENCE, IF-THEN-ELSE, and WHILE-DO, with two more: DO-WHILE and CASE.  An additional benefit of a structured program is that it lends itself to proofs of correctness using mathematical induction . 
The LMV324 used in the design of this microphone bord is great, however, the gain has to be controlled especially if you are using long lines to connect it to other devices. I used a 100k potentiometer instead of a fixed resistor to populate R17. This allowed me to adjust amplifier gain right before the output starts to oscillate. I am using this board to fire camera, flashes etc when photographing gun shots, balloon pops and any other noise induced event. It is just great since it is compact and can be housed in any small box. I housed mine in an empty prescription vial. I am running 20foot wire so I ran the output into TC4428 and it was just what the doctor ordered. Now I can run a very long line and still have a good control over the gain. I am using Schmitt trigger output only.
 “Trends and Issues in Ultra-High Speed Transmission Technologies: For the implementation of 100 GbE/40 GbE and long haul transmission by optical modulation,” Technical Note, Anritsu, 2009.
 Sergio Benedetto et al, “Theory of Polarization Shift Keying Modulation”, IEEE TRANSACTIONS ON COMMUNICATIONS. VOL. 40, NO. 4, APRIL 1992