Midi program change: cos è e come funziona?

SMARTKID 10-11-10 20.33
Riecchelo...emo

Nel tentare di imparare le varie funzioni midi (sempre poco digerite dal sottoscritto NDR) , ho provato a capire meglio come funziona il program change.
Ma cos è esattamente? e come funziona in concreto, quando si lavora via midi tra 2 strumenti?

mi piacerebbe approfondire questo argomento, per migliorare le conoscenze midi , che credo partano proprio da questo!

Non ho a disposizione rack o master "vere" su cui fare prove, ma spero di imparare intanto l'abc anche grazie a questa discussione con voi.

1000 thanx

emo
ziberto 10-11-10 21.19
Sbagli Valerio!
Hai già a disposizione strumenti con cui fare delle prove: quasi tutti gli strumenti midi hanno la possibilità di inviare un program change!
Il PC è un messaggio midi che una master (o una tastiera che svolge, in quel caso, tale funzione) invia ad un'altra macchina (tastiera, modulo sonoro, modulo effetti, ecc...) affinchè quest'ultima cambi "program", inteso come patch di un banco.
E' un messaggio molto semplice... è un numero compreso fra 0 e 127 e corrisponde al numero della patch che vuoi selezionare.
Alcune macchine, per rendere efficace il messaggio di PC, lo devono associare ad un altro messaggio: quello di BC, ossia Bank Change.
Il Bank Change consiste di due numeri MSB e LSB, con i quali la macchina ricevente riesce ad individuare anche il banco in cui si trova il program desiderato.
Quindi un messaggio di PC completo, di solito si compone di 3 numeri, di cui 2 relativi al banco e uno relativo al program (o patch che dir si voglia).
Se ad esempio voglio "suonare" la patch 32 del banco User 1 e questo banco è individuato ad esempio dai valori 63 - 68 (valori Msb e Lsb da controllare sul manuale dello strumento), il messaggio completo sarà:
Msb 63, Lsb 68, Pc 32.
Questo era per dare un'infarinata... se hai domande specifiche cerchiamo di dare risposte concrete.emo
prossi 10-11-10 21.25
Ho risposto con entusiasmo all'altro tuo thread un istante fa, ma mi rendo conto ora che siamo un po' debolucci in materia... emo

Il Program Change serve per costringere uno strumento slave a cambiare il programma che sta suonando quando gli viene comandato appunto dalla master. Il PC è un numero che va da 0 a 127, ma alcuni slave usano da 0 a 100 o altre combinazioni, a seconda di quanto sono vecchi (tipicamente). IL PC viaggia in compagnia di MSB e LSB che servono per settare il banco dello slave, e curiosamente ci sono molti più banchi che programmi per banco.

In genere MSB resta fisso (most significant byte) e varia LSB (least mi pare) in quanto i banchi dovrebbero partire da 0 e andare avanti, ma in qualche implementazione midi obsoleta o strana si trovano dei buchi o delle altre situazioni, per cui bisogna sempre consultare il manuale o andare per tentativi.


ps grazie ZIB per l'aiuto! emo

Nel tuo caso fai ora il test opposto al precedente, imparando a cambiare PC e banco di M3 tramite il tuo NS88.
Edited 10 Nov. 2010 20:26
SMARTKID 11-11-10 00.31
@ ziberto
Sbagli Valerio!
Hai già a disposizione strumenti con cui fare delle prove: quasi tutti gli strumenti midi hanno la possibilità di inviare un program change!
Il PC è un messaggio midi che una master (o una tastiera che svolge, in quel caso, tale funzione) invia ad un'altra macchina (tastiera, modulo sonoro, modulo effetti, ecc...) affinchè quest'ultima cambi "program", inteso come patch di un banco.
E' un messaggio molto semplice... è un numero compreso fra 0 e 127 e corrisponde al numero della patch che vuoi selezionare.
Alcune macchine, per rendere efficace il messaggio di PC, lo devono associare ad un altro messaggio: quello di BC, ossia Bank Change.
Il Bank Change consiste di due numeri MSB e LSB, con i quali la macchina ricevente riesce ad individuare anche il banco in cui si trova il program desiderato.
Quindi un messaggio di PC completo, di solito si compone di 3 numeri, di cui 2 relativi al banco e uno relativo al program (o patch che dir si voglia).
Se ad esempio voglio "suonare" la patch 32 del banco User 1 e questo banco è individuato ad esempio dai valori 63 - 68 (valori Msb e Lsb da controllare sul manuale dello strumento), il messaggio completo sarà:
Msb 63, Lsb 68, Pc 32.
Questo era per dare un'infarinata... se hai domande specifiche cerchiamo di dare risposte concrete.emo
Grazie caro..emo è molto piu' di un'infarinata per me.. queste sono nozioni basic, di cui pero' non avevo la minima idea..per questo forse odio il midi (o magari stavolta se imparo mi sta pure piu' simpatico)..

