ABAudiobusController Class Reference

Audiobus Controller. More...

#import <ABAudiobusController.h>

Inherits NSObject.

Instance Methods

(id) - initWithApiKey:
 Initializer.
 
(void) - startNetworkCommunications
 Explicitly enable networking, to communicate with Audiobus.
 
Triggers
(void) - addTrigger:
 Add a trigger.
 
(void) - addLocalOnlyTrigger:
 Same as addTrigger whith the difference that the trigger is not shown in AB Remote.
 
(void) - addRemoteTrigger:
 Add a trigger which is only shown in Audiobus Remote.
 
(void) - addRemoteTriggerMatrix:rows:cols:transposable:
 Add a grid matrix of triggers for Audiobus Remote.
 
(void) - addRemoteTriggerMatrix:rows:cols:
 
(void) - removeTrigger:
 Remove a trigger.
 
(ABPort *) - portWithUniqueID:
 Returns the port with a given unique ID or Nil when not found.
 
(ABPort *) - portWithName:
 Returns the port with a given name or Nil when not found.
 
(NSArray *) - allPorts
 Returns an array of objects of type ABPort*.
 

Class Methods

(void) + resetAllPeeredConnections
 Reset all peered Audiobus controllers.
 

Audio ports

NSArray * audioSenderPorts
 Currently defined sender ports.
 
NSArray * audioFilterPorts
 Currently defined filter ports.
 
NSArray * audioReceiverPorts
 Currently defined receiver ports.
 
NSArray * MIDISenderPorts
 Currently defined MIDI ports.
 
NSArray * MIDIFilterPorts
 Currently defined MIDI Filter ports.
 
NSArray * MIDIReceiverPorts
 Currently defined MIDI Receiver ports.
 
(void) - addAudioSenderPort:
 Add a sender port.
 
(void) - addSenderPort:
 Deprecated.
 
(ABAudioSenderPort *) - audioSenderPortNamed:
 Access a sender port.
 
(ABAudioSenderPort *) - senderPortNamed:
 Deprecated.
 
(void) - removeAudioSenderPort:
 Remove a sender port.
 
(void) - removeSenderPort:
 Deprecated.
 
(void) - sortAudioSenderPortsUsingComparitor:
 Sort the sender ports.
 
(void) - sortSenderPortsUsingComparitor:
 Deprecated.
 
(NSArray *senderPorts) - __deprecated_msg
 Deprecated.
 
(void) - addAudioFilterPort:
 Add a filter port.
 
(void) - addFilterPort:
 Deprecated.
 
(ABAudioFilterPort *) - audioFilterPortNamed:
 Get the filter port.
 
(ABAudioFilterPort *) - filterPortNamed:
 Deprecated.
 
(void) - removeAudioFilterPort:
 Remove a filter port.
 
(void) - removeFilterPort:
 Deprecated.
 
(void) - sortAudioFilterPortsUsingComparitor:
 Sort the filter ports.
 
(void) - sortFilterPortsUsingComparitor:
 Deprecated.
 
(NSArray *filterPorts) - __deprecated_msg
 Deprecated.
 
(void) - addAudioReceiverPort:
 Add a receiver port.
 
(void) - addReceiverPort:
 Deprecated.
 
(ABAudioReceiverPort *) - audioReceiverPortNamed:
 Access a receiver port.
 
(ABAudioReceiverPort *) - receiverPortNamed:
 Deprecated.
 
(void) - removeAudioReceiverPort:
 Remove a receiver port.
 
(void) - removeReceiverPort:
 Deprecated.
 
(void) - sortAudioReceiverPortsUsingComparitor:
 Sort the receiver ports.
 
(void) - sortReceiverPortsUsingComparitor:
 Deprecated.
 
(NSArray *receiverPorts) - __deprecated_msg
 Deprecated.
 
(void) - addMIDISenderPort:
 Add a MIDI port.
 
(void) - removeMIDISenderPort:
 Remove a MIDI port.
 
(void) - sortMIDISenderPortsUsingComparitor:
 Sort the MIDI ports.
 
(ABMIDISenderPort *) - MIDISenderPortNamed:
 Get the MIDI Port.
 
