/linux/sound/pci/ca0106/ |
H A D | ca_midi.c | 4 * Creative Audio MIDI, for the CA0106 Driver 20 #define ca_midi_write_data(midi, data) midi->write(midi, data, 0) argument 21 #define ca_midi_write_cmd(midi, data) midi->write(midi, data, 1) argument 22 #define ca_midi_read_data(midi) midi->read(midi, argument 23 ca_midi_read_stat(midi) global() argument 24 ca_midi_input_avail(midi) global() argument 25 ca_midi_output_ready(midi) global() argument 27 ca_midi_clear_rx(struct snd_ca_midi * midi) ca_midi_clear_rx() argument 39 ca_midi_interrupt(struct snd_ca_midi * midi,unsigned int status) ca_midi_interrupt() argument 75 ca_midi_cmd(struct snd_ca_midi * midi,unsigned char cmd,int ack) ca_midi_cmd() argument 110 struct snd_ca_midi *midi = substream->rmidi->private_data; ca_midi_input_open() local 130 struct snd_ca_midi *midi = substream->rmidi->private_data; ca_midi_output_open() local 150 struct snd_ca_midi *midi = substream->rmidi->private_data; ca_midi_input_close() local 170 struct snd_ca_midi *midi = substream->rmidi->private_data; ca_midi_output_close() local 193 struct snd_ca_midi *midi = substream->rmidi->private_data; ca_midi_input_trigger() local 207 struct snd_ca_midi *midi = substream->rmidi->private_data; ca_midi_output_trigger() local 257 ca_midi_free(struct snd_ca_midi * midi) ca_midi_free() argument 274 ca_midi_init(void * dev_id,struct snd_ca_midi * midi,int device,char * name) ca_midi_init() argument [all...] |
H A D | ca_midi.h | 4 * Creative Audio MIDI, for the CA0106 Driver 40 void (*interrupt)(struct snd_ca_midi *midi, unsigned int status); 41 void (*interrupt_enable)(struct snd_ca_midi *midi, int intr); 42 void (*interrupt_disable)(struct snd_ca_midi *midi, int intr); 44 unsigned char (*read)(struct snd_ca_midi *midi, int idx); 45 void (*write)(struct snd_ca_midi *midi, int data, int idx); 52 int ca_midi_init(void *card, struct snd_ca_midi *midi, int device, char *name);
|
/linux/sound/isa/wavefront/ |
H A D | wavefront_midi.c | 6 /* The low level driver for the WaveFront ICS2115 MIDI interface(s) 14 * "Virtual MIDI" mode. In this mode, there are effectively *two* 15 * MIDI buses accessible via the interface, one that is routed 18 * MIDI devices to the board. 20 * This driver fully supports this mode, allowing two distinct MIDI 22 * MIDI routing, 16 to the WaveFront synth and 16 to the external MIDI 29 * using the two otherwise unused MIDI bytes. See the code for more details. 31 * NOTE: VIRTUAL MIDI MODE IS ON BY DEFAULT (see lowlevel/isa/wavefront.c) 33 * The main reason to turn off Virtual MIDI mod 55 wf_mpu_status(snd_wavefront_midi_t * midi) wf_mpu_status() argument 62 input_avail(snd_wavefront_midi_t * midi) input_avail() argument 69 output_ready(snd_wavefront_midi_t * midi) output_ready() argument 76 read_data(snd_wavefront_midi_t * midi) read_data() argument 83 write_data(snd_wavefront_midi_t * midi,unsigned char byte) write_data() argument 114 snd_wavefront_midi_t *midi = &card->wavefront.midi; snd_wavefront_midi_output_write() local 232 snd_wavefront_midi_t *midi; snd_wavefront_midi_input_open() local 257 snd_wavefront_midi_t *midi; snd_wavefront_midi_output_open() local 282 snd_wavefront_midi_t *midi; snd_wavefront_midi_input_close() local 306 snd_wavefront_midi_t *midi; snd_wavefront_midi_output_close() local 329 snd_wavefront_midi_t *midi; snd_wavefront_midi_input_trigger() local 355 snd_wavefront_midi_t *midi = timer_container_of(midi, t, timer); snd_wavefront_midi_output_timer() local 368 snd_wavefront_midi_t *midi; snd_wavefront_midi_output_trigger() local 409 snd_wavefront_midi_t *midi; snd_wavefront_midi_interrupt() local 490 snd_wavefront_midi_t *midi; snd_wavefront_midi_start() local [all...] |
/linux/sound/pci/emu10k1/ |
H A D | emumpu401.c | 62 static void do_emu10k1_midi_interrupt(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *midi, unsigned int status) in do_emu10k1_midi_interrupt() argument 66 if (midi->rmidi == NULL) { in do_emu10k1_midi_interrupt() 67 snd_emu10k1_intr_disable(emu, midi->tx_enable | midi->rx_enable); in do_emu10k1_midi_interrupt() 71 scoped_guard(spinlock, &midi->input_lock) { in do_emu10k1_midi_interrupt() 72 if ((status & midi->ipr_rx) && mpu401_input_avail(emu, midi)) { in do_emu10k1_midi_interrupt() 73 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_INPUT)) { in do_emu10k1_midi_interrupt() 74 mpu401_clear_rx(emu, midi); in do_emu10k1_midi_interrupt() 76 byte = mpu401_read_data(emu, midi); in do_emu10k1_midi_interrupt() 105 snd_emu10k1_midi_cmd(struct snd_emu10k1 * emu,struct snd_emu10k1_midi * midi,unsigned char cmd,int ack) snd_emu10k1_midi_cmd() argument 143 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; snd_emu10k1_midi_input_open() local 169 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; snd_emu10k1_midi_output_open() local 195 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; snd_emu10k1_midi_input_close() local 217 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; snd_emu10k1_midi_output_close() local 239 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; snd_emu10k1_midi_input_trigger() local 253 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; snd_emu10k1_midi_output_trigger() local 306 struct snd_emu10k1_midi *midi = rmidi->private_data; snd_emu10k1_midi_free() local 311 emu10k1_midi_init(struct snd_emu10k1 * emu,struct snd_emu10k1_midi * midi,int device,char * name) emu10k1_midi_init() argument 337 struct snd_emu10k1_midi *midi = &emu->midi; snd_emu10k1_midi() local 355 struct snd_emu10k1_midi *midi; snd_emu10k1_audigy_midi() local [all...] |
H A D | emu10k1x.c | 63 #define IPR_MIDITRANSBUFEMPTY 0x00000001 /* MIDI UART transmit buffer empty */ 64 #define IPR_MIDIRECVBUFEMPTY 0x00000002 /* MIDI UART receive buffer empty */ 71 #define INTE_MIDITXENABLE 0x00000001 /* Enable MIDI transmit-buffer-empty interrupts */ 72 #define INTE_MIDIRXENABLE 0x00000002 /* Enable MIDI receive-buffer-empty interrupts */ 238 struct emu10k1x_midi midi; member 771 if (chip->midi.interrupt) in snd_emu10k1x_interrupt() 772 chip->midi.interrupt(chip, status); in snd_emu10k1x_interrupt() 1180 struct emu10k1x_midi *midi, unsigned int status) 1184 if (midi->rmidi == NULL) { in mpu401_clear_rx() 1185 snd_emu10k1x_intr_disable(emu, midi in mpu401_clear_rx() 1200 do_emu10k1x_midi_interrupt(struct emu10k1x * emu,struct emu10k1x_midi * midi,unsigned int status) do_emu10k1x_midi_interrupt() argument 1239 snd_emu10k1x_midi_cmd(struct emu10k1x * emu,struct emu10k1x_midi * midi,unsigned char cmd,int ack) snd_emu10k1x_midi_cmd() argument 1278 struct emu10k1x_midi *midi = substream->rmidi->private_data; snd_emu10k1x_midi_input_open() local 1305 struct emu10k1x_midi *midi = substream->rmidi->private_data; snd_emu10k1x_midi_output_open() local 1332 struct emu10k1x_midi *midi = substream->rmidi->private_data; snd_emu10k1x_midi_input_close() local 1355 struct emu10k1x_midi *midi = substream->rmidi->private_data; snd_emu10k1x_midi_output_close() local 1378 struct emu10k1x_midi *midi = substream->rmidi->private_data; snd_emu10k1x_midi_input_trigger() local 1392 struct emu10k1x_midi *midi = substream->rmidi->private_data; snd_emu10k1x_midi_output_trigger() local 1446 struct emu10k1x_midi *midi = rmidi->private_data; snd_emu10k1x_midi_free() local 1452 emu10k1x_midi_init(struct emu10k1x * emu,struct emu10k1x_midi * midi,int device,char * name) emu10k1x_midi_init() argument 1479 struct emu10k1x_midi *midi = &emu->midi; snd_emu10k1x_midi() local [all...] |
/linux/drivers/usb/gadget/function/ |
H A D | f_midi.c | 3 * f_midi.c -- USB MIDI class function driver 16 * and drivers/usb/gadget/midi.c, 36 #include <linux/usb/midi.h> 41 MODULE_DESCRIPTION("USB MIDI class function driver"); 45 static const char f_midi_longname[] = "MIDI Gadget"; 54 /* MIDI message states */ 111 static void f_midi_transmit(struct f_midi *midi); 214 [STRING_FUNC_IDX].s = "MIDI function", 239 * Receives a chunk of MIDI data. 244 struct f_midi *midi = ep->driver_data; in f_midi_read_data() local [all …]
|
/linux/Documentation/devicetree/bindings/sound/ |
H A D | serial-midi.yaml | 5 $id: http://devicetree.org/schemas/sound/serial-midi.yaml# 8 title: Generic Serial MIDI Interface 14 Generic MIDI interface using a serial device. This denotes that a serial device is 15 dedicated to MIDI communication, either to an external MIDI device through a DIN5 16 or other connector, or to a known hardwired MIDI controller. This device must be a 20 parent serial device. If the standard MIDI baud of 31.25 kBaud is needed 21 (as would be the case if interfacing with arbitrary external MIDI devices), 23 results in the standard MIDI baud rate, and set the 'current-speed' property to 38400 (default) 30 const: serial-midi 33 description: Baudrate to set the serial port to when this MIDI device is opened. [all …]
|
/linux/include/linux/usb/ |
H A D | midi-v2.h | 3 * <linux/usb/midi-v2.h> -- USB MIDI 2.0 definitions. 10 #include <linux/usb/midi.h> 16 /* same as MIDI 1.0 */ 30 /* A.5 MS MIDI IN and OUT Jack Types */ 31 /* same as MIDI 1.0 */ 38 /* A.7 Group Terminal Default MIDI Protocol */ 39 #define USB_MS_MIDI_PROTO_UNKNOWN 0x00 /* Unknown (Use MIDI-CI) */ 40 #define USB_MS_MIDI_PROTO_1_0_64 0x01 /* MIDI 1.0, UMP up to 64bits */ 41 #define USB_MS_MIDI_PROTO_1_0_64_JRTS 0x02 /* MIDI 1.0, UMP up to 64bits, Jitter Reduction Timestam… 42 #define USB_MS_MIDI_PROTO_1_0_128 0x03 /* MIDI 1.0, UMP up to 128bits */ [all …]
|
/linux/Documentation/sound/cards/ |
H A D | serial-u16550.rst | 2 Serial UART 16450/16550 MIDI driver 16 In Roland Soundcanvas mode, multiple ALSA raw MIDI substreams are supported 18 sends the nonstandard MIDI command sequence F5 NN, where NN is the substream 20 "parts", so this feature lets you treat each part as a distinct raw MIDI 30 Usage example for Roland SoundCanvas with 4 MIDI ports: 36 In MS-124T mode, one raw MIDI substream is supported (midiCnD0); the outs 38 all four MIDI Out connectors. Set the A-B switch and the speed module 48 In MS-124W S/A mode, one raw MIDI substream is supported (midiCnD0); 50 the same data to all four MIDI Out connectors at full MIDI speed. 58 In MS-124W M/B mode, the driver supports 16 ALSA raw MIDI substreams; [all …]
|
/linux/drivers/usb/gadget/legacy/ |
H A D | gmidi.c | 3 * gmidi.c -- USB MIDI Gadget Driver 13 * USB MIDI driver, Copyright (C) 2002-2005 Clemens Ladisch. 15 * Refer to the USB Device Class Definition for MIDI Devices: 34 MODULE_DESCRIPTION("USB MIDI Gadget Driver"); 37 static const char longname[] = "MIDI Gadget"; 43 MODULE_PARM_DESC(index, "Index value for the USB MIDI Gadget adapter."); 47 MODULE_PARM_DESC(id, "ID string for the USB MIDI Gadget adapter."); 51 MODULE_PARM_DESC(buflen, "MIDI buffer length"); 59 MODULE_PARM_DESC(in_ports, "Number of MIDI input ports"); 63 MODULE_PARM_DESC(out_ports, "Number of MIDI output ports"); [all …]
|
/linux/sound/firewire/ |
H A D | amdtp-am824.c | 19 * Nominally 3125 bytes/second, but the MIDI port's clock might be 26 * In any case, this is more than enough for the MIDI data rate. 31 struct snd_rawmidi_substream *midi[AM824_MAX_CHANNELS_FOR_MIDI * 8]; member 47 * @midi_ports: the number of MIDI ports (i.e., MPX-MIDI Data Channels) 99 /* init the position map for PCM and MIDI channels */ in amdtp_am824_set_parameters() 105 * We do not know the actual MIDI FIFO size of most devices. Just in amdtp_am824_set_parameters() 107 * the previous one is transmitted over MIDI. in amdtp_am824_set_parameters() 134 * amdtp_am824_set_midi_position - set a index of data channel for MIDI 243 * amdtp_am824_midi_trigger - start/stop playback/capture with a MIDI device 245 * @port: index of MIDI port [all …]
|
H A D | amdtp-am824.h | 21 * AMDTP packet can include channels for MIDI conformant data. 22 * Each MIDI conformant data channel includes 8 MPX-MIDI data stream. 23 * Each MPX-MIDI data stream includes one data stream from/to MIDI ports. 25 * This module supports maximum 1 MIDI conformant data channels. 26 * Then this AMDTP packets can transfer maximum 8 MIDI data streams. 45 struct snd_rawmidi_substream *midi);
|
/linux/Documentation/sound/designs/ |
H A D | seq-oss.rst | 22 * Normal sequencer and MIDI events: 53 However, each MIDI device is exclusive - that is, if a MIDI device 81 At beginning, this module probes all the MIDI ports which have been 85 The available synth and MIDI devices can be found in proc interface. 101 Number of MIDI devices: 3 102 midi 0: [Emu8000 Port-0] ALSA port 65:0 105 midi 1: [Emu8000 Port-1] ALSA port 65:1 108 midi 2: [0: MPU-401 (UART)] ALSA port 64:0 127 Using MIDI Devices 130 So far, only MIDI output was tested. MIDI input was not checked at all, [all …]
|
/linux/sound/drivers/ |
H A D | Kconfig | 130 tristate "Virtual MIDI soundcard" 137 Say Y here to include the virtual MIDI driver. This driver 138 allows to connect applications using raw MIDI devices to 141 If you don't know what MIDI is, say N here. 147 tristate "MOTU MidiTimePiece AV multiport MIDI" 151 To use a MOTU MidiTimePiece AV multiport MIDI adapter 163 The ESI Miditerminal 4140 is a 4 In 4 Out MIDI Interface with 172 tristate "UART16550 serial MIDI driver" 176 To include support for MIDI serial port interfaces, say Y here 188 tristate "Generic serial MIDI driver" [all …]
|
/linux/sound/usb/ |
H A D | Kconfig | 14 tristate "USB Audio/MIDI driver" 22 Say Y here to include support for USB audio and USB MIDI 29 bool "MIDI 2.0 support by USB Audio driver" 32 Say Y here to include the support for MIDI 2.0 by USB Audio driver. 33 When the config is set, the driver tries to probe MIDI 2.0 interface 34 at first, then falls back to MIDI 1.0 interface as default. 35 The MIDI 2.0 support can be disabled dynamically via midi2_enable 47 audio/MIDI interfaces. 59 Say Y here to include support for Tascam USB Audio/MIDI 114 Say Y here to include support for Tascam US-122L USB Audio/MIDI [all...] |
/linux/sound/pci/echoaudio/ |
H A D | midi.c | 33 MIDI lowlevel code 36 /* Start and stop Midi input */ 58 /* Send a buffer full of MIDI data to the DSP 68 /* HF4 indicates that it is safe to write MIDI output data */ in write_midi() 83 /* Run the state machine for MIDI input data 84 MIDI time code sync isn't supported by this code right now, but you still need 85 this state machine to parse the incoming MIDI data stream. Every time the DSP 86 sees a 0xF1 byte come in, it adds the DSP sample position to the MIDI data 89 real MIDI bytes, the following logic is needed to skip them. */ 114 /* This function is called from the IRQ handler and it reads the midi dat [all...] |
/linux/sound/usb/line6/ |
H A D | midi.h | 21 /* MIDI substream for receiving (or NULL if not active) */ 24 /* MIDI substream for transmitting (or NULL if not active) */ 27 /* Number of currently active MIDI send URBs */ 30 /* Spin lock to protect MIDI buffer handling */ 33 /* Wait queue for MIDI transmission */ 36 /* Buffer for incoming MIDI stream */ 39 /* Buffer for outgoing MIDI stream */
|
H A D | driver.h | 16 #include "midi.h" 44 Line 6 MIDI control commands 53 MIDI channel for messages initiated by the host 59 MIDI channel for messages initiated by the device 107 /* device uses raw MIDI via USB (data endpoints) */ 141 * Each device has at least MIDI or PCM. 148 /* Line 6 MIDI device data structure */ 157 /* Buffer for message to be processed, generated from MIDI layer */ 160 /* Length of message to be processed, generated from MIDI layer */ 163 /* Circular buffer for non-MIDI control messages */ [all …]
|
H A D | midi.c | 15 #include "midi.h" 24 Pass data received via USB to MIDI. 35 Read data from MIDI buffer and transmit them via USB. 71 Notification of completion of MIDI transmission. 99 Send an asynchronous MIDI message. in midi_sent() 172 struct snd_line6_midi *midi = line6->line6midi; in line6_midi_output_trigger() 174 wait_event_interruptible(midi->send_wait, in line6_midi_output_drain() 175 midi->num_active_send_urbs == 0); in line6_midi_output_drain() 213 /* Create a MIDI device */ 220 err = snd_rawmidi_new(line6->card, "Line 6 MIDI", 178 struct snd_line6_midi *midi = line6->line6midi; line6_midi_output_drain() local [all...] |
/linux/include/sound/ |
H A D | ump_msg.h | 3 * Universal MIDI Packet (UMP): Message Definitions 8 /* MIDI 1.0 / 2.0 Status Code (4bit) */ 27 /* MIDI 1.0 Channel Control (7bit) */ 103 /* MIDI 1.0 / 2.0 System Messages (0xfx) */ 117 /* MIDI 1.0 Realtime and SysEx status messages (0xfx) */ 128 /* MIDI 1.0 Note Off / Note On (32bit) */ 147 /* MIDI 1.0 Poly Pressure (32bit) */ 166 /* MIDI 1.0 Control Change (32bit) */ 185 /* MIDI 1.0 Program Change (32bit) */ 204 /* MIDI 1.0 Channel Pressure (32bit) */ [all …]
|
/linux/sound/core/seq/ |
H A D | seq_midi.c | 3 * Generic MIDI synth driver for ALSA sequencer 10 - automatic opening of midi ports on first received event or subscription 29 MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer MIDI synth."); 38 /* data for this midi synth driver */ 61 /* handle rawmidi input event (MIDI v1.0 stream) */ 108 pr_err("ALSA: seq_midi: MIDI output buffer overrun\n"); in dump_midi() 126 unsigned char msg[10]; /* buffer for constructing midi messages */ in event_process_midi() 169 /* open associated midi device for input */ 177 /* open midi port */ in midisynth_subscribe() 182 pr_debug("ALSA: seq_midi: midi input open failed!!!\n"); in midisynth_subscribe() [all …]
|
H A D | Makefile | 12 snd-seq-midi-y := seq_midi.o 13 snd-seq-midi-emul-y := seq_midi_emul.o 14 snd-seq-midi-event-y := seq_midi_event.o 23 obj-$(CONFIG_SND_SEQ_MIDI) += snd-seq-midi.o 25 obj-$(CONFIG_SND_SEQ_MIDI_EMUL) += snd-seq-midi-emul.o 26 obj-$(CONFIG_SND_SEQ_MIDI_EVENT) += snd-seq-midi-event.o
|
/linux/sound/firewire/tascam/ |
H A D | tascam-midi.c | 3 * tascam-midi.c - a part of driver for TASCAM FireWire series 92 "%s MIDI", tscm->card->shortname); in snd_tscm_create_midi_devices() 100 /* Set port names for MIDI input. */ in snd_tscm_create_midi_devices() 102 /* TODO: support virtual MIDI ports. */ in snd_tscm_create_midi_devices() 104 /* Hardware MIDI ports. */ in snd_tscm_create_midi_devices() 106 "%s MIDI %d", in snd_tscm_create_midi_devices() 116 /* Set port names for MIDI ourput. */ in snd_tscm_create_midi_devices() 119 /* Hardware MIDI ports only. */ in snd_tscm_create_midi_devices() 121 "%s MIDI %d", in snd_tscm_create_midi_devices()
|
/linux/Documentation/ABI/testing/ |
H A D | configfs-usb-gadget-midi | 1 What: /config/usb-gadget/gadget/functions/midi.name 8 index index value for the USB MIDI adapter 9 id ID string for the USB MIDI adapter 10 buflen MIDI buffer length 12 in_ports number of MIDI input ports 13 out_ports number of MIDI output ports
|
/linux/sound/firewire/digi00x/ |
H A D | amdtp-dot.c | 19 * Nominally 3125 bytes/second, but the MIDI port's clock might be 26 * In any case, this is more than enough for the MIDI data rate. 47 struct snd_rawmidi_substream *midi[MAX_MIDI_PORTS]; member 123 * A first data channel is for MIDI messages, the rest is Multi Bit in amdtp_dot_set_parameters() 135 * We do not know the actual MIDI FIFO size of most devices. Just in amdtp_dot_set_parameters() 137 * the previous one is transmitted over MIDI. in amdtp_dot_set_parameters() 263 p->midi[port] != NULL) in write_midi_messages() 264 len = snd_rawmidi_transmit(p->midi[port], b + 1, 2); in write_midi_messages() 269 * - 0000b: physical MIDI port 1. in write_midi_messages() 270 * - 0010b: physical MIDI port 2. in write_midi_messages() [all …]
|