Fammi capire. Il manuale con i valori msb e lsb devo consultarlo SIA per quanto riguarda master che slave, oppure (mettiamo l esempio di un rack), solo su quest ultimo?

thanx meritato per te
Valeemo
SMARTKID 11-11-10 00.33
@ prossi
Ho risposto con entusiasmo all'altro tuo thread un istante fa, ma mi rendo conto ora che siamo un po' debolucci in materia... emo

Il Program Change serve per costringere uno strumento slave a cambiare il programma che sta suonando quando gli viene comandato appunto dalla master. Il PC è un numero che va da 0 a 127, ma alcuni slave usano da 0 a 100 o altre combinazioni, a seconda di quanto sono vecchi (tipicamente). IL PC viaggia in compagnia di MSB e LSB che servono per settare il banco dello slave, e curiosamente ci sono molti più banchi che programmi per banco.

In genere MSB resta fisso (most significant byte) e varia LSB (least mi pare) in quanto i banchi dovrebbero partire da 0 e andare avanti, ma in qualche implementazione midi obsoleta o strana si trovano dei buchi o delle altre situazioni, per cui bisogna sempre consultare il manuale o andare per tentativi.


ps grazie ZIB per l'aiuto! emo

Nel tuo caso fai ora il test opposto al precedente, imparando a cambiare PC e banco di M3 tramite il tuo NS88.
Edited 10 Nov. 2010 20:26
Grazie mille anche a te.. in effetti i valori di PC, msb e lsb li ho gia' visti apparire su m3, mentre su ns88 non saprei neppure dove guardare.

Devo cercare su manuale di m3 questi valori, e far lavorare m3 come slave verso ns88 master, ho capito bene?

emo
ziberto 11-11-10 02.11
SMARTKID ha scritto:
Il manuale con i valori msb e lsb devo consultarlo SIA per quanto riguarda master che slave, oppure (mettiamo l esempio di un rack), solo su quest ultimo?

I valori di Msb e Lsb devi controllarli solo sulle tastiere e sui moduli che vuoi pilotare... quindi solo sugli slaves; sul manuale della master al massimo puoi cercare dove andarli ad inserire per completare il Program change.

L'importante, come in tutte le cose, è iniziare a spippolare e vedere i risultati... poi se qualcosa non ti torna, beh, siamo qui a "Esposizione"!emo
SMARTKID 11-11-10 16.07
@ ziberto
SMARTKID ha scritto:
Il manuale con i valori msb e lsb devo consultarlo SIA per quanto riguarda master che slave, oppure (mettiamo l esempio di un rack), solo su quest ultimo?

I valori di Msb e Lsb devi controllarli solo sulle tastiere e sui moduli che vuoi pilotare... quindi solo sugli slaves; sul manuale della master al massimo puoi cercare dove andarli ad inserire per completare il Program change.

L'importante, come in tutte le cose, è iniziare a spippolare e vedere i risultati... poi se qualcosa non ti torna, beh, siamo qui a "Esposizione"!emo
Grazie, apprezzo molto..

emo
TheDavide64 09-06-11 12.54
Ciao a tutti,
mi inserisco tardivamente in questa discussione che rappresenta un punto di partenza chiarissimo sul program change (per me che sono utilizzatore "non automatizzato" di synth).
Ottime le spiegazioni date.

Aggiungo una domanda per configurare un possibile scenario:
- facciamo che ho una master ed un rack con 3 moduli.

voglio poterli utilizzare in modo da:
1) cambio dalla master i preset dei tre moduli, come mi serve, brano dopo brano (program change?)
2) posso intervenire in tempo reale sul volume dei tre moduli (control change?)

