As sonic Pi sounds can be recorded to WAV files, is this still possible in the latest version of Sonic PI doing this programmatically using OSC?
I am currently on v4.5.1.
Based on older comments (however <=2018) I was trying out with OSC command from python, I see the logs in the sonic pi cues window, but nothing gets recorded, nor audio can be heared nor a WAV file is saved.
from pythonosc.udp_client import SimpleUDPClient
import uuid
import time
# Define the IP and port for Sonic Pi
ip = "192.168.0.206"
port = 4560
# Create the client to send OSC messages
client = SimpleUDPClient(ip, port)
# The song code you want to send to Sonic Pi
song_code = '''
use_bpm 120
live_loop :melody do
play :c4
sleep 0.5
play :e4
sleep 0.5
play :g4
sleep 1
end
'''
# Generate a unique identifier (UUID) for this code run
code_uuid = str(uuid.uuid4())
# Filepath for the recording
output_filename = "Users/USER/test/testfile.wav"
# Start recording
client.send_message('/start-recording', [output_filename])
# Give some time for Sonic Pi to start recording
time.sleep(1)
# Send the song code to Sonic Pi with a unique ID
client.send_message('/run-code-with-uuid', [code_uuid, song_code])
# Duration of the recording (make sure it covers the duration of your code)
recording_duration = 10 # seconds
time.sleep(recording_duration)
# Stop recording
client.send_message('/stop-recording', [])
# Give some time for Sonic Pi to finalize the recording
time.sleep(1)
print(f"Recording saved as {output_filename}")