---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	
WAT IS DE BEDOELING VAN DIT PROGRAMMA?

Het hier gemodelleerde proces met het outputsignaal 'signaal_out' bestaat uit een poortwachterssignaal 'signaal_poort' dat
afwisselend de output van de signalen 'signaal_1', 'signaal_2' en 'signaal_3' als 'signaal_out' kiest. Het poortwachterssignaal
'signaal_poort' alterneert daartoe tussen 1, 2 en 3. Al naar gelang de keuze voor de vermenigvuldigingsfactor 'verm_poort' (dat
steeds een positief geheel getal moet zijn) doorloopt 'signaal_poort' een van de onderstaande cycli:

1 -> 2 -> 3 -> 1 -> 2 -> 3 -> 1 -> 2 -> 3 -> 1 -> 2 -> 3 -> ...
     of 
1 -> 1 -> 2 -> 2 -> 3 -> 3 -> 1 -> 1 -> 2 -> 2 -> 3 -> 3 -> ...
     of
1 -> 1 -> 1 -> 2 -> 2 -> 2 -> 3 -> 3 -> 3 -> 1 -> 1 -> 1 -> ...
     of 
1 -> 1 -> 1 -> 1 -> 2 -> 2 -> 2 -> 2 -> 3 -> 3 -> 3 -> 3 -> ...
     of
     . 
     . 
     . 

De functies 'functie_1', 'functie_2' en 'functie_3' beschrijven hoe de signalen 'signaal_1', 'signaal_2' en 'signaal_3' afhangen
van vroegere waarden van het outputsignaal 'signaal_out'. De functies 'functie_1', 'functie_2' en 'functie_3' hebben de onderstaande
vorm: 

functie_1(x,y) = 30*atan(0.1*A_1 + 0.01*B_1*x + 0.01*C_1*y + 0.0001*D_1*x^2 + 0.0001*E_1*x*y" + 0.0001*F_1*y^2 +
 0.000001*G_1*x^3 + 0.000001*H_1*x^2*y + 0.000001*I_1*x*y^2 + 0.000001*J_1*y^3)

functie_2(x,y) = 30*atan(0.1*A_2 + 0.01*B_2*x + 0.01*C_2*y + 0.0001*D_2*x^2 + 0.0001*E_2*x*y" + 0.0001*F_2*y^2 +
 0.000001*G_2*x^3 + 0.000001*H_2*x^2*y + 0.000001*I_2*x*y^2 + 0.000001*J_2*y^3)

functie_3(x,y) = 30*atan(0.1*A_3 + 0.01*B_3*x + 0.01*C_3*y + 0.0001*D_3*x^2 + 0.0001*E_3*x*y" + 0.0001*F_3*y^2 +
 0.000001*G_3*x^3 + 0.000001*H_3*x^2*y + 0.000001*I_3*x*y^2 + 0.000001*J_3*y^3)

Door het gebruik van 'atan' blijft de output binnen de perken. Als argumenten x en y worden respectievelijk de recentste en de op
een na recentste waarde van 'signaal_out' ingevoerd. En als resultaat krijgen we dan voor 'functie_1', 'functie_2' en 'functie_3'
de respectieve nieuwe momentane waarde van 'signaal_1', 'signaal_2' en 'signaal_3'. De hier specifiek gekozen vorm van 'functie_1',
'functie_2' en 'functie_3' biedt de gebruiker via de keuze van de parameters A tot en met J volop gelegenheid om het verloop van
'signaal_1', 'signaal_2', 'signaal_3' en 'signaal_out' te tweaken.

Om dat alles als software synth te kunnen gebruiken wordt 'signaal_out' eerst door de gekozen delingsfactor 'freq_deling' in 
"frequentie" verlaagd teneinde de gegenereerde klanken naar het door de gebruiker gewenste toonbereik te transponeren. Dat aangepaste
signaal wordt dan weggeschreven naar een text file. Die text file wordt omgezet in een WAV file. En die WAV file tenslotte wordt dan
afgespeeld met een in het programma verwerkte sample player.

 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
