Strumenti Digitali Digital Tools
PROTOCOLLI
DI COMUNICAZIONE
COMMUNICATION
PROTOCOLS
MIDI · OSC
MIDI
Musical Instrument Digital Interface
È un protocollo formato da un insieme di messaggi e di regole per la comunicazione tra strumenti musicali e non solo. MIDI, short for Musical Instrument Digital Interface, is a standardized protocol consisting of messages and rules for communication between musical instruments and other digital interfaces. It is not audio.
Il primo strumento ad utilizzare il protocollo MIDI è il Sequential Circuit Prophet 600 del 1983.
Nonostante svariati tentativi di modificare il protocollo, la sua struttura è rimasta praticamente la stessa a conferma che è un linguaggio molto potente, facile da programmare e che non richiede una tecnologia complessa e di difficile reperibilità.
The first instrument to use the MIDI protocol was the Sequential Circuits Prophet 600 from 1983.
While the MIDI 2.0 update in 2023 was substantial, MIDI's structure remains conceptually the same, proving its value as an easy-to-program language that does not require complex hard-to-find technology.
Via cavo si trasmette Cables
Si può anche trasmettere Can be also transmitted
Tipi di
messaggio
Types of
messages
⟶
Channel Voice Message
Messaggi di canale Channel messages
Possono essere indirizzati su uno dei 16 canali (Channel) disponibili Control the parameters that are needed to convert musical events into MIDI and can be routed to one of the 16 channels available in MIDI
⟶
System Message
Messaggi di Sistema System messages
sono indirizzati globalmente all'intero sistema apply globally within the system and not to a specific device
Tipi di messaggio › Types of messages › Channel Voice Message
status: NOTE ON | 1st data byte: NOTE | 2nd data byte: VELOCITY
NOTA ON – se si preme una nota sulla tastiera, viene inviato un messaggio di Nota On che, oltre allo status byte, è costituito da due data byte: il primo relativo all'altezza della nota (pitch 0–127), il secondo alla velocity ovvero alla forza con cui è stato premuto il tasto (velocity 0–127). NOTE ON – When a key is pressed on the keyboard, a Note ON message is sent, consisting of two numbers: pitch (0–127) and velocity (0–127).
status: NOTE OFF | 1st data byte: NOTE | 2nd data byte: VELOCITY
NOTA OFF – se si rilascia il tasto di nota premuto in precedenza, viene generato un messaggio di Nota Off costituito anch'esso da due data byte; il primo specifica quale nota viene rilasciata (pitch 0–127), il secondo con quale velocity di rilascio del tasto (velocity 0–127). NOTE OFF – When the key that was previously pressed is released, a Note OFF message is generated that also consists of two numbers: pitch (0–127) and velocity (0–127).
Tipi di messaggio › Types of messages › Channel Voice Message
status: AFTERTOUCH | 1st data byte: AFTERTOUCH VALUE
AFTERTOUCH o CHANNEL PRESSURE – trasmette in tempo reale eventuali variazioni di pressione esercitate su una nota premuta in precedenza. AFTERTOUCH or CHANNEL PRESSURE – This parameter takes the value of a sensor and transmits any changes in the pressure exerted on a previously pressed note in real time. This pressure, applied to the entire keyboard.
status: AFTERTOUCH | 1st data byte: NOTE | 2nd data byte: AFTERTOUCH VALUE
POLYPHONIC AFTERTOUCH o POLYPHONIC KEY PRESSURE – è simile al precedente ma si riferisce all'utilizzo di sensori di pressione indipendenti per ciascuna nota. POLYPHONIC AFTERTOUCH or POLYPHONIC KEY PRESSURE – It is similar to the Aftertouch but refers to independent pressure sensors for each note.
Tipi di messaggio › Types of messages › Channel Voice Message
status: PROGRAM CHANGE | 1st data byte: PRESET NUMBER
PROGRAM CHANGE - viene utilizzato per cambiare scena o preset o timbro da utilizzare nello strumento. PROGRAM CHANGE - We use it to change a preset, or program.
status: PITCH BENDER | 1st data byte: VALUE A (MSB) | 2nd data byte: VALUE B (LSB)
PITCH BENDER – le tastiere sono provviste di slider o joystick con le quali è possibile variare l'altezza di una nota in esecuzione. PITCH BEND – MIDI keyboards have sliders, wheels, or joysticks which can be moved to vary the pitch during the sustain of a note.
Tipi di messaggio › Types of messages › Channel Voice Message
status: CONTROL CHANGE | 1st data byte: CC NUMBER | 2nd data byte: VALUE
CONTROL CHANGE – questo messaggio permette di trasmettere dei valori di controllo (fino a 128 diversi).
Il primo data indica il numero del controller (CC 0–127) mentre il secondo ne specifica il valore (VALUE 0–127).
CONTROL CHANGE – This message, consisting of two numbers (CC 0–127 and VALUE 0–127), allows control values (up to 128 controllers for each channel) to be transmitted.
Tipi di messaggio › Types of messages › System Message
COMMON MESSAGE
Tipi di messaggio › Types of messages › System Message
REAL TIME
Tipi di messaggio › Types of messages › System Message
EXCLUSIVE MESSAGE
System Exclusive (SysEx), sono messaggi che riguardano le funzionalità globali di ogni strumento e sono utilizzati a seconda delle esigenze proprie degli sviluppatori. I codici di sistema esclusivo possono essere interpretati solo da categorie di apparecchi compatibili tra loro. System Exclusive (SysEx) messages control each instrument's global functionality and are used according to the manufacturer's requirements. Since they are specific to a particular device, they can only be interpreted by compatible devices.
MIDI file
nomefile.mid
Un midifile è una sequenza di dati MIDI costituiti da diversi messaggi distribuiti nei vari canali in grado di essere interpretata da qualsiasi strumento reale o virtuale dotato del protocollo MIDI.
NON è un file audio!
A MIDI file, .mid, is a file format that contains a sequence of MIDI data, consisting of several messages distributed in various channels, capable of being interpreted by any MIDI compatible hardware device or software instrument.
It's NOT an audio file!
Standard MIDI — General MIDI Standard MIDI — General MIDI
Il General MIDI è stato introdotto nel 1991 per semplificare le operazioni di riproduzione delle sequenze MIDI tramite gli stessi timbri. Some standards, like General MIDI, handle the way instruments are identified, allowing us to quickly assign tracks to various instruments of our choice.
MPE
È una evoluzione del MIDI, o meglio di un modo diverso di usare i messaggi MIDI standard per ottenere maggiori possibilità performative.
MPE merges multiple MIDI channels to give each note more gestural possibilities, like controlling horizontal and vertical finger position and pressure.
So, with one finger, I can potentially control the note, its intensity, variations of its timbre, and even the amount of reverb I am applying to it.
Collegamenti Connections
Nei collegamenti MIDI con cavi standard a 5 poli esistono 3 tipi di porte MIDI:
La porta MIDI IN, utilizzata per ricevere i messaggi inviati da un'altra macchina
La porta MIDI OUT, impiegata per inviare i messaggi ad altri strumenti
La porta MIDI THRU, consente di reindirizzare un messaggio proveniente alla porta
In MIDI connections with standard 5-pin MIDI cables we can have three type of ports:
MIDI IN, receives MIDI messages from other external devices
MIDI OUT, sends MIDI messages out of the main device
MIDI THRU, passes the MIDI signal from the IN port to the OUT port without applying variations.
Collegamenti Connections
Nell'utilizzo del MIDI in sistemi interamente digitali o comunque in cui il computer sia al centro della catena, posso creare infiniti rapporti di main e secondary. In systems that are comprised of entirely digital devices, the concept of main and secondary devices loses some relevance due to the flexibility offered by digital systems.
OSC
Open Sound Control
OSC
Open Sound Control
OpenSound Control (OSC) è stato creato dal CNMAT nel 1997 ed è un protocollo "open source" per la comunicazione tra computer, sintetizzatori audio e altri dispositivi multimediali attraverso una rete wireless, cablata o attraverso internet... OpenSound Control (OSC), created by CNMAT in 1997, is an open-source protocol for communication between computers, audio synthesizers, and other multimedia devices over a network.
OSC
Open Sound Control
OSC
Open Sound Control
OSC ha un'architettura client/server e i dati sono trasmessi in unità denominate pacchetti.
Tutto ciò che manda messaggi OSC è un client.
Tutto ciò che riceve messaggi OSC è un server.
OSC-type messages can be passed back and forth using the classic network architecture type: client/server.
Typically clients send messages to the server and servers receive and execute OSC messages.
OSC
Open Sound Control
Messaggi OSC OSC messages
I messaggi OSC sono formati da 3 parti: OSC messages are composed of three parts:
address pattern è una stringa che specifica l'indirizzo relativo al dato che sto trasmettendois a string that specifies the address relative to the data that is transmitted
per esempio: /ondaquadra/parziale/unoexample: /squarewave/parzial/one
type tag string specifica il tipo di dati di ogni argomentospecifies the data type of each argument
per esempio: floatexample: float (number with a decimal place)
arguments sono i dati contenuti nel messaggioare the parameter values contained in the message
per esempio: 440.5example: 440.5
OSC
Open Sound Control
Messaggi OSC OSC messages
Client e server devono essere impostati con una porta di uscita e una di entrata.
Inoltre per poter comunicare tra loro i client devono indicare gli indirizzi IP (indirizzo univoco di un computer su una rete) dei server per poter identificare verso chi indirizzare i propri pacchetti.
For clients to send OSC messages, they need to set the destination/server IP addresses.
Both clients and servers should also be configured with a send and a receive port.
OSC
Open Sound Control
Messaggi OSC OSC messages
Ci sono molte applicazioni per smartphone e tablet che usano OSC che permettono per esempio di creare la propria interfaccia di controllo scegliendo dove posizionare gli slider, i knob, i pulsanti… Queste applicazioni permettono anche di trasmettere parametri quali accelerazione e rotazione del dispositivo. OSC is popular on smartphones and tablets, transmitting data via Wi-Fi. OSC-compatible apps let users create custom control interfaces with sliders, knobs, and buttons. These apps can also transmit OSC parameters based on the acceleration and rotation sensors within smartphones or tablets for live electronics performance.
OSC
Open Sound Control
OSC permette di scambiare un maggior numero di dati in confronto al MIDI, dando inoltre maggiore flessibilità al tipo di dati a disposizione. OSC communicates data quickly over networks and has higher resolution than MIDI, using 32-bit processing for more flexibility. However, it is less ubiquitous than MIDI and requires specifying the address and port for device connections.