Play every tab's preview straight into the master (#368)
Since #351 the tabs played their asset along its links in the Master routing, as the game does. A song linked into a reverb bus was heard through that bus while it was edited. A preview should sound like the asset itself, so the tabs leave the Master routing out again. - The Sound, Sound FX, Instrument, Pattern and Song tab play into the master. The sound FX of the asset still applies, and so does the master's own volume and FX. - Inside a song its own routing of tracks and sends still counts. - The game is unchanged: Play nodes go along the routing as before. Tests: - e2e 34 (melektaus-atx): ALL PASSED, 96 checks. The routing check now holds the mix of the two buses as before, and the Sound tab on the master with the bus silent. - Counter-probe e2e: the Sound tab along the routing again, the routing check red. - Gate (melektaus-atx): CHECK EXIT 0, 274 files, 4230 tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1f13794b0c
commit
af2312a5e7
7 files changed
+30
-25
No files matched your search
@@ -7,7 +7,7 @@ import { volumeOf } from '../../core/properties/sounds';
|
||||
import { soundFxBuildFor, soundFxParams } from '../../core/soundfx/compile';
|
||||
import { Button, Dropdown, HStack, Label, Menu, NumberField, Stack, Theme } from '../../ui';
|
||||
import { soundLibrary } from '../../viewport/SoundLibrary';
|
||||
import { playedBus } from '../../core/music/mixer';
|
||||
import { MASTER_MIX } from '../../core/music/mixer';
|
||||
import { AssetTabEditor } from '../AssetTabEditor';
|
||||
import { GraphCanvas } from '../graph/GraphCanvas';
|
||||
import { SnapToggle } from '../graph/SnapToggle';
|
||||
@@ -106,10 +106,9 @@ export class SoundFxEditor extends AssetTabEditor<SoundFxAsset, GraphCanvas> {
|
||||
if (!sound?.asset.file || !plan) return;
|
||||
const props = resolveAssetProps(this.state.project, sound.asset);
|
||||
const fx = { plan, params: { ...this.values } };
|
||||
// Along the routing of the sound, as the game would play it there (#351).
|
||||
const bus = playedBus(this.state.project, '', sound.asset.id);
|
||||
// Straight into the master: a preview leaves the routing of the sound out (#368).
|
||||
const file = playedSoundOf(sound);
|
||||
const voice = soundLibrary.play(file, volumeOf(props), false, PREVIEW_OWNER, fx, bus);
|
||||
const voice = soundLibrary.play(file, volumeOf(props), false, PREVIEW_OWNER, fx, MASTER_MIX);
|
||||
if (voice) this.voices.push(voice);
|
||||
this.playedFor = asset.id;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user