Che caratteristiche dovrebbe avere la master e i tre moduli?
devo assegnare alla master delle zone associate a canali midi diversi corrispondenti ai tre moduli?

grazie mille
Wurly 09-06-11 13.12
TheDavide64 ha scritto:
1) cambio dalla master i preset dei tre moduli, come mi serve, brano dopo brano (program change?)

il program change integrato dei valori CC00 e CC32 che trovi nel manuale per ogni preset.. questo perché il solo valore del program change (128) non basterebbe a coprire tutti i preset di ogni strumento
edit: oppure i post di Ziberto e Prossi, molto esaustivi!
TheDavide64 ha scritto:
2) posso intervenire in tempo reale sul volume dei tre moduli (control change?)

certamente, CC7 con un valore da 00 a 127 (il volume)
TheDavide64 ha scritto:
devo assegnare alla master delle zone associate a canali midi diversi corrispondenti ai tre moduli?

Si
Per il collegamento puoi operare in cascata
Master out---> modulo A in
modulo A thru --> modulo B in
modulo B thru --> modulo C in
Enjoyemo

Edited 9 Giu. 2011 11:25
Crosfader 09-06-11 13.28
ziberto ha scritto:
Sbagli Valerio!
Hai già a disposizione strumenti con cui fare delle prove: quasi tutti gli strumenti midi hanno la possibilità di inviare un program change!
Il PC è un messaggio midi che una master (o una tastiera che svolge, in quel caso, tale funzione) invia ad un'altra macchina (tastiera, modulo sonoro, modulo effetti, ecc...) affinchè quest'ultima cambi "program", inteso come patch di un banco.
E' un messaggio molto semplice... è un numero compreso fra 0 e 127 e corrisponde al numero della patch che vuoi selezionare.
Alcune macchine, per rendere efficace il messaggio di PC, lo devono associare ad un altro messaggio: quello di BC, ossia Bank Change.
Il Bank Change consiste di due numeri MSB e LSB, con i quali la macchina ricevente riesce ad individuare anche il banco in cui si trova il program desiderato.
Quindi un messaggio di PC completo, di solito si compone di 3 numeri, di cui 2 relativi al banco e uno relativo al program (o patch che dir si voglia).
Se ad esempio voglio "suonare" la patch 32 del banco User 1 e questo banco è individuato ad esempio dai valori 63 - 68 (valori Msb e Lsb da controllare sul manuale dello strumento), il messaggio completo sarà:
Msb 63, Lsb 68, Pc 32.
Questo era per dare un'infarinata... se hai domande specifiche cerchiamo di dare risposte concrete.emo



Sei proprio un MIDI/MEDIO MAN! emoemoemoemoemoemoemo

Grande ZIBERTO!
Ema996 09-06-11 16.10
@ Wurly
TheDavide64 ha scritto:
1) cambio dalla master i preset dei tre moduli, come mi serve, brano dopo brano (program change?)

il program change integrato dei valori CC00 e CC32 che trovi nel manuale per ogni preset.. questo perché il solo valore del program change (128) non basterebbe a coprire tutti i preset di ogni strumento
edit: oppure i post di Ziberto e Prossi, molto esaustivi!
TheDavide64 ha scritto:
2) posso intervenire in tempo reale sul volume dei tre moduli (control change?)

certamente, CC7 con un valore da 00 a 127 (il volume)
TheDavide64 ha scritto:
devo assegnare alla master delle zone associate a canali midi diversi corrispondenti ai tre moduli?

Si
Per il collegamento puoi operare in cascata
Master out---> modulo A in
modulo A thru --> modulo B in
modulo B thru --> modulo C in
Enjoyemo