(void) - addMIDIFilterPort:
 Add a MIDI Filter port.
 
(void) - removeMIDIFilterPort:
 Remove a MIDI Filter port.
 
(void) - sortMIDIFilterPortsUsingComparitor:
 Sort the MIDI Filter ports.
 
(ABMIDIFilterPort *) - MIDIFilterPortNamed:
 Get the MIDI Filter port.
 
(void) - addMIDIReceiverPort:
 Add a MIDI Receiver port.
 
(void) - removeMIDIReceiverPort:
 Remove a MIDI Receiver port.
 
(void) - sortMIDIReceiverPortsUsingComparitor:
 Sort the MIDI Receiver ports.
 
(ABMIDIReceiverPort *) - MIDIReceiverPortNamed:
 Get the MIDI Receiver port.
 

Properties

BOOL allowsConnectionsToSelf
 Whether to allow this app to connect its input to its own output.
 
ABConnectionPanelPosition connectionPanelPosition
 Connection panel position.
 
BOOL connectionPanelVisible
 Whether connection panel is visible.
 
CGRect connectionPanelFrame
 The current connection panel frame (in window coordinates)
 
NSSet * peers
 All available peers .
 
NSSet * connectedPeers
 All peers that are connected as part of the current session.
 
NSSet * connectedPorts
 All ports that are connected as part of the current session.
 
BOOL connected
 Whether the app is connected to anything via Audiobus or Inter-App Audio.
 
BOOL audiobusConnected
 Whether the app is connected to anything via Audiobus specifically (not Inter-App Audio)
 
BOOL audiobus2Connected
 Whether your app is connected to anything via Audiobus 2 specifically (not Inter-App Audio)
 
BOOL audiobus3AndHigherConnected
 Whether your app is connected to anything via Audiobus 3 specifically (not Inter-App Audio)
 
BOOL interAppAudioConnected
 Whether the port is connected via Inter-App Audio.
 
BOOL audiobusMIDIPortConnected
 Whether the MIDI port is connected to Audiobus.
 
BOOL audiobusAppRunning
 Whether the Audiobus app is running on this device.
 
id
< ABAudiobusControllerStateIODelegate
stateIODelegate
 State input/output delegate.
 
void(^ prepareForNetworkCommunicationsBlock )(void(^continueBlock)(void))
 Prepare to enable network communications.
 
void(^ showInterAppAudioTransportPanelBlock )(BOOL showPanel)
 Set this block to be informed wether your app should show or hide its Inter-App audio transport panel.
 
void(^ enableReceivingCoreMIDIBlock )(BOOL receivingEnabled)
 For apps with MIDI Receiver ports: Set this block to prevent receiving Core MIDI events twice.
 
void(^ enableSendingCoreMIDIBlock )(BOOL sendingEnabled)
 For Apps with MIDI sender ports: Set this block to prevent double MIDI routings.
 
(BOOL
memberOfActiveAudiobusSession) 
- __deprecated_msg
 Whether the app is part of an active Audiobus session.
 
(void) - setNeedsStatusBarAppearanceUpdate
 In some cases the status bar is managed by Audiobus.
 

Detailed Description

Audiobus Controller.

The main Audiobus class. Create an instance of this then create and add receiver, sender and/or filter ports as required.

Method Documentation

+ (void) resetAllPeeredConnections

Reset all peered Audiobus controllers.

Call this to forget all established connections with instances of the Audiobus app.

The first time there is an incoming connection from the Audiobus app, the Audiobus library will prompt the user for permission to allow the connection. Calling this method will forgot all granted permissions, so that the next incoming Audiobus connection will cause another prompt to accept or deny the connection.

- (id) initWithApiKey: (NSString *)  apiKey

Initializer.

Parameters
apiKeyYour app's API key (find this at the bottom of your app's details screen accessible from https://developer.audiob.us/apps)
- (void) startNetworkCommunications

Explicitly enable networking, to communicate with Audiobus.

If your app provides an audio receiver port, you should call this method from your app delegate's application:openURL:sourceApplication:annotation: method if the URL given ends with ".audiobus", like so:

if ( [url.scheme hasSuffix:@".audiobus"] ) {
[self.audiobusController startNetworkCommunications];
}

Then, tell the Audiobus SDK that it is safe to defer network start by adding to your Info.plist the key "ABShouldDeferNetworkStart" with boolean value YES.

Neither of these steps are required if you do not provide an audio receiver port.

Further discussion:

On iOS 14, users are prompted to allow local networking when the Audiobus SDK first opens network communications, required for Audiobus to function. To improve user experience, the Audiobus SDK defers starting networking on iOS 14 until the app is hosted within Audiobus. This is handled automatically for sender and filter ports, but if your app has an audio receiver port, you must perform the above steps to allow the Audiobus SDK to act when the app is opened from Audiobus via its ".audiobus" URL.

See also: prepareForNetworkCommunicationsBlock property.

- (void) addTrigger: (ABTrigger *)  trigger

Add a trigger.

This method allows you to define and add triggers that the user can invoke from outside your app, in order to make your app perform some function, such as toggling recording.

Calling this method more than once with the same trigger will have no effect the subsequent times.

Parameters
triggerThe trigger
- (void) addLocalOnlyTrigger: (ABTrigger *)  trigger

Same as addTrigger whith the difference that the trigger is not shown in AB Remote.

- (void) addRemoteTrigger: (ABTrigger *)  trigger

Add a trigger which is only shown in Audiobus Remote.

Triggers added by this method are only shown within Audiobus Remote. Use this method and addRemoteTriggerMatrix:rows:cols: to provide extended functionality for your app which can be used from within Audiobus Remote.

Parameters
triggerThe trigger
- (void) addRemoteTriggerMatrix: (NSArray *)  triggers
rows: (NSUInteger)  rows
cols: (NSUInteger)  cols
transposable: (BOOL)  transposable 

Add a grid matrix of triggers for Audiobus Remote.

Triggers added by this method appear within Audiobus Remote as a grid of buttons. We recommend using this facility when a matrix layout is important to the user experience, such as with drum sample pads.

Please use this facility only if your button layout needs an explicit grid order. Otherwise, use addRemoteTrigger:, which allows Audiobus Remote to make better use of screen space.

Parameters
triggersAn array of triggers. Size of the array must be rows * cols.
rowsNumber of rows; limited to 6 rows maximum.
colsNumber of columns; limited to 6 cols maximum.
transposableIf transposable is true the matrix is transposed if space can be saved.
- (void) addRemoteTriggerMatrix: (NSArray *)  triggers
rows: (NSUInteger)  rows 
- (void) removeTrigger: (ABTrigger *)  trigger

Remove a trigger.

Calling this method more than once with the same trigger will have no effect the subsequent times.

Parameters
triggerTrigger to remove
- (ABPort*) portWithUniqueID: (uint32_t)  uniqueID

Returns the port with a given unique ID or Nil when not found.

- (ABPort*) portWithName: (NSString *)  name

Returns the port with a given name or Nil when not found.

- (NSArray*) allPorts

Returns an array of objects of type ABPort*.

- (void) addAudioSenderPort: (ABAudioSenderPort *)  port

Add a sender port.

Sender ports let your app send audio to other apps.

You can create several sender ports to offer several separate audio streams. For example, a multi-track recorder could define additional sender ports for each track, so each track can be routed to a different place.

Ideally, the first port you create should perform some sensible default behaviour: This will be the port that is selected by default when the user taps your app in the Audiobus port picker.

Parameters
portThe port to add
- (void) addSenderPort: ("Use addAudioSenderPort instead")  __deprecated_msg

Deprecated.

Use addAudioSenderPort instead.

- (ABAudioSenderPort*) audioSenderPortNamed: (NSString *)  name

Access a sender port.

If you are sending audio from a Core Audio thread, then you should not use this method from within the thread. Instead, obtain a reference to the sender object ahead of time, on the main thread, then store the pointer in a context directly accessible in the Core Audio thread, to avoid making any Objective-C calls from within the thread.

Parameters
nameName of port
Returns
Sender port
- (ABAudioSenderPort*) senderPortNamed: ("Use audioSenderPortNamed instead")  __deprecated_msg

