Case
aiosendspin -> aiosendspin
Start the server first, then the client. The server loads the PCM audio derived from almost_silent.flac, the client advertises a listener and FLAC as its only supported audio format, the server connects in, uses the SDK to encode the PCM into FLAC, streams it to the client, and the matrix compares the transported FLAC header and chunk bytes as received by the client.
Server
aiosendspin
Client
aiosendspin
Status
Passed
FLAC header and chunk bytes match exactly
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__server-initiated-flac__aiosendspin__to__aiosendspin",
"client_exit_code": 0,
"client_impl": "aiosendspin",
"reason": "FLAC header and chunk bytes match exactly",
"scenario_id": "server-initiated-flac",
"server_exit_code": 0,
"server_impl": "aiosendspin",
"status": "passed"
}Server summary (JSON)
RAW{
"audio": {
"bit_depth": 16,
"channels": 1,
"clip_seconds": 5.0,
"duration_seconds": 4.968,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_alignment_samples": 576,
"frame_count": 39744,
"sample_rate": 8000,
"sent_audio_chunk_count": 69,
"sent_codec_header_sha256": "cf785f756a60586c95243e827c384663e8dc4be893f3eb79a5b092b4df511214",
"sent_encoded_byte_count": 3817,
"sent_encoded_sha256": "a4be5550140f2e9d7a631318496eab0f63ca6b09ce6ff0e148b50d0364ffe49a",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "ea4a8f1ced7d3ad85d46da1dea8cf98cd2cf75dbf305fb11cffea11b1e180952",
"trimmed_source_frames": 256
},
"client": {
"active_roles": [
"player@v1"
],
"client_id": "aiosendspin-client-id",
"name": "aiosendspin-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "aiosendspin-client-id",
"name": "aiosendspin-client",
"player@v1_support": {
"buffer_capacity": 2000000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "flac",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 2,
"codec": "flac",
"sample_rate": 48000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "flac",
"role": "server",
"scenario_id": "server-initiated-flac",
"server_id": "aiosendspin-server",
"server_name": "aiosendspin server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAAAASVAfQA8AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"codec_header_sha256": "cf785f756a60586c95243e827c384663e8dc4be893f3eb79a5b092b4df511214",
"sample_rate": 8000
}
}Server log
RAWINFO:aiosendspin.server.server:Starting Sendspin server on port 19007
INFO:aiosendspin.server.server:Sendspin server started successfully on 127.0.0.1:19007
WARNING:aiosendspin.server.server:No IP addresses available for mDNS advertising. Clients may not be able to discover this server. Consider specifying addresses manually via advertise_addresses.
{
"audio": {
"bit_depth": 16,
"channels": 1,
"clip_seconds": 5.0,
"duration_seconds": 4.968,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_alignment_samples": 576,
"frame_count": 39744,
"sample_rate": 8000,
"sent_audio_chunk_count": 69,
"sent_codec_header_sha256": "cf785f756a60586c95243e827c384663e8dc4be893f3eb79a5b092b4df511214",
"sent_encoded_byte_count": 3817,
"sent_encoded_sha256": "a4be5550140f2e9d7a631318496eab0f63ca6b09ce6ff0e148b50d0364ffe49a",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "ea4a8f1ced7d3ad85d46da1dea8cf98cd2cf75dbf305fb11cffea11b1e180952",
"trimmed_source_frames": 256
},
"client": {
"active_roles": [
"player@v1"
],
"client_id": "aiosendspin-client-id",
"name": "aiosendspin-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "aiosendspin-client-id",
"name": "aiosendspin-client",
"player@v1_support": {
"buffer_capacity": 2000000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "flac",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 2,
"codec": "flac",
"sample_rate": 48000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "flac",
"role": "server",
"scenario_id": "server-initiated-flac",
"server_id": "aiosendspin-server",
"server_name": "aiosendspin server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAAAASVAfQA8AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"codec_header_sha256": "cf785f756a60586c95243e827c384663e8dc4be893f3eb79a5b092b4df511214",
"sample_rate": 8000
}
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 69,
"received_encoded_sha256": "a4be5550140f2e9d7a631318496eab0f63ca6b09ce6ff0e148b50d0364ffe49a",
"received_pcm_sha256": "ea4a8f1ced7d3ad85d46da1dea8cf98cd2cf75dbf305fb11cffea11b1e180952",
"received_sample_count": 39744
},
"client_id": "aiosendspin-client-id",
"client_name": "aiosendspin-client",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"active_roles": [
"player@v1"
],
"connection_reason": "playback",
"name": "aiosendspin server",
"server_id": "aiosendspin-server",
"version": 1
},
"type": "server/hello"
},
"preferred_codec": "flac",
"role": "client",
"scenario_id": "server-initiated-flac",
"server": null,
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAAAASVAfQA8AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"sample_rate": 8000
}
}Client log
RAWINFO:aiosendspin.client.listener:ClientListener started on port 20007, path /sendspin
INFO:aiosendspin.client.client:Connected to server 'aiosendspin server' (aiosendspin-server) version 1
INFO:aiosendspin.client.client:Handshake with server complete
INFO:aiosendspin.client.client:Stream started with codec flac
INFO:aiohttp.access:127.0.0.1 [16/May/2026:05:36:09 +0000] "GET /sendspin HTTP/1.1" 101 0 "-" "Python/3.12 aiohttp/3.13.5"
INFO:aiosendspin.client.listener:ClientListener stopped
{
"audio": {
"audio_chunk_count": 69,
"received_encoded_sha256": "a4be5550140f2e9d7a631318496eab0f63ca6b09ce6ff0e148b50d0364ffe49a",
"received_pcm_sha256": "ea4a8f1ced7d3ad85d46da1dea8cf98cd2cf75dbf305fb11cffea11b1e180952",
"received_sample_count": 39744
},
"client_id": "aiosendspin-client-id",
"client_name": "aiosendspin-client",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"active_roles": [
"player@v1"
],
"connection_reason": "playback",
"name": "aiosendspin server",
"server_id": "aiosendspin-server",
"version": 1
},
"type": "server/hello"
},
"preferred_codec": "flac",
"role": "client",
"scenario_id": "server-initiated-flac",
"server": null,
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAAAASVAfQA8AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"sample_rate": 8000
}
}
Shared build log · python-adapters · built · 0.07s
RAWListing 'src'... Listing 'src/conformance'... Listing 'src/conformance/adapters'... Compiling 'src/conformance/adapters/__init__.py'... Compiling 'src/conformance/adapters/aiosendspin_client.py'... Compiling 'src/conformance/adapters/aiosendspin_server.py'... Compiling 'src/conformance/adapters/placeholder.py'... Compiling 'src/conformance/adapters/sendspin_jvm_client.py'... Compiling 'src/conformance/cli.py'... Compiling 'src/conformance/merge.py'... Compiling 'src/conformance/registry.py'... Listing 'src/sendspin_conformance.egg-info'... Listing 'scripts'... Compiling 'scripts/detect_regressions.py'... Compiling 'scripts/merge_results.py'... Compiling 'scripts/run_all.py'... Compiling 'scripts/setup_repositories.py'... Compiling 'scripts/setup_workspace.py'...