Newsgroup: it.arti.musica.strumenti.tastiere
Titolo: D550 Roland

Cercavo risorse in rete per il D550. Mi servirebbe il manuale e il SySex.
Qualcuno aiuta il buon vecchio ||_||_||LA MORTE||_||_||?

 Qualcuno aiuta il buon vecchio ||_||_||LA MORTE||_||_||?
Prova a chiedere direttamente a Roland la sola tabella di
implementazione sys-ex, che era isolata dal resto del manuale. Va bene
anche quella del D50. So che fino a qualche tempo fa avevavo ancora il
manuale, ma fatti dare quello in inglese perchè quello in italiano fa
sempre riferimento alle figure dell'inglese.
Buona fortuna
LucA

Cercavo risorse in rete per il D550. Mi servirebbe il manuale e il SySex.
C'e' un tizio che ha una cofana di manuali, pero' mi sa che li vende. Comunque
eccoti il link:
http://www.magicnet.net/~mglnsky/msg4.html
In bocca al lupo!

 Cercavo risorse in rete per il D550. Mi servirebbe il manuale e il SySex.


Come promesso ti mando l'articolo scritto da Luca Pilla su SM n.225, e da me
ricopiato (uff, pant, pant), visto che non ho potuto scansirlo. Spero abbia
trovato il manuale della macchina altrimenti non penso questo articolo potrà
esserti di molto aiuto. Cmq suppongo tu sia già molto esperto di sys-ex e
perciò mi scuso con te se ti ho in qualche modo "offeso" nel postare questo
messaggio.
Saluti, Danko.
P.S.: visto che ci sono, cosa hai deciso? LA MORTE torna tra i VIVI?
Resta implicito che chiunque si cimenti nella programmazione sys-ex sappia
già come abilitare la ricezione sys-ex, come gestire la protezione delle
memorie e, soprattutto, come impostare il parametro Device ID.
Le 14 pagine di MIDI Implementation, allegate al manuale, sono quelle che ci
servono per capire come interpretare e scrivere stringhe sys-ex.Sotto è
riportata la spiegazione degli elementi base di una stringa sys-ex e della
sua struttura così definita:
Byte:      Descrizione
F0$:       inizio stringa sys-ex
41$:       ID di Roland
DEV:      un byte programmabile
              che specifica l'ID dell'unità
MDL:     uno o più byte fissi che identificano
              il tipo di modello
CMD:     uno o più byte che dichiara il tipo
              di comando sys-ex
(Body):   più byte per specificare i dati
              del comando e checksum