Deprecated.

Use addAudioSenderPort instead.

- (void) removeAudioSenderPort: (ABAudioSenderPort *)  port

Remove a sender port.

It is your responsibility to make sure you stop accessing the port prior to calling this method.

Parameters
portThe port to remove
- (void) removeSenderPort: ("Use removeAudioSenderPort instead")  __deprecated_msg

Deprecated.

Use addAudioSenderPort instead.

- (void) sortAudioSenderPortsUsingComparitor: (NSComparator)  cmptr

Sort the sender ports.

This method allows you to assign an order to the sender ports. This is the order in which the ports will appear within Audiobus.

Parameters
cmptrComparitor block used to provide the order
- (void) sortSenderPortsUsingComparitor: ("Use sortAudioSenderPortsUsingComparitor instead")  __deprecated_msg

Deprecated.

Use sortAudioSenderPortsUsingComparitor instead.

- (NSArray* senderPorts) __deprecated_msg ("Use audioSenderPorts instead!") 

Deprecated.

Use audioSenderPorts instead.

- (void) addAudioFilterPort: (ABAudioFilterPort *)  port

Add a filter port.

Filter ports expose audio processing functionality to the Audiobus ecosystem, allowing users to use your app as an audio filtering node.

When you create a filter port, you pass in a block to be used to process the audio as it comes in.

Parameters
portThe filter port
- (void) addFilterPort: ("Use addAudioFilterPort instead")  __deprecated_msg

Deprecated.

Use addAudioFilterPort instead.

- (ABAudioFilterPort*) audioFilterPortNamed: (NSString *)  name

Get the filter port.

This is used to access the attributes of the connected ports. Note that the actual process of receiving and sending audio is handled automatically.

Parameters
nameThe name of the filter port
Returns
Filter port
- (ABAudioFilterPort*) filterPortNamed: ("Use audioFilterPortNamed instead")  __deprecated_msg

Deprecated.

Use audioFilterPortNamed instead.

- (void) removeAudioFilterPort: (ABAudioFilterPort *)  port

Remove a filter port.

Parameters
portThe port to remove
- (void) removeFilterPort: ("Use removeAudioFilterPort instead")  __deprecated_msg

Deprecated.

Use removeAudioFilterPort instead.

- (void) sortAudioFilterPortsUsingComparitor: (NSComparator)  cmptr

Sort the filter ports.

This method allows you to assign an order to the fiter ports. This is the order in which the ports will appear within Audiobus.

Parameters
cmptrComparitor block used to provide the order
- (void) sortFilterPortsUsingComparitor: ("Use sortAudioFilterPortsUsingComparitor instead")  __deprecated_msg

Deprecated.

Use sortAudioFilterPortsUsingComparitor instead.

- (NSArray* filterPorts) __deprecated_msg ("Use audioFilterPorts instead!") 

Deprecated.

Use audioFilterPorts instead.

- (void) addAudioReceiverPort: (ABAudioReceiverPort *)  port

Add a receiver port.

Receiver ports allow your app to receive audio from other apps.

MIDI that any receiver port can receive inputs from any number of sources. You do not need to create additional receiver ports to receive audio from multiple sources.

Ideally, the first port you create should perform some sensible default behaviour: This will be the port that is selected by default when the user taps your app icon in the Audiobus port picker.

Parameters
portThe receiver port
- (void) addReceiverPort: ("Use addAudioReceiverPort instead")  __deprecated_msg

Deprecated.

Use addAudioReceiverPort instead.

- (ABAudioReceiverPort*) audioReceiverPortNamed: (NSString *)  name

Access a receiver port.

If you are receiving audio from a Core Audio thread, then you should not use this method from within the thread. Instead, obtain a reference to the receiver object ahead of time, on the main thread, then store the pointer in a context directly accessible in the Core Audio thread, to avoid making any Objective-C calls from within the thread.

Parameters
nameName of port.
Returns
Receiver port
- (ABAudioReceiverPort*) receiverPortNamed: ("Use audioReceiverPortNamed instead")  __deprecated_msg

Deprecated.

Use audioReceiverPortNamed instead.