Edited 9 Giu. 2011 11:25
Mi permetto di dire una piccola cosa, questo discorso vale solo se le unità lavorano associate a dei canali MIDI indipendenti, altrimenti se tutte le macchine ricevessero i comandi su tutti e 16 i canali MIDI avresti una variazione simultanea su tutto ciò che vi è collegato in cascata. Per ovviare a questo problema esiste il Sistema Esclusivo (Sys Ex) che appunto attraverso un codice specifico indirizza un singolo comando alla periferica specifica, tale comando verrà ovviamente ignorato dalle altre macchine. Ma è cosa un tantino più complessa....emo
Wurly 09-06-11 20.25
@ Ema996
Mi permetto di dire una piccola cosa, questo discorso vale solo se le unità lavorano associate a dei canali MIDI indipendenti, altrimenti se tutte le macchine ricevessero i comandi su tutti e 16 i canali MIDI avresti una variazione simultanea su tutto ciò che vi è collegato in cascata. Per ovviare a questo problema esiste il Sistema Esclusivo (Sys Ex) che appunto attraverso un codice specifico indirizza un singolo comando alla periferica specifica, tale comando verrà ovviamente ignorato dalle altre macchine. Ma è cosa un tantino più complessa....emo
Ema996 ha scritto:
questo discorso vale solo se le unità lavorano associate a dei canali MIDI indipendenti, altrimenti se tutte le macchine ricevessero i comandi su tutti e 16 i canali MIDI avresti una variazione simultanea su tutto ciò che vi è collegato in cascata

vero, non l'ho esplicitato in quanto, visto che era stato chiesto appunto da Davide, l'ho considerato già verificato.
TheDavide64 ha scritto:
devo assegnare alla master delle zone associate a canali midi diversi corrispondenti ai tre moduli?

Si
Per il collegamento puoi operare in cascata
Master out---> modulo A in
modulo A thru --> modulo B in
modulo B thru --> modulo C in

Esplicitando con un esempio
La master ha la trasmissione attiva su tutti e 16 canali (escludiamo il 10 per creare un 5x3)
Il modulo A riceve solo sull'1,2,3,4,5
Il B sul 6,7,8,9,11
Il C sul 12,13,14,15,16.
emo
Ema996 ha scritto:
Per ovviare a questo problema esiste il Sistema Esclusivo (Sys Ex) che appunto attraverso un codice specifico indirizza un singolo comando alla periferica specifica, tale comando verrà ovviamente ignorato dalle altre macchine. Ma è cosa un tantino più complessa....emo

emo anche se, visto l'utilizzo richiesto, ossia controllare prevalentemente messaggi midi tipo note e qualche CC, sarebbe un'alternativa un po' lunga da implementare.
Rigorosamente IMHO
emo
pinuss 09-02-14 11.19
salve qualcuno sa dirmi perchè un midi file letto con rd 70 viscount con sc 55 roland suona benissimo e messo dentro l'audya 5 mi suonano suona solo con suoni di pianoforte? in caso dirtemi come posso sistemare il file. grazie
anonimo 10-04-20 11.50
approfitto di questo 3d per chiedere: nella strumentazione midi, quanti tipi di connesioni esistono?
Pentapolare, usb, ethernet è arrivato?????
Roberto_Forest 10-04-20 12.52
Pentapolare e usb, basta
anonimo 10-04-20 13.31
@ Roberto_Forest
Pentapolare e usb, basta
grazie
mima85 10-04-20 20.42
@ anonimo
grazie
In realtà qualcosa per il trasporto del protocollo MIDI su Ethernet è stato fatto. Chiaramente non si tratta di soluzioni molto diffuse, anche perché posso pensare che abbiano un certo costo e sono pensate soprattutto per il mercato professionale.
anonimo 10-04-20 20.49
@ mima85
In realtà qualcosa per il trasporto del protocollo MIDI su Ethernet è stato fatto. Chiaramente non si tratta di soluzioni molto diffuse, anche perché posso pensare che abbiano un certo costo e sono pensate soprattutto per il mercato professionale.
interessante, grazie.
mima85 10-04-20 20.59
@ anonimo
interessante, grazie.
emo
maxpiano69 10-04-20 21.37
@ mima85
In realtà qualcosa per il trasporto del protocollo MIDI su Ethernet è stato fatto. Chiaramente non si tratta di soluzioni molto diffuse, anche perché posso pensare che abbiano un certo costo e sono pensate soprattutto per il mercato professionale.
Solo per completezza, aggiungerei il MIDI over Bluetooth e precisiamo che l'RTP MIDI si appoggia al TCP/IP e grazie a questo funziona (in una LAN) sia via Ethernet che WiFi (e tecnicamente anche via Internet, ovviamente con un latenza e "stabilità" che si possono immaginare...)