#COMPILE EXE #DIM ALL TYPE WinterType Nvoices AS BYTE ' winter/summer =16 stemmig , max 22, betapi = 8 stemmig Beta(15,8) AS SINGLE Period(15) AS SINGLE Bandwidth(15) AS SINGLE DevExp(15) AS SINGLE Basenote (15) AS INTEGER BaseVelo (15) AS INTEGER Pitchrange (15) AS INTEGER VeloRange(15) AS INTEGER Einde AS INTEGER ' read from file: array size i% dimesion Lowtes(21) AS BYTE ' voor debug kontrole Hightes(21) AS BYTE ' id. Version AS DWORD ' performance flag END TYPE DECLARE SUB rEAD_pARAMS (S AS WINTERTYPE, F AS STRING) FUNCTION PBMAIN () AS LONG DIM bp AS GLOBAL Wintertype ' Read_Params bp, "C:\b\pb\gmt\gw_enseko\Winter95\BETAPI.DAT" ' Read_Params bp, "C:\b\pb\gmt\gw_enseko\Winter95\SUMMER94.DAT" Read_Params bp, "C:\b\pb\gmt\gw_enseko\Winter95\WINTER95.DAT" WAITKEY$ END FUNCTION SUB Read_Params (s AS Wintertype, f AS STRING) ' this procedures lets you read an input-parameter list. ' This list can be edited with Notepad or Dos-Edit and used ' instead of manual data-input, thus saving tedious typing work... ' 04.02.2009: file format changed, now comma delimited for easier parsing. ' this procedure should now read any betakom parameter file... (Betapi, Summer, Winter....) LOCAL dummy$ LOCAL d1$, d2$ LOCAL dum AS INTEGER LOCAL n AS LONG LOCAL i% n = FREEFILE OPEN f FOR INPUT AS #n LINE INPUT #n, dummy$ ' "[BETAKOM DATA-FILE]" PRINT dummy$ LINE INPUT #n, dummy$ ' DATE$, TIME$ PRINT dummy$ INPUT #n, dummy$,s.einde ' PRINT dummy$, s.einde 'logfile "End Count after .dat file = " & STR$(s.einde) ' "Number of voices="; INPUT #n, dummy$, s.Nvoices ' must be 16 for summer, 8for betapi 0k ' logfile "Number of voices after .dat file = " & STR$(s.Nvoices) PRINT dummy$, s.Nvoices WAITKEY$ LINE INPUT #n, dummy$: ' "Beta-function parameters," PRINT dummy$ FOR i% = 0 TO s.Nvoices-1 INPUT #n, d1$ ,s.Beta(i%,0), s.Beta(i%,1) PRINT d1$,s.beta(i%,0); s.beta(i%,1) INPUT #n, d1$ ,s.Beta(i%,0), s.Beta(i%,1) PRINT d1$,s.beta(i%,0); s.beta(i%,1) INPUT #n, d1$ ,s.Beta(i%,0), s.Beta(i%,1) PRINT d1$,s.beta(i%,0); s.beta(i%,1) ' waitkey$ NEXT i% LINE INPUT #n, dummy$: ' "Voice-periods:" ' ok PRINT dummy$ FOR i% = 0 TO s.Nvoices -1 INPUT #n, dummy$, s.period(i%) PRINT dummy$, s.period(i%) NEXT i% LINE INPUT #n, dummy$ ' "Voicing-parameters:" ok PRINT dummy$ WAITKEY$ FOR i% = 0 TO s.Nvoices -1 LINE INPUT #n, dummy$: ' "Voice"; i% + 1; " Parameters:" PRINT dummy$ INPUT #n, d1$,s.Bandwidth(i%) INPUT #n, d1$,s.DevExp(i%) INPUT #n, d1$,s.Basenote(i%) INPUT #n, d1$,s.Basevelo(i%) INPUT #n, d1$,s.Pitchrange(i%) INPUT #n, d1$,s.Velorange(i%) NEXT i% LINE INPUT #n, dummy$: ' "[BETAKOM DATA-FILE ENDS]" PRINT dummy$ ' logfile dummy$ LINE INPUT #n, dummy$: ' "[BETAKOM PERFORMANCE-DATA START]" ' logfile dummy$ PRINT dummy$ LINE INPUT #n, dummy$: ' "[BETAKOM PERFORMANCE-DATA END]" PRINT dummy$ ' logfile dummy$ CLOSE #n FOR i% = 0 TO s.Nvoices -1 s.Beta(i%, 4) = ((s.Beta(i%, 0) ^ s.Beta(i%, 0)) * (s.Beta(i%, 1) ^ s.Beta(i%, 1))) / ((s.Beta(i%, 0) + s.Beta(i%, 1)) ^ (s.Beta(i%, 0) + s.Beta(i%, 1))) s.Beta(i%, 5) = ((s.Beta(i%, 2) ^ s.Beta(i%, 2)) * (s.Beta(i%, 3) ^ s.Beta(i%, 3))) / ((s.Beta(i%, 2) + s.Beta(i%, 3)) ^ (s.Beta(i%, 2) + s.Beta(i%, 3))) s.Beta(i%, 8) = ((s.Beta(i%, 6) ^ s.Beta(i%, 6)) * (s.Beta(i%, 7) ^ s.Beta(i%, 7))) / ((s.Beta(i%, 6) + s.Beta(i%, 7)) ^ (s.Beta(i%, 6) + s.Beta(i%, 7))) NEXT i% END SUB