## AgsCoreAudioMidiin

AgsCoreAudioMidiin — Input from sequencer

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_CORE_AUDIO_MIDIIN_GET_OBJ_MUTEX()
GQuark | ags_core_audio_midiin_error_quark ()
gboolean | ags_core_audio_midiin_test_flags ()
void | ags_core_audio_midiin_set_flags ()
void | ags_core_audio_midiin_unset_flags ()
void | ags_core_audio_midiin_switch_buffer_flag ()
AgsCoreAudioMidiin * | ags_core_audio_midiin_new ()

## Properties

gpointer | attack | Read
double | bpm | Read / Write
gpointer | buffer | Read
AgsCoreAudioClient * | core-audio-client | Read / Write
AgsCoreAudioPort * | core-audio-port | Read / Write
double | delay-factor | Read / Write
char * | device | Read / Write

## Types and Values

#define | AGS_CORE_AUDIO_MIDIIN_DEFAULT_APP_BUFFER_SIZE
#define | AGS_CORE_AUDIO_MIDIIN_DEFAULT_BUFFER_SIZE
enum | AgsCoreAudioMidiinFlags
enum | AgsCoreAudioMidiinAppBufferMode
enum | AgsCoreAudioMidiinSyncFlags
#define | AGS_CORE_AUDIO_MIDIIN_ERROR
enum | AgsCoreAudioMidiinError

## Object Hierarchy

        GFlags
        ╰── AgsCoreAudioMidiinFlags
        GObject
        ╰── AgsCoreAudioMidiin

## Includes

    #include <ags/audio/core-audio/ags_core_audio_midiin.h>

## Description

AgsCoreAudioMidiin represents a sequencer and supports midi input.

## Functions

### AGS_CORE_AUDIO_MIDIIN_GET_OBJ_MUTEX()

    #define AGS_CORE_AUDIO_MIDIIN_GET_OBJ_MUTEX(obj) (&(((AgsCoreAudioMidiin *) obj)->obj_mutex))

### ags_core_audio_midiin_error_quark ()

    GQuark
    ags_core_audio_midiin_error_quark ();

### ags_core_audio_midiin_test_flags ()

    gboolean
    ags_core_audio_midiin_test_flags (AgsCoreAudioMidiin *core_audio_midiin,
                                      AgsCoreAudioMidiinFlags flags);

Test `flags` to be set on `core_audio_midiin` .

#### Parameters

core_audio_midiin | the AgsCoreAudioMidiin |
flags | the flags |

#### Returns

`TRUE` if flags are set, else `FALSE`

Since: 3.0.0

### ags_core_audio_midiin_set_flags ()

    void
    ags_core_audio_midiin_set_flags (AgsCoreAudioMidiin *core_audio_midiin,
                                     AgsCoreAudioMidiinFlags flags);

Enable a feature of `core_audio_midiin` .

#### Parameters

core_audio_midiin | the AgsCoreAudioMidiin |
flags | see AgsCoreAudioMidiinFlags |

Since: 3.0.0

### ags_core_audio_midiin_unset_flags ()

    void
    ags_core_audio_midiin_unset_flags (AgsCoreAudioMidiin *core_audio_midiin,
                                       AgsCoreAudioMidiinFlags flags);

Disable a feature of `core_audio_midiin` .

#### Parameters

core_audio_midiin | the AgsCoreAudioMidiin |
flags | see AgsCoreAudioMidiinFlags |

Since: 3.0.0

### ags_core_audio_midiin_switch_buffer_flag ()

    void
    ags_core_audio_midiin_switch_buffer_flag
                                   (AgsCoreAudioMidiin *core_audio_midiin);

The buffer flag indicates the currently recorded buffer.

#### Parameters

core_audio_midiin | the AgsCoreAudioMidiin |

Since: 3.0.0

### ags_core_audio_midiin_new ()

    AgsCoreAudioMidiin *
    ags_core_audio_midiin_new ();

Creates a new instance of AgsCoreAudioMidiin.

#### Returns

a new AgsCoreAudioMidiin

Since: 3.0.0

## Types and Values

### AGS_CORE_AUDIO_MIDIIN_DEFAULT_APP_BUFFER_SIZE

    #define AGS_CORE_AUDIO_MIDIIN_DEFAULT_APP_BUFFER_SIZE (4)

### AGS_CORE_AUDIO_MIDIIN_DEFAULT_BUFFER_SIZE

    #define AGS_CORE_AUDIO_MIDIIN_DEFAULT_BUFFER_SIZE (4096)

### enum AgsCoreAudioMidiinFlags

Enum values to control the behavior or indicate internal state of AgsCoreAudioMidiin by enable/disable as flags.

#### Members

AGS_CORE_AUDIO_MIDIIN_INITIALIZED | recording is initialized |
AGS_CORE_AUDIO_MIDIIN_START_RECORD | just started recording |
AGS_CORE_AUDIO_MIDIIN_RECORD | is recording |
AGS_CORE_AUDIO_MIDIIN_SHUTDOWN | stop recording |
AGS_CORE_AUDIO_MIDIIN_NONBLOCKING | do non-blocking calls |
AGS_CORE_AUDIO_MIDIIN_ATTACK_FIRST | use first attack, instead of second one |

### enum AgsCoreAudioMidiinAppBufferMode

Enum values to indicate internal state of AgsCoreAudioMidiin application buffer by setting mode.

#### Members

AGS_CORE_AUDIO_MIDIIN_APP_BUFFER_0 | ring-buffer 0 |
AGS_CORE_AUDIO_MIDIIN_APP_BUFFER_1 | ring-buffer 1 |
AGS_CORE_AUDIO_MIDIIN_APP_BUFFER_2 | ring-buffer 2 |
AGS_CORE_AUDIO_MIDIIN_APP_BUFFER_3 | ring-buffer 3 |

### enum AgsCoreAudioMidiinSyncFlags

Enum values to control the synchronization between soundcard and client.

#### Members

AGS_CORE_AUDIO_MIDIIN_PASS_THROUGH | do not sync |
AGS_CORE_AUDIO_MIDIIN_INITIAL_CALLBACK | initial callback |
AGS_CORE_AUDIO_MIDIIN_CALLBACK_WAIT | sync wait, soundcard conditional lock |
AGS_CORE_AUDIO_MIDIIN_CALLBACK_DONE | sync done, soundcard conditional lock |
AGS_CORE_AUDIO_MIDIIN_CALLBACK_FINISH_WAIT | sync wait, client conditional lock |
AGS_CORE_AUDIO_MIDIIN_CALLBACK_FINISH_DONE | sync done, client conditional lock |
AGS_CORE_AUDIO_MIDIIN_DO_SYNC | do synchronize |

### AGS_CORE_AUDIO_MIDIIN_ERROR

    #define AGS_CORE_AUDIO_MIDIIN_ERROR (ags_core_audio_midiin_error_quark())

### enum AgsCoreAudioMidiinError

#### Members

AGS_CORE_AUDIO_MIDIIN_ERROR_LOCKED_SOUNDCARD |  |

## Property Details

### The `“attack”` property

      “attack”                   gpointer

Attack of the buffer

Owner: AgsCoreAudioMidiin

Flags: Read

Since: 3.0.0

### The `“bpm”` property

      “bpm”                      double

Beats per minute

Owner: AgsCoreAudioMidiin

Flags: Read / Write

Allowed values: [1,240]

Default value: 120

Since: 3.0.0

### The `“buffer”` property

      “buffer”                   gpointer

The buffer

Owner: AgsCoreAudioMidiin

Flags: Read

Since: 3.0.0

### The `“core-audio-client”` property

      “core-audio-client”        AgsCoreAudioClient *

The assigned AgsCoreAudioClient

Owner: AgsCoreAudioMidiin

Flags: Read / Write

Since: 3.0.0

### The `“core-audio-port”` property

      “core-audio-port”          AgsCoreAudioPort *

The assigned AgsCoreAudioPort

Owner: AgsCoreAudioMidiin

Flags: Read / Write

Since: 3.0.0

### The `“delay-factor”` property

      “delay-factor”             double

tact

Owner: AgsCoreAudioMidiin

Flags: Read / Write

Allowed values: [0,16]

Default value: 1

Since: 3.0.0

### The `“device”` property

      “device”                   char *

The core audio sequencer indentifier

Owner: AgsCoreAudioMidiin

Flags: Read / Write

Default value: "hw:0"

Since: 3.0.0