File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22
33import { getCurrentFirmwareVersion } from '$lib/config/firmware' ;
44import { createLogger , isMidiRealtimeMessage , isMidiSystemMessage } from '$lib/utils/logger' ;
5- import { requestPermission as requestAudioPermission } from '$lib/stores/audioInput.svelte' ;
65
76interface MidiState {
87 access : MIDIAccess | null ;
@@ -302,12 +301,6 @@ function connectDevice(deviceId: string) {
302301 }
303302 _setDeviceConnected ( output , input || null ) ;
304303 logger . info ( 'Connected to MIDI device: ' + output . name ) ;
305-
306- // Request audio recording permission proactively after device connection
307- // This improves UX by not interrupting the user during recording
308- requestAudioPermission ( ) . catch ( ( error ) => {
309- logger . warn ( 'Failed to request audio permission: ' + ( error instanceof Error ? error . message : String ( error ) ) ) ;
310- } ) ;
311304 } else {
312305 _setDeviceConnectionError ( 'Selected device not found.' ) ;
313306 logger . error ( 'Device not found: ' + deviceId ) ;
Original file line number Diff line number Diff line change 22 import ' ../app.css' ;
33 import { locale } from ' svelte-i18n' ;
44 import { isDraggingOverWindow } from ' $lib/stores/dragDropStore' ;
5- import { initialize as initializeAudioInput } from ' $lib/stores/audioInput.svelte' ;
5+ import { midiState } from ' $lib/stores/midi.svelte' ;
6+ import { initialize as initializeAudioInput , requestPermission } from ' $lib/stores/audioInput.svelte' ;
67 import { onMount } from ' svelte' ;
8+ import { createLogger } from ' $lib/utils/logger' ;
79 import Footer from ' $lib/components/Footer.svelte' ;
810
11+ const logger = createLogger (' Layout' );
12+
913 let { children } = $props ();
1014
1115 // Initialize audio input store on mount
1216 onMount (() => {
1317 initializeAudioInput ();
1418 });
1519
20+ // Request audio permission when MIDI device connects
21+ // This improves UX by avoiding interruption during recording
22+ $effect (() => {
23+ if (midiState .isConnected ) {
24+ logger .info (' MIDI device connected, requesting audio permission...' );
25+ requestPermission ().catch ((error ) => {
26+ logger .warn (' Failed to request audio permission: ' + (error instanceof Error ? error .message : String (error )));
27+ });
28+ }
29+ });
30+
1631 const locales = [
1732 { code: ' en' , name: ' English' },
1833 { code: ' de' , name: ' Deutsch' },
You can’t perform that action at this time.
0 commit comments