Codici
TAUmus
TAUMus
TAUmus è un software scritto in FORTRAN per IBM370 da Pietro Grossi a metà degli anni '70.
Il software serviva a pilotare TAU2, che era un sintetizzatore musicale analogico con una modulo digitale collegato al mainframe IBM. Il progetto era frutto di una collaborazione tra Grossi, l'Istituto Elaborazione Informazioni del CNR di Pisa e il CNUCE ed era una delle punte più avanzate, a livello mondiale, del lavoro di ricerca sulle applicazioni della nascente informatica alla musica elettronica.
TAUmus dava la possibilità di "svolgere tutte le funzioni di codifica di brani musicali classici, di creare di strutture musicali algoritmiche originali e di operare trasformazioni di vario tipo come ad esempio: esecuzioni in modo retrogrado, inversione intervallare rispetto ad una nota, espansione e/o compressione intervallare, cambio di velocità esecutiva, ecc ." (Magrini, Tarabella, Bertini: Un exhibit interattivo dimostratore del Sistema TAU2/TAUMUS, ISTI CNR, 2020).
Questo è un frammento della subroutine CALMUS, dedicata alla generazione di disposizioni, alla scelta e alla correlazione con i suoni, tratto dal repository GitHub dove è stato riportato grazie al lavoro di Carlo Montangero, Guido Scatena, Laura Bussi del Dipartimento di Informatica dell'Università di Pisa:
SUBROUTINE CALMUS COMMON FR,T ,R,S,INIZ,IFIN,IPAS,IDENT(2),BATS,RDCND,MA,KS *ALR,DURA,NOA,IP,KONT DIMENSION NNN(1700),I(10),NN(10),FFRE(20),TT(20),III(20), 1 FR (5000) ,T(5000) NPLLOD REAL KFT(8) READ(5,10)N,N1,N2 10 FORMAT(3I4) N=4 LN=1 KK=0 KONT=0 KKONT=0 L=0 LL=0 KP=0 8 K=0 11 K=K+1 IF(K.LE.N)GO TO 12 LN=LN+1 IF(LN.GT.5)GO TO 50 GO TO 8 12 DO L5 M=1,K 15 I(M)=1 20 KK=KK+1 NNN(KK)=0 DO 30 J=1,K NN(J)=I(J)*(10**(J-1)) 30 NNN(KK)=NNN(KK)+NN(J) LL=LL+1 III(LL)=NNN(KK) IF(LL.LT.20)GO TO 33 WR ITF(6,1)(III(LL),LL=1,20) 1 FORMAT(1X,20I6) LL=0 33 DO 35 M=1,K I(M)=I(M)+1 IF(I(M).LE.N) GO TO 20 35 I(M)=1 GO TO 11 50 N2=N2*23 N1=(N1*23)+(N2/10000) N2=IABS(M0D(N2,10000)-(N1/10000)) IF(N2.LE.0)N2=1000 N1=MOD(N1,10000) IF(N1.LE.0)N1=1000 NP(2)=N1/100 NP(4)=MOD(NT,100) NP(6)=N2/100 NP(8)=M0D(N2,100} DO 40 II=2,8,2 IF(NP(II).EQ.0)NP(II)=1Il codice è stato digitalizzato a partire da una copia stampata e commentata presumibilmente dallo stesso Grossi:

In alternativa, si può avere un'esperienza virtuale del sistema TAU2/TAUmus attraverso una delle Software Stories del progetto Software heritage, realizzata con il supporto di sciencestories.io, che potete esplorare qui sotto oppure sul sito originale:
© Codexpo.org - Content released under Creative Commons 4.0 BY/SA/NC
Versione: 02/02/2022 - 09:41:25Pannelli
Codici |
Hello World |
99 bottles of beer |
Haiku |
Apollo |
Colossal Cave |
Zork |
TAUmus |