Basic Processing Configuration Mode
The Basic Processing Configuration Mode is used to support older Mimi Processors which only supported Mimi Media Sound Personalization. This configuration allows you to specify the personalization mode and define applicators for processing parameters including isEnabled, intensity, and preset.
Session Activation with a MimiBasicProcessingConfiguration
Before activating a MimiProcessingSession, the preset Tech-Level should be read from the Mimi Processing System on the device/headphones.
Personalization Modes
Currently, two Personalization modes i.e. FineTuning (which is the recommended option) and SinglePreset are supported. The FineTuning mode provides up to three presets (up, down and default) whereas the SinglePreset mode provides one personalization preset. The presets are based on the user’s hearing profile.
Note: The three (up, down and default) FineTuning presets are available depending on the user’s hearing profile and there may be cases where it is not possible to generate the either the up preset or the down preset. In such cases. However, the default preset will be available.
An example MimiProcessingSession for a Fine Tuning type of Personalization for a Tech-level 4 Processor can be activated as follows:
do {
// Read Tech-Level from the Mimi Processor on the device
let fitting = MimiPersonalization.Fitting.techLevel(4) // An example fitting, yours will be defined by the Mimi Processor on the device.
let configuration = try MimiBasicProcessingConfiguration {
SoundPersonalization {
FineTuning(fitting: fitting)
Applicators {
IsEnabled { value in
// Apply the isEnabled value to your audio processing system
}
Intensity { value in
// Apply the intensity value to your audio processing system
}
Preset { value in
// Apply the preset value to your audio processing system
}
}
}
}
let session = try await MimiCore.shared.processing.activate(configuration: configuration)
} catch {
// Handle activation failure
}
Application timeout
It is also possible to set a timeout for the application of a value in the IsEnabled, Intensity and Preset applicators. If the value application exceeds this timeout, it will cause the entire value application sequence to fail.
let configuration = try MimiBasicProcessingConfiguration {
SoundPersonalization {
FineTuning(fitting: fitting)
Applicators {
IsEnabled(timeout: 0.5) { value in
// Apply the isEnabled value or throw an error.
// If the timeout is exceeded, it causes the value application sequence to fail
// and throws the ParameterError.applyTimeoutExceeded error.
}
Intensity { value in
// Apply the intensity value to your audio processing system
}
Preset { value in
// Apply the preset value to your audio processing system
}
}
}
}
Once there is an activated MimiProcessingSession, it is possible to access the processing parameters and configure them appropriately.
- Activating a session will set the
sessionproperty on theMimiProcessingControllerallowing the session to be easily referenced. - Only a single session can be activated at one time.
MimiProcessingController.sessionPublisheris aAnyPublisherand can be subscribed for changes that occur during the activation & deactivation of a session.
Tip: Most partner integrations will only need to use a single MimiProcessingSession that roughly aligns with the headphone connectivity lifecycle.
Basic Processing Configuration Mode Reference