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)=1
Il codice è stato digitalizzato a partire da una copia stampata e commentata presumibilmente dallo stesso Grossi:
Calmus subroutine
Source: https://github.com/Unipisa/TAUmus-Depository
Ancora oggi, presso il Museo degli Strumenti per il Calcolo dell'Università di Pisa, è possibile provare TAUmus sulla macchina originale per la quale è stato scritto, cioè un IBM/370. Nel 2020, durante un'esposizione temporanea curata da Magrini, Tarabella e Bertini, ne è stata realizzata un versione su Raspberry PI, un micro computer che sta tutto su una singola scheda.

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:

Prossima stanza:  Contesti



Versione: 02/02/2022 - 09:41:25

Parole: 259

Pannelli

Codici                      
Hello World                 
99 bottles of beer          
Haiku                       
Apollo                      
Colossal Cave               
Zork                        
TAUmus                      
🔎