| Line 116: |
Line 116: |
| | |} | | |} |
| | === Python === | | === Python === |
| − | Example demonstrating how to create audio: | + | Example demonstrating how to check your audio: |
| | <syntaxhighlight lang="python" line> | | <syntaxhighlight lang="python" line> |
| | #!/usr/bin/env python3.10 | | #!/usr/bin/env python3.10 |
| − | # -*- coding: utf-8 -*- | + | |
| | + | import psychopy |
| | + | print(psychopy.__version__) |
| | + | import sys |
| | + | print(sys.version) |
| | + | |
| | + | import keyboard |
| | + | from psychopy import prefs |
| | + | from psychopy import visual, core, event |
| | + | |
| | + | from psychopy.sound import backend_ptb |
| | + | # 0: No special settings (default, not optimized) |
| | + | # 1: Try low-latency but allow some delay |
| | + | # 2: Aggressive low-latency |
| | + | # 3: Exclusive mode, lowest latency but may not work on all systems |
| | + | backend_ptb.SoundPTB.latencyMode = 2 |
| | + | |
| | + | prefs.hardware['audioLib'] = ['PTB'] |
| | + | prefs.hardware['audioDriver'] = ['ASIO'] |
| | + | prefs.hardware['audioDevice'] = ['ASIO4ALL v2'] |
| | + | from psychopy import sound |
| | + | |
| | + | # --- OS-level audio device sample rate --- |
| | + | default_output = sd.query_devices(kind='output') |
| | + | print("\nDefault output device info (OS level):") |
| | + | print(f" Name: {default_output['name']}") |
| | + | print(f" Default Sample Rate: {default_output['default_samplerate']} Hz") |
| | + | print(f" Max Output Channels: {default_output['max_output_channels']}") |
| | + | |
| | + | # Confirm the audio library and output settings |
| | + | print(f"Using {sound.audioLib} for sound playback.") |
| | + | print(f"Audio library options: {prefs.hardware['audioLib']}") |
| | + | print(f"Audio driver: {prefs.hardware.get('audioDriver', 'Default')}") |
| | + | print(f"Audio device: {prefs.hardware.get('audioDevice', 'Default')}") |
| | + | |
| | + | audio_file = 'tick_rhythm_5min.wav' |
| | + | |
| | + | print("Creating sound...") |
| | + | wave_file = sound.Sound(audio_file) |
| | + | |
| | + | print("Playing sound...") |
| | + | wave_file.play() |
| | + | |
| | + | while not keyboard.is_pressed('q'): |
| | + | pass |
| | + | |
| | + | # Clean up |
| | + | print("Exiting...") |
| | + | win.close() |
| | + | core.quit() |
| | + | |
| | </syntaxhighlight> | | </syntaxhighlight> |
| | | | |