HomeGamesUpdatesPricingMethodology
Steam News19 January 20188y ago

v1.3.0: EXA Remix, Recorder Options, Loop Duration Handles

Announcing “EXA Remix” -- a new way to load, play, and customize EXA performances in other apps! Any app built with Unity can import the “EXA Remix” tool to gain these musical-performance superpowers.

Full notes

Full EXA: The Infinite Instrument update

Read the full published notes in a cleaner layout. The original post stays linked below.

What changed

15 fixes10 additions8 changes0 removals
  • UI and audio
  • Events
  • Balance
  • Performance
  • Gameplay
  • Fixes
addedAnnouncing “EXA Remix” -- a new way to load, play, and customize EXA performances in other apps! Any app built with Unity can import the “EXA Remix” tool to gain these musical-performance superpowers. Imagine seeing your performances on a stage in a social app, playing in a room of your VR “home” app, or remixed into an interactive, audio-reactive, music-video world… it’s all possible now! Collaboration talks with a few well-known VR apps are already underway – please share your ideas and EXA-powered-app wishlist on the discussion boards . Also, the loop-recording process is better than ever. You can now set options directly on the recorder interface: the recording mode, initial quantization level, and the ability to automatically stop recording after a particular duration. While recording, a new “Cancel” button lets you reset the recorder interface without performing the old stop+delete+move steps. This release also includes an improved loop-duration menu (with on-loop trimming handles), a new 200% maximum on the loop/section “Volume” sliders, a new 64-sound maximum on the “Max Voices” slider, better contrast between menus and the section panel, improved performance via parallel processing, and several other fixes and improvements. Thank you to the EXA community for the feedback and ideas! Please watch/share the new update video below, and read through this page to learn more.
addedEXA REMIXWith the new “EXA Remix” tool, any Unity app (VR or not) can load, play, and customize EXA performances. Developers and artists can “remix” the entire performance – the appearance of the ringers and avatars, the position and scale of all the ringers, create audio-reactive environments, apply audio effects, play multiple performances simultaneously, and more!
addedEXA REMIXAn internal prerequisite for building “EXA Remix” was performing a major refactor/restructure to the EXA code. In general, this process created a much cleaner separation between EXA’s logic and its display. For example, all the rules and functionality for playing a loop are now separated from the loop’s visible interface and toggle buttons. This refactor should not impact the app in any visible way, but it’s always possible that (despite lots of testing) it created new, unknown bugs.
addedLOOP RECORDERThe loop recorder interface now has a menu with various recording options. This menu opens and closes directly from the recorder interface, by selecting the large button at the right side. These menu options are reset at the start of each session, but are maintained across recordings within a session. They can be changed at any time before a recording starts.
addedLOOP RECORDERThe menu’s first option specifies whether the recording should capture Ringer events, Motion events, or both. This option has been present in recent releases, but has now moved within this new recorder menu. By default, both types of events are included in the recording.
changedLOOP RECORDERThe next option specifies the quantization level of the recording. This option does not affect the raw recording, only the timing of the notes during playback. The loop’s quantization level can always be changed later via the “Loops > Levels > Quantize” slider. This option was previously placed in the “Application > Audio” menu, as the “Auto-Loop Quantize” slider, but is now moved to this recorder menu. The default value is “None”.
the “Application > Audio > Max Voices” slider’s top threshold4864the “Application > Audio > Max Voices” slider’s top threshold increased, buff

EXA: The Infinite Instrument changes

addedAnnouncing “EXA Remix” -- a new way to load, play, and customize EXA performances in other apps! Any app built with Unity can import the “EXA Remix” tool to gain these musical-performance superpowers. Imagine seeing your performances on a stage in a social app, playing in a room of your VR “home” app, or remixed into an interactive, audio-reactive, music-video world… it’s all possible now! Collaboration talks with a few well-known VR apps are already underway – please share your ideas and EXA-powered-app wishlist on the discussion boards . Also, the loop-recording process is better than ever. You can now set options directly on the recorder interface: the recording mode, initial quantization level, and the ability to automatically stop recording after a particular duration. While recording, a new “Cancel” button lets you reset the recorder interface without performing the old stop+delete+move steps. This release also includes an improved loop-duration menu (with on-loop trimming handles), a new 200% maximum on the loop/section “Volume” sliders, a new 64-sound maximum on the “Max Voices” slider, better contrast between menus and the section panel, improved performance via parallel processing, and several other fixes and improvements. Thank you to the EXA community for the feedback and ideas! Please watch/share the new update video below, and read through this page to learn more.
addedWith the new “EXA Remix” tool, any Unity app (VR or not) can load, play, and customize EXA performances. Developers and artists can “remix” the entire performance – the appearance of the ringers and avatars, the position and scale of all the ringers, create audio-reactive environments, apply audio effects, play multiple performances simultaneously, and more!
addedAn internal prerequisite for building “EXA Remix” was performing a major refactor/restructure to the EXA code. In general, this process created a much cleaner separation between EXA’s logic and its display. For example, all the rules and functionality for playing a loop are now separated from the loop’s visible interface and toggle buttons. This refactor should not impact the app in any visible way, but it’s always possible that (despite lots of testing) it created new, unknown bugs.
addedThe loop recorder interface now has a menu with various recording options. This menu opens and closes directly from the recorder interface, by selecting the large button at the right side. These menu options are reset at the start of each session, but are maintained across recordings within a session. They can be changed at any time before a recording starts.
addedThe menu’s first option specifies whether the recording should capture Ringer events, Motion events, or both. This option has been present in recent releases, but has now moved within this new recorder menu. By default, both types of events are included in the recording.

