Skip to content

Preset Parameter Data Sources

What are MimiPresetParameterDataSource and PersonalizationModeConfiguration?

A MimiPresetParameterDataSource defines from where the ProcessingSession retrieves its preset payload, whose value is ultimately what defines a user's Mimified audio experience.

When activating a ProcessingSession, you must provide the PersonalizationModeConfiguration, which describes the configuration of the MimiPresetParameterDataSource to be used.

Once activated, the ProcessingSession exposes the current MimiPresetParameterDataSource implementation class via the presetParameterDataSource property.

What is a Fitting?

The Fitting model provides information about the current processing environment and in turn how presets should be generated.

Consequently, when creating a PersonalizationModeConfiguration instance, you need to provide a Fitting whose properties match the current processing environment, such as the user's target headphones.

Current PersonalizationModeConfiguration options

The MSDK defines the personalization modes in PersonalizationModeConfiguration: - FineTuning (Up/Down Presets) - the recommended mode. - SinglePreset (previously named Default) - a legacy mode. - Group - provides personalization support for environments with multiple simultaneous users.

Fine Tuning Preset Parameter Data Source

The PersonalizationModeConfiguration.FineTuning mode provides one of three presets: up ("richer"), down ("softer") and default ("recommended") to the ProcessingSession.preset parameter.

The presets are determined by the hearing assessments of the currently active user.

Use this mode to enable the Sound Personalization preset selection ("Fine Tuning") feature on the Mimi Profile.

Note

The up & down presets are available depending on the user's hearing assessment. There might be cases where it is not possible to generate both the up & down presets.

val processingConfiguration = MimiProcessingConfiguration(
    personalization = PersonalizationConfiguration(
        mode = FineTuning(Fitting(TODO("Fitting is defined by your Processing system")))
    )
)

Alternatively, using the Processing Configuration DSL:

val processingConfiguration = mimiProcessingConfiguration {
    personalization {
        fineTuning { fitting = Fitting(TODO("Fitting is defined by your Processing system"))  } 
    }
}

Single Preset Parameter Data Source

The PersonalizationModeConfiguration.SinglePreset mode provides only one personalization preset to the ProcessingSession.preset parameter.

The presets are determined by the hearing assessments of the currently active user.

    val processingConfiguration = MimiProcessingConfiguration(
    personalization = PersonalizationConfiguration(
        mode = SinglePreset(Fitting(TODO("Fitting is defined by your Processing system")))
    )
)

Alternatively, using the Processing Configuration DSL:

val processingConfiguration = mimiProcessingConfiguration {
    personalization {
        singlePreset { fitting = Fitting(TODO("Fitting is defined by your Processing system"))  }
    }
}

Warning

This mode is considered legacy and is not recommended for new integrations using the MSDK Profile.

Group Mode Preset Parameter Data Source

The PersonalizationModeConfiguration.Group mode provides a single preset based upon the hearing assessments of the currently active group.

    val processingConfiguration = MimiProcessingConfiguration(
    personalization = PersonalizationConfiguration(
        mode = Group(Fitting(TODO("Fitting is defined by your Processing system")))
    )
)

Alternatively, using the Processing Configuration DSL:

val processingConfiguration = mimiProcessingConfiguration {
    personalization {
        group { fitting = Fitting(TODO("Fitting is defined by your Processing system"))  }
    }
}