Master Audio Integration with SALSA LipSync: SalsaMasterAudio
(UPDATE) 2019-06-22 version 2.0.0: initial release for SALSA LipSync v2.
We've created a set of helper-scripts to link up Dark Tonic's Master Audio Playlist functionality with our SALSA LipSync asset. This workflow allows you to drive lip-sync from a playlist created and managed in Master Audio.
The asset package download contains two C# helper-scripts, one for integrating with Playlists, the other for integrating with Master Audio Groups.
PLEASE NOTE: Master Audio is an awesome, top-selling, top-rated Unity asset created by Dark Tonic and is not affiliated with, or supported by Crazy Minnow Studio. Please contact Dark Tonic Games for information about Master Audio.
Brief instructions are available below, but you can watch the short video on our YouTube channel and follow along if you prefer.
NOTE: While every attempt has been made to ensure the safe content and operation of these files, they are provided as-is, without warranty or guarantee of any kind. By downloading and using these files you are accepting any and all risks associated and release Crazy Minnow Studio, LLC of any and all liability.
The SALSA LipSync Unity asset listens for Master Audio's PlaylistController.SongChanged event and updates its AudioSource with the currently playing clip.
- Download and import the helper-script unitypackage into your project.
- Add a Master Audio prefab to your scene via the Master Audio Manager window.
- Setup a new playlist and add clips. NOTE: you may want/need to 'Override' the playlist's 'Crossfade Mode' and set the time to 0.
- Add a Playlist Controller prefab to your scene via the Master Audio Manager window.
- Configure the Playlist Controler GameObject to use the new playlist created in step #3.
- Add SALSA LipSync to your GameObject.
- Add SalsaMasterAudioPlaylist helper-script to the GameObject using SALSA (as shown in the screenshot).
- Choose whether to mute the Master Audio playlist (recommended).
- Choose whether to autodetect (recommended), force, or ignore Playlist synchronization (see Release Notes section below)
- Link the Playlist Controller (from step #4) to the helper-script's 'Playlist' slot.
- Play your scene for some playlist-driven, lip-syncing goodness.
Master Audio's PlaySoundResult is linked up with SALSA LipSync and when programatically accessed, Master Audio plays a clip from the group and SALSA is linked to the AudioSource Master Audio plays through.
NOTE: this requires some sort of programatic access to the public SalsaMasterAudioGroup.PlayDialog() method. Implementing this in your project is beyond the scope of support for this add-on and SALSA LipSync in general. In the included example scene, a UGUI button is linked to call the method.
- Download and import Master Audio, SALSA LipSync Suite, AND this add-on (SalsaMasterAudio) into your project.
- Create and name your Master Audio Group(s) according to the Master Audio documentation.
- Configure a character model with SALSA and confirm it is working.
- Add SalsaMasterAudioGroup helper-script to the GameObject using SALSA (as shown in the screenshot).
- Configure a way to call the group playback (i.e. a GUI button as in the demo scene)
- Play the scene and invoke the PlayDialog() method (using step #5).
- Using Master Audio to drive/feed SALSA's lip-sync technology with audio clips has the side effect of both Master Audio and SALSA playing the same clip simultaneously. While this may not be perceptable on some systems, odds are it is not desireable whether it is audible or not. A boolean flag is now available that will mute the Master Audio Playlist. This is applied in Awake(), so changes during runtime will not affect script logic. However, this can be overridden at runtime, externally in other scripts or actions if desired.
- Master Audio's playlist synchronization feature may produce timing issues with SALSA's lip-sync audio clip timing when using earlier versions of this script (prior to v1.0.2). This effect will not be noticeable when using the "mute" feature in Release Notes item #1 and lip-synchronization itself is not affected. Master Audio Playlist Synchronization functionality is now supported in this helper script (v1.0.2+). There are two options available: "Autodetect Sync Mode" and "Force Sync Mode". Autodetect will check the current clip's SongFadeInPosition mode and if set to "Synchronize Clips", SALSA's AudioSource.time will be synchronized with the Master Audio Playlist's current AudioSource.time. If, for some reason, autodetect mode is not working correctly, use "Force Sync Mode" to indiscriminately force SALSA's AudioSource to synchronize with the Master Audio Playlist's AudioSource. NOTE: "Force Sync Mode" overrides the "autodetect" mode.
Check out the short video tutorial/demonstration:
Simple Automated Lip Sync Approximation
~ We look forward to seeing what you create! ~