Announcing “EXA Remix” -- a new way to load, play, and customize EXA performances in other apps! Any app built with Unity can import the “EXA Remix” tool to gain these musical-performance superpowers. Imagine seeing your performances on a stage in a social app, playing in a room of your VR “home” app, or remixed into an interactive, audio-reactive, music-video world… it’s all possible now! Collaboration talks with a few well-known VR apps are already underway – please share your ideas and EXA-powered-app wishlist on the discussion boards . Also, the loop-recording process is better than ever. You can now set options directly on the recorder interface: the recording mode, initial quantization level, and the ability to automatically stop recording after a particular duration. While recording, a new “Cancel” button lets you reset the recorder interface without performing the old stop+delete+move steps. This release also includes an improved loop-duration menu (with on-loop trimming handles), a new 200% maximum on the loop/section “Volume” sliders, a new 64-sound maximum on the “Max Voices” slider, better contrast between menus and the section panel, improved performance via parallel processing, and several other fixes and improvements. Thank you to the EXA community for the feedback and ideas! Please watch/share the new update video below, and read through this page to learn more.

DEV UPDATE VIDEO

https://www.youtube.com/watch?v=gZC3RFyg9O8 (https://www.youtube.com/watch?v=gZC3RFyg9O8)

SHARE EXA

EXA REMIX

  • With the new “EXA Remix” tool, any Unity app (VR or not) can load, play, and customize EXA performances. Developers and artists can “remix” the entire performance – the appearance of the ringers and avatars, the position and scale of all the ringers, create audio-reactive environments, apply audio effects, play multiple performances simultaneously, and more!

  • Want to learn more? Check out the “EXA Remix” documentation , and contact Zach (zach at aesthetic interactive dot com) to get started.

  • An internal prerequisite for building “EXA Remix” was performing a major refactor/restructure to the EXA code. In general, this process created a much cleaner separation between EXA’s logic and its display. For example, all the rules and functionality for playing a loop are now separated from the loop’s visible interface and toggle buttons. This refactor should not impact the app in any visible way, but it’s always possible that (despite lots of testing) it created new, unknown bugs.

LOOP RECORDER

  • The loop recorder interface now has a menu with various recording options. This menu opens and closes directly from the recorder interface, by selecting the large button at the right side. These menu options are reset at the start of each session, but are maintained across recordings within a session. They can be changed at any time before a recording starts.

  • The menu’s first option specifies whether the recording should capture Ringer events, Motion events, or both. This option has been present in recent releases, but has now moved within this new recorder menu. By default, both types of events are included in the recording.

  • The next option specifies the quantization level of the recording. This option does not affect the raw recording, only the timing of the notes during playback. The loop’s quantization level can always be changed later via the “Loops > Levels > Quantize” slider. This option was previously placed in the “Application > Audio” menu, as the “Auto-Loop Quantize” slider, but is now moved to this recorder menu. The default value is “None”.

  • The last option specifies a pre-determined recording duration. It can automatically stop the recording after 1, 2, 4, or 8 measures. Otherwise, the “None” option allows the player to stop the recording at any time (i.e. the original recorder behavior). The default value is “None”.

  • While recording, a new “Cancel” button appears at the far left side of the recorder interface. This button uses a long-hover interaction (just like a “Delete” button). At any point during recording, using the cancel button will erase the recorded events and reset the recording interface to its original state. This “Cancel” action is perfect for the “retry recording” usage scenario, as it bypasses all the previous tedious steps (stop the recording + delete the newly-formed loop + move the recording interface back to its former position).

  • Updated the loop/section volume sliders to go up to 200%. If both the loop and its containing section are set to 200%, this leads to a maximum volume of 400%. As the volume increases above 100%, the notes in a loop’s chart fade to near-white color.

  • Added an always-on audio compressor that prevents the overall audio signal from exceeding 100% volume in most scenarios. This affects both in-app and exported audio.

  • Increased the “Application > Audio > Max Voices” slider’s top threshold from 48 to 64. This allows more sounds to play simultaneously. Increasing this value requires more time for audio processing, and it reduces the number/frequency of sound-truncation that must occur to keep the audio system within the “Max Voices” threshold.

  • Increased the “fade-out” duration (roughly 4x) for sounds that get truncated by the “Max Voices” threshold. This should make the truncations slightly less noticeable (note: the quietest, lowest-priority sounds get truncated first), and reduces the potential for audio pops/cracks that can occur when stopping playback too abruptly.

  • Updated the notes created by the “bow” and “prox” tools to have higher priority with regard to the “Max Voices” threshold. These notes, whether performed live or within a loop, are now much less likely to be truncated (vs. notes from the “strike” tool) when there to too many simultaneous sounds.

OTHER

  • Redesigned the loop duration menu. The menu now has a toggle at the top for “trim” and “grow” modes. The “start” and “end” areas are side-by-side again, but no longer need to use positive and negative numbers. You can change these “start” and “end” values via up/down buttons, or select its large number button to open a new keypad interface. In “trim” mode, you can also grab/drag the new “handles” (placed directly on the loop’s chart) to set the start and end beats.

  • Darkened the backgrounds of the loop chart and the section rows. This creates a bit of contrast when menu interfaces overlap the section panel.

  • Implemented a new method of parallel processing that does not generate memory allocations (i.e. GC alloc) during each frame. This means that the app now requires no extra memory cleanups (i.e. garbage collector executions), thus gaining the performance advantages of parallel processing, while avoiding occasional framerate hits/stutters caused by automatic memory cleanups.

  • Upgraded to Unity 2017.3 (from Unity 5.6).

  • Upgraded to SteamVR 1.2.3 (from SteamVR 1.2.1).

FIXES

  • Fixed issue causing the early cutoff of a loop’s exported audio. This was a regression issue from the recent section export feature, caused by the loop sending "note-off" events prematurely during the export process.

  • Fixed issue causing a section’s “play” ringer to have areas that cannot be struck, occurring in scenarios where the section has grown very tall. This was caused by EXA’s feature that disables interface elements when they are outside your field-of-view. In the failure scenario, the tall ringer’s sample points (its corners and exact center) were all out of view, while some other portion of the ringer is visible. The new solution no longer checks the ringer itself, but instead checks whether each new “ringer strike” position is in view.

  • Fixed issue causing layout-saving and loop-cloning to fail, occurring in scenarios (after loading a layout) when a Soundfont file required by a loop is either missing or failed to load.

  • Fixed issue with in-section loop playback, where dragging the loop left/right would sometimes cause the loop to capture dozens (or hundreds) of in-the-past note events (i.e. everything from the first loop beat to the current one). These were then sent to the audio system, which occasionally caused issues due to the excessive number of events to process all at once.

  • Fixed issue where a loop (that was recorded in the current session) could restart its recording process after restarting the metronome, caused by the reset of the metronome’s beat combined with the loop failing to reset an internal “start recording at beat” value. This issue lead to some strange outcomes, including the presence of multiple recording interfaces.

  • Fixed issue where the last note (from a bow/prox tool) of an in-section loop could ring out indefinitely in certain scenarios.

  • Fixed issue causing certain Soundfonts (with long decay times) to ring for an excessive amount of time after bowing a ringer. In these scenarios, the audio system now uses the default "strike" tool decay time.

  • Fixed issue where the avatar moves incorrectly, occurring in scenarios where the loop duration has been trimmed and/or the loop playback goes directly from “once” to “looped” (or the opposite) without first stopping the loop.

  • Fixed issue where the avatar headset starts in the incorrect position, then gradually slides to its expected position, occurring in scenarios where the cached avatar is being reused in a different loop.

  • Fixed issue causing the loop-chart’s “beat number” labels to appear incorrectly, including scenarios where only the first “16” label appears, and others where the labels did not disappear after trimming the loop.

  • Fixed issue causing the "loop volume" slider to always show the "(various)" label when adjusting the volume of multiple loops.

  • Fixed issue causing a tool “cursor tail” to flash incorrectly when switching tool types, occurring in scenarios after a “mute” tool has been used to strike an interface ringer (metronome, loop, section).

  • Fixed issue causing the lights within a triangle-shaped ringer to be positioned incorrectly.

PATCH 1

  • Fixed issue with the motion-avatar playback when one of its related ringers gets deleted. This was a regression issue related to the refactoring in v1.3.0.

PATCH 2

  • Added support for mixed-reality views using MixCast (currently for Vive only). The MixCast icon appears only if you have MixCast Studio installed and have a camera other than "None" selected. Use Ctrl+Shift+L to hide the gray MixCast icon.

  • Fixed issues with the avatar handles/tools that would occur when switching between Vive- and Oculus-created layouts.

Source

Steam News / 19 January 2018

Open original post

Changelog.gg summarizes and formats this update. How we read updates.