- (void) removeAudioReceiverPort: (ABAudioReceiverPort *)  port

Remove a receiver port.

It is your responsibility to make sure you stop accessing the port prior to calling this method.

Parameters
portThe port to remove
- (void) removeReceiverPort: ("Use removeAudioReceiverPort instead")  __deprecated_msg

Deprecated.

Use removeAudioReceiverPort instead.

- (void) sortAudioReceiverPortsUsingComparitor: (NSComparator)  cmptr

Sort the receiver ports.

This method allows you to assign an order to the receiver ports. This is the order in which the ports will appear within Audiobus.

Parameters
cmptrComparitor block used to provide the order
- (void) sortReceiverPortsUsingComparitor: ("Use sortAudioReceiverPortsUsingComparitor instead")  __deprecated_msg

Deprecated.

Use sortAudioReceiverPortsUsingComparitor instead.

- (NSArray* receiverPorts) __deprecated_msg ("Use audioReceiverPorts instead!") 

Deprecated.

Use audioReceiverPorts instead.

- (void) addMIDISenderPort: (ABMIDISenderPort *)  port

Add a MIDI port.

Sender ports let your app send MIDI to other apps.

You can create several MIDI ports to offer several separate MIDI streams. For example, a multi-track MIDI sequencer could define additional MIDI ports for each track, so each track can be routed to a different place.

Parameters
portThe port to add
- (void) removeMIDISenderPort: (ABMIDISenderPort *)  port

Remove a MIDI port.

It is your responsibility to make sure you stop accessing the port prior to calling this method.

Parameters
portThe port to remove
- (void) sortMIDISenderPortsUsingComparitor: (NSComparator)  cmptr

Sort the MIDI ports.

This method allows you to assign an order to the sender ports. This is the order in which the MIDI ports will appear within Audiobus.

Parameters
cmptrComparitor block used to provide the order
- (ABMIDISenderPort *) MIDISenderPortNamed: (NSString *)  name

Get the MIDI Port.

This is used to access the attributes of the connected ports.

Parameters
nameThe name of the MIDI port
Returns
MIDI port.
- (void) addMIDIFilterPort: (ABMIDIFilterPort *)  port

Add a MIDI Filter port.

Filter ports let your app transform MIDI received from other apps.

You can create several MIDI Filter ports to process several separate MIDI streams. For example, a multi-track MIDI arpeggiator could define additional MIDI Filter ports for each track, so each track can be routed to a different place.

Parameters
portThe port to add
- (void) removeMIDIFilterPort: (ABMIDIFilterPort *)  port

Remove a MIDI Filter port.

It is your responsibility to make sure you stop accessing the port prior to calling this method.

Parameters
portThe port to remove
- (void) sortMIDIFilterPortsUsingComparitor: (NSComparator)  cmptr

Sort the MIDI Filter ports.

This method allows you to assign an order to the filter ports. This is the order in which the MIDI ports will appear within Audiobus.

Parameters
cmptrComparitor block used to provide the order
- (ABMIDIFilterPort *) MIDIFilterPortNamed: (NSString *)  name

Get the MIDI Filter port.

This is used to access the attributes of the connected ports.

Parameters
nameThe name of the MIDI Filter port
Returns
MIDI Filter port.
- (void) addMIDIReceiverPort: (ABMIDIReceiverPort *)  port

Add a MIDI Receiver port.

Filter ports let your app receive MIDI from other apps.

You can create several MIDI Receiver ports to process several separate MIDI streams. For example, a multi-track MIDI recorder could define additional MIDI Filter ports for each track, so each track can be routed to a different place.

Parameters
portThe port to add
- (void) removeMIDIReceiverPort: (ABMIDIReceiverPort *)  port

Remove a MIDI Receiver port.

It is your responsibility to make sure you stop accessing the port prior to calling this method.

Parameters
portThe port to remove
- (void) sortMIDIReceiverPortsUsingComparitor: (NSComparator)  cmptr

Sort the MIDI Receiver ports.

This method allows you to assign an order to the filter ports. This is the order in which the MIDI ports will appear within Audiobus.

