perm filename MUSIC.SAI[2,TES] blob sn#035514 filedate 1973-04-12 generic text, type T, neo UTF8
BEGIN COMMENT MUSIC: COMPUTE THE ETA LENGTH OF EACH NOTE ;
INTEGER N, TT, U ;
REAL ALPHA, DELTA ;
LABEL L1, L3 ;
INTEGER I, J ;

PROCEDURE OUTINT(INTEGER I, DIGITS) ;
BEGIN
STRING S ;
S ← CVS(I) ;
OUTSTR("             "[1 FOR DIGITS-LENGTH(S)]) ;
OUTSTR(S) ;
END ;

INTEGER PROCEDURE ERROF(INTEGER T) ;
RETURN(	(    ABS(
		    ( (I←ALPHA*(U+T+1)+DELTA) - (J←ALPHA*(U+1)+DELTA) ) / T
		    -ALPHA
		) /ALPHA
	) * 1000000
      ) ;

BOOLEAN PROCEDURE TRYOUT(INTEGER T) ;
	BEGIN
	INTEGER J ;
	IF (J ← ERROF(T)) < 750 THEN 
		BEGIN
		OUTINT(U+1, 3) ; OUTSTR("-") ; OUTINT(U+T,3) ;
		OUTINT(10*DELTA, 4) ;
		OUTINT(J, 6) ;
		RETURN(TRUE) ;
		END ;
	RETURN(FALSE) ;
	END ;
OUTSTR('15) ; OUTSTR('12) ;

OUTSTR("NOTE TERMS DEL ERROR  TERMS DEL ERROR") ;

FOR N ← 0 STEP 1 UNTIL 36 DO
BEGIN
ALPHA ← 2.0↑(N/12) ;
OUTSTR('15) ; OUTSTR('12) ; OUTINT(N, 3) ;
U ← 0 ;
FOR TT ← 1 STEP 1 UNTIL 900 DO
	FOR DELTA ← 0.0 STEP 0.1 UNTIL 0.9 DO
		IF TRYOUT(TT) THEN GO TO L1 ;
OUTSTR("                 ") ;
L1:
DELTA ← 0.0 ;
FOR TT ← 1 STEP 1 UNTIL 900 DO
	IF TRYOUT(TT) THEN GO TO L3 ;
OUTSTR("                 ") ;
L3:
END ;

END ;

OUTSTR('15) ; OUTSTR('12) ;

END