F7$:       fine sys-ex
Vediamo in dettaglio i byte non specificati. DEV (Device) è un parametro
impostabile direttamente su D-550 e corrisponde a specificare il canale MIDI
di ricezione. Il range andrà quindi da 00$ a 0F$ (1/16). Nei nostri esmpi il
canale sarà posto a 1. Il byte MDL (Model) viene predefinito da Roland
stessa e, nel caso di D-550, questo corrisponde sempre a 14$. Il byte CMD
(Command) dipende invece dal tipo di trasmissione che può essere in modalità
One-Way oppure Handshake per la cui spiegazione rimandiamo all'apposito box.
Utilizzeremo per semplicità e praticità solo la modalità One-Way e pertanto
il byte CMD viene sempre posto a 12$ ovvero il corrispondente di Data Set 1
(DT1), come specificato nelle procedure di trasferimento One-Way. Utilizzare
il comando Data Set 1 significa quindi semplificare le connessioni MIDI, non
essendo richiesta la risposta del device ricevente la stringa, limitare la
stringa a non  più di 256 byte di lunghezza e inserire un byte di checksum
(CHK) di tipo 2's Complement. Riassumendo il nostro messaggio è per ora così
composto:
F0$, 41$, 00$, 14$, 12$, Data, CHK, F7$
La definizione dei byte Data è il cuore della tabella di implementazione
sys-ex di tutte le macchine Roland, si basa sul concetto di Address
(indirizzo) e necessita la conoscenza della struttura del timbro e delle
memorie.
In Roland D-550 un timbro, o Patch, è formato da un massimo di quattro
Partial suddivisi in Upper Partial 1, Upper Partial 2, Lower Partial 1 e
Lower Partial 2. A questi gruppi di parametri sono da aggiungere quelli
relativi a Upper Common, Lower Common e System Control, quest'ultimo per
gestire l'intero sintetizzatore.
Per evitare di ripetere quattro volte gli stessi parametri con byte diversi,
Roland ha quindi adottato la struttura degli Address che prevede per ogni
"gruppo di parametri" un indirizzo di memoria specifico a cui sommare i byte
dei singoli parametri.
E' importante quindi tenere di fronte la mappa degli indirizzi  (paragrafo
4.1) che evidenzia l'esistenza di sette indirizzi diversi relativi ad
altrettanti blocchi di memoria: Upper 1, Upper 2, Upper Common, Lower 1,
Lower 2, Lower Common e Patch. Come si può osservare, i byte di
identificazione sono identici sia per la memoria temporanea che per quelle
RAM ma nel primo caso essi rappresentano i byte di Address, mentre nel
secondo caso gli stessi byte sono da  sommare ai byte di Address che
identificano le Patch Memory. Detto questo, vediamo come entrare nel
dettaglio della modifica dei parametri.
La base di partenza, come abbiamo visto, sono i tre byte di Address che
specificano in quale parte del sintetizzatore vogliamo modificare il
parametro. Supponiamo di voler agire sull'Upper Partial 1. La mappa degli
indirizzi ci indica che i byte Address sono 00$, 00$, 00$. Al terzo byte va
sommato il byte chiamato Offset Address che si recupera dalla tabella
Partial Parameter. La tabella riporta un byte predefinito, che identifica
ogni singolo parametro, e un byte da costruire partendo dai valori binari
secondo lo schema 0vvv vvvv. Sul lato destro della tabella Partial Parameter
troviamo l'escursione dei valori, in decimale, che può assumere il parametro
e la relativa assegnazione a parametri specifici. Come si può notare nessun
parametro supera il valore di 127 e, quindi i sette bit di codifica che
vanno riportati al posto di vvv vvvv. In definitiva per costruire i quattro
byte Data è necessario:
1) individuare nella tabella 4.1 Address Mapping il gruppo di parametri che
si vuole modificare;
2) individuare nella tabella 4.2 Partial Parameter il singolo parametro da
modificare;
3) sommare al terzo byte dell'Address, preso dalla tabella Address Mapping,
il byte Offset Address ricavato dalla tabella Partial Parameter;
4) riportare il primo e secondo byte dell'Address e il terzo byte ricavato
dal punto 3;
5) costruire il quarto byte, convertendo il valore decimale del parametro in
binario e inserendolo nel byte. In pratica, poiché nessun parametro
oltrepassa il valore 127, è sufficiente riportare il valore decimale
espresso in esadecimale.
L'ultimo passo è il calcolo del byte di checksum, relativo ai byte Data e,
quindi, i tre byte Address più il quarto byte, che è già stato spiegato
nello speciale di apertura.
ESEMPIO 1
CAMBIARE LA FORMA D'ONDA DEL UPPER PARTIAL 1 CON LA FORMA D'ONDA NUMERO 16
LOW PIANO.
Prima parte della stringa: F0$, 41$, 00$, 14$
Command: 12$
                   (Upper Partial 1 Address: 00$, 00$, 00$)
                   (WG PCM Wave N. Partial Parameter: 07$)
Byte di Address: 00$, 00$, 07$
Forma d'onda Low Piano numero 16: 0F$
Calcolo checksum: 00$+00$+07$+0F$=0+0+7+15=22>106=6A$
Stringa completa: F0$, 41$, 00$, 14$, 00$,  00$, 07$, 0F$, 6A$, F7$
ESEMPIO 2
CAMBIARE LA FREQUENZA LOW EQ A 300 DI PARTIAL 2
Prima parte della stringa: F0$, 41$, 00$, 14$
Command: 12$
                   (Lower Common Address: 00$, 02$, 40$
                   (Low EQ Frequency Common Parameter: 25$)
Byte di Address: 00$, 02$, 65$
Eq Frequency 300: 9=09$
Calcolo checksum: 00$+02$+65$+09$=112>16=10$
Stringa completa: F0$, 41$, 00$, 14$, 12$, 00$, 02$, 65$, 09$, 10$, F7$


 ricopiato (uff, pant, pant), visto che non ho potuto scansirlo.
....Speriamo che lo legga.....(Tanto sacrificio andrebbe premiato)
ciao
peu