Parameters
cmptrComparitor block used to provide the order
- (ABMIDIReceiverPort *) MIDIReceiverPortNamed: (NSString *)  name

Get the MIDI Receiver port.

This is used to access the attributes of the connected ports.

Parameters
nameThe name of the MIDI Receiver port
Returns
MIDI Receiver port.
- (BOOL memberOfActiveAudiobusSession) __deprecated_msg ("You should now ignore this)  property
(and shut down your audio engine once)  disconnected
(regardless of Audiobus session state.")   

Whether the app is part of an active Audiobus session.

This now-deprecated property reflected whether your app is currently part of an active Audiobus session, which means the app has been used with Audiobus before, and the Audiobus app is still running.

We once requested that you observe this property in order to manage your app's lifecycle, and remain active in the background if an Audiobus session was still in progress (this property value was YES). Under Audiobus 3 later, we now prefer you shut down your app's audio engine once it becomes disconnected, so you should now ignore this property.

- (void) setNeedsStatusBarAppearanceUpdate

In some cases the status bar is managed by Audiobus.

Call this function when the status bar needs an update.

Property Documentation

- (NSArray*) audioSenderPorts
readnonatomicassign

Currently defined sender ports.

The sender ports you have registered with addSenderPort:, as an array of ABAudioSenderPort.

- (NSArray*) audioFilterPorts
readnonatomicassign

Currently defined filter ports.

The filter ports you have registered with addFilterPort:, as an array of ABAudioFilterPort.

- (NSArray*) audioReceiverPorts
readnonatomicassign

Currently defined receiver ports.

The receiver ports you have registered with addReceiverPort:, as an array of ABAudioReceiverPort.

- (NSArray*) MIDISenderPorts
readnonatomicassign

Currently defined MIDI ports.

The sender ports you have registered with addMIDISenderPort:, as an array of ABMIDISenderPorts.

- (NSArray*) MIDIFilterPorts
readnonatomicassign

Currently defined MIDI Filter ports.

The filter ports you have registered with addMIDIFilterPort:, as an array of ABMIDIFilterPorts.

- (NSArray*) MIDIReceiverPorts
readnonatomicassign

Currently defined MIDI Receiver ports.

The filter ports you have registered with addMIDIReceiverPort:, as an array of ABMIDIReceiverPorts.

- (BOOL) allowsConnectionsToSelf
readwritenonatomicassign

Whether to allow this app to connect its input to its own output.

If you set this to YES, then Audiobus will allow users to add your app in the input and output positions simultaneously, allowing the app's output to be piped back into its input.

If you wish to support this functionality, you must either (a) pass NULL for the audioUnit parameter of ABAudioSenderPort's initialiser, which will cause the port to create its own separate audio unit for the connection, and explicitly use ABAudioSenderPortSend to send audio, or (b) ensure the audioUnit parameter is distinct from your app's main audio unit (the one from which you call ABAudioReceiverPortReceive.

If you do not do this, your app's audio system will stop running once a connection to self is established, due to a loop in the audio unit connections. Note that this requirement has been newly introduced with Audiobus 3, for technical reasons. See the AB Receiver sample app for a demonstration of this functionality.

By default, this is disabled, as some apps may not function properly if their audio pipeline is traversed multiple times in the same time step.

- (ABConnectionPanelPosition) connectionPanelPosition
readwritenonatomicassign

Connection panel position.

This defines where the connection panel appears within your app, when necessary.

You can set this at any time, and the panel, if visible, will animate to the new location.

- (BOOL) connectionPanelVisible
readnonatomicassign

Whether connection panel is visible.

This property supports key-value observing.

- (CGRect) connectionPanelFrame
readnonatomicassign

The current connection panel frame (in window coordinates)

This property supports key-value observing. When the connection panel is hidden, this property will have the value CGRectZero.

- (NSSet*) peers
readnonatomicstrong

All available peers .

- (NSSet*) connectedPeers
readnonatomicstrong

All peers that are connected as part of the current session.

- (NSSet*) connectedPorts
readnonatomicstrong

All ports that are connected as part of the current session.

- (BOOL) connected
readnonatomicassign

Whether the app is connected to anything via Audiobus or Inter-App Audio.

Note that due to the asynchronous nature of Inter-App Audio connections within Audiobus when connected to peers using the 2.1 Audiobus SDK or above, you may see this property change to YES before the audiobusConnected and interAppAudioConnected are both YES.

- (BOOL) audiobusConnected
readnonatomicassign

Whether the app is connected to anything via Audiobus specifically (not Inter-App Audio)

Note that due to the asynchronous nature of Inter-App Audio connections within Audiobus when connected to peers using the 2.1 Audiobus SDK or above, you may see this property change to YES before the interAppAudioConnected property changes to YES, or vice versa.

- (BOOL) audiobus2Connected
readnonatomicassign

Whether your app is connected to anything via Audiobus 2 specifically (not Inter-App Audio)

Same as audiobusConnected but with the difference that the property becomes only true when your app is connected to Audiobus 2.

- (BOOL) audiobus3AndHigherConnected
readnonatomicassign

Whether your app is connected to anything via Audiobus 3 specifically (not Inter-App Audio)

Same as audiobusConnected but with the difference that the property becomes only true when your app is connected to Audiobus 3.

- (BOOL) interAppAudioConnected
readnonatomicassign

Whether the port is connected via Inter-App Audio.

Note that this property will also return YES when connected to Audiobus peers using the 2.1 SDK.

Note that due to the asynchronous nature of Inter-App Audio connections within Audiobus when connected to peers using the 2.1 Audiobus SDK or above, you may see this property change to YES before the audiobusConnected property changes to YES, or vice versa.

- (BOOL) audiobusMIDIPortConnected
readnonatomicassign

Whether the MIDI port is connected to Audiobus.

When your app provides at least one MIDI port this property reflects wether this port is connected to some other inter app audio instrument.

- (BOOL) audiobusAppRunning
readnonatomicassign

Whether the Audiobus app is running on this device.

- (id<ABAudiobusControllerStateIODelegate>) stateIODelegate
readwritenonatomicassign

State input/output delegate.

This delegate provides methods to save and load state specific to your app, in response to preset save and load operations from within Audiobus.

This feature is optional but recommended, as it allows your users to save and restore the state of your app as part of their workspace.

- (void(^ prepareForNetworkCommunicationsBlock)(void(^continueBlock)(void)))
readwritenonatomiccopy

Prepare to enable network communications.

This block will be called when the SDK needs to enable networking to communicate with Audiobus. This will happen when your app detects an incoming Inter-App Audio connection while Audiobus is installed, or when the app is launched using your ".audiobus" launch URL.

You may use this opportunity to prepare the user to receive a network permission prompt. If you provide a block via this property, you should call the 'continueBlock' provided when ready, which will cause the Audiobus SDK to request network access and begin communicating with Audiobus.

See also: startNetworkCommunications

- (void(^ showInterAppAudioTransportPanelBlock)(BOOL showPanel))
readwritenonatomiccopy

Set this block to be informed wether your app should show or hide its Inter-App audio transport panel.

When your app is connected to Audiobus the Inter-App audio transport panel needs to be hidden. Set a block here which shows / hides the panel depending on the parameter "hidePanel".

- (void(^ enableReceivingCoreMIDIBlock)(BOOL receivingEnabled))
readwritenonatomiccopy

For apps with MIDI Receiver ports: Set this block to prevent receiving Core MIDI events twice.

Audiobus will collect Core MIDI events and route it to your synth app. Thus your app might not want to receive these Core MIDI events directly from Core MIDI sources. Assign a block to this property which enables or disables Core MIDI receiving depending on the parameter "receivingEnabled".

- (void(^ enableSendingCoreMIDIBlock)(BOOL sendingEnabled))
readwritenonatomiccopy

For Apps with MIDI sender ports: Set this block to prevent double MIDI routings.

Assign a block to this property which enables or disables Core MIDI receiving depending on the parameter "sendingEnabled". Audiobus will call this block if it starts and stops receiving MIDI from your app. Thus we will prevent that apps connected to Audiobus receive MIDI twice from your MIDI controller: One time from via Audiobus and a second time directly.


The documentation for this class was generated from the following file: