Gibson MaGIC
Media-accelerated Global Information Carrier is an audio over Ethernet protocol developed by the Gibson Guitar Corporation in partnership with 3COM. It enables bidirectional transmission of multichannel audio data, control data, and instrument power.
Revision 1.0 was introduced in 1999; the most current revision 3.0c was released in 2003.
MaGIC is used in several guitar products such as Gibson Digital Guitar.
Capabilities
- Uses Category 5 UTP cables up to 100 m long
- Frame-compatible with Fast Ethernet
- 32 channels, 192 kHz sampling rate
- * 32-bit integer audio
- * 32-bit floating point audio
- * 24-bit integer audio with 4-bit channel status and 4-bit channel command
- * 32-bit raw data
- Supports line network topology, star topology, and a combination of the two
Network protocol
In terms of ISO OSI model, MaGIC can use physical and link layer based on 100 Mbit Fast Ethernet signalling specified in IEEE 802.3/IEEE 802.3af and IEEE 802.2, however MaGIC implements proprietary network and application layers which can be used with different physical layers such as Gigabit Ethernet or optical media.The frame consists of 1776 bytes. The network protocol encapsulates each frame application data into media payload and control payload fields of the frame. The media payload is reserved for low-latency synchronous audio and video data, and control payload may encapsulate MaGIC control messages, MIDI data, and other protocols.
Media streams are transmitted synchronously without re-sampling or buffering, ensuring minimal latency; each stream has one source and one or more destinations. Control messages are generally broadcast to the entire network each device processes the destination address and forwards to all neighbors if necessary.
Application protocol
A MaGIC device consists of the following logical entities:- Unit an access point that sends and receives control messages;
- Components access points for control applications such as power on/off switches, volume controls, control surfaces, or graphical user interfaces;
- Ports represent either physical connections or user applications which send media to the network;
- Media slot routers route media data streams through the network.
The network elects a System Timing Master which is the source of synchronization on for all devices. Timecode formats include MaGIC timecode and MIDI Time Code.
The control data in consist of 12-bit Control Message Code 4-bit status field, 32-bit Source and 32-bit Destination, and may contain up to 32 Kbytes of data in multiple frames.
The CMCs are defined into four classes:
- Network Management Messages
- Well Known Application Protocols used for encapsulation of well-known high-level protocols or for transporting messages with well-known format and structure.
- User Control Messages - proprietary user messages
- Reserved.
| CMC | Name | Description |
| 0x01 | Operation Completion | Status Used for error reporting. |
| 0x03 | Change of STM | Forces device resynchronization. |
| 0x05 | Address Advertisement | Used for device address auto-configuration. Tentative address broadcast. |
| 0x07 | Address Conflict | Reports an address conflict between two or more devices. |
| 0x09 | Neighbor Advertisement | Reports device symbolic name to neighbor devices. |
| 0x11 | Add/Remove Link Record | Adds or removes a record to/from the control link table of a device component. |
| 0x13 | Establish/Drop Control Link | Establishes or disconnects a control link between two remote components. |
| 0x15 | Read/Clear Link Table | Reads or erases a control link table of a device component. |
| 0x17 | List of Linked Components | Provides list of addresses for linked components. |
| 0x19 | Read Link Parameters | Read parameters of a particular control link. |
| 0x1B | List of Link Parameters | Provides information about a control link. |
| 0x31 | Set routing table | Programs port routing table. |
| 0x33 | Read routing table | Accesses port routing table data. |
| 0x35 | Routing table data | Reports content of port routing table. |
| 0x41 | Mute | Transmits a list of data slot enable/disable masks. |
| 0x51 | Read Attribute | Requests an attribute value. |
| 0x53 | Attribute Value | Transmits the requested attribute value. |