{"guid":"3435e7bd-8bab-59d8-b3d8-c7a0998567a5","title":"Rtosc - Realtime Safe Open Sound Control Messaging","subtitle":null,"slug":"lac2018-39-rtosc_realtime_safe_open_sound_control_messaging","link":"https://c3voc.de","description":"\nAudio applications which go beyond MIDI processing often utilize OSC (Open\nSound Control) to communicate complex parameters and advanced operations.\nA variety of libraries offer solutions to network transportation of OSC\nmessages and provide approaches for pattern matching the messages in dispatch.\nDispatch however is performed inefficiently and manipulating OSC messages is\noftentimes not realtime safe.\nrtosc was written to quickly dispatch and manipulate large quantities of OSC\nmessages in realtime constrained environments.\nThe fast dispatch is possible due to the internal tree representation as well\nas the use of perfect-minimal-hashing within the pattern matching phase of\ndispatch.\n\nThe primary user of rtosc is the ZynAddSubFX project which uses OSC to map\n3,805,225 parameters and routinely dispatches bursts of up to 1,000 messages\nper second during normal audio processing.\nFor audio application rtosc provides a simple OSC serialization toolset, the\nrealtime safe dispatch mechanisms, a ringbuffer implementation, and a rich\nmetadata system for representing application/library parameters.\nThis combination is not available in any other OSC library at the time of\nwriting.\n        \n\n\nAudio applications which go beyond MIDI processing often utilize OSC (Open\nSound Control) to communicate complex parameters and advanced operations.\nA variety of libraries offer solutions to network transportation of OSC\nmessages and provide approaches for pattern matching the messages in dispatch.\nDispatch however is performed inefficiently and manipulating OSC messages is\noftentimes not realtime safe.\nrtosc was written to quickly dispatch and manipulate large quantities of OSC\nmessages in realtime constrained environments.\nThe fast dispatch is possible due to the internal tree representation as well\nas the use of perfect-minimal-hashing within the pattern matching phase of\ndispatch.\n\nThe primary user of rtosc is the ZynAddSubFX project which uses OSC to map\n3,805,225 parameters and routinely dispatches bursts of up to 1,000 messages\nper second during normal audio processing.\nFor audio application rtosc provides a simple OSC serialization toolset, the\nrealtime safe dispatch mechanisms, a ringbuffer implementation, and a rich\nmetadata system for representing application/library parameters.\nThis combination is not available in any other OSC library at the time of\nwriting.\n        ","original_language":"eng","persons":["Mark McCurry"],"tags":["lac18","39"],"view_count":224,"promoted":false,"date":"2018-06-09T00:00:00.000+02:00","release_date":"2018-06-10T02:00:00.000+02:00","updated_at":"2025-10-28T02:00:02.340+01:00","length":1661,"duration":1661,"thumb_url":"https://static.media.ccc.de/media/events/lac/lac18/39-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/lac/lac18/39-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/lac/lac18/3435e7bd-8bab-59d8-b3d8-c7a0998567a5-timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/lac/lac18/3435e7bd-8bab-59d8-b3d8-c7a0998567a5-thumbnails.vtt","frontend_link":"https://media.ccc.de/v/lac2018-39-rtosc_realtime_safe_open_sound_control_messaging","url":"https://api.media.ccc.de/public/events/3435e7bd-8bab-59d8-b3d8-c7a0998567a5","conference_title":"Linux Audio Conference 2018","conference_url":"https://api.media.ccc.de/public/conferences/lac18","related":[{"event_id":5587,"event_guid":"214f3fd2-30e1-58fe-981b-fb7e5f6a8fa5","weight":6},{"event_id":5589,"event_guid":"311574c9-5a3c-52ae-a9fd-b8ad3cc0d2be","weight":12},{"event_id":5596,"event_guid":"941d66c1-b9f8-5327-a157-44401fd3a554","weight":12},{"event_id":5599,"event_guid":"a421f5fb-5423-572d-a7e5-c12cb71628df","weight":12},{"event_id":5601,"event_guid":"7388bd9b-e82c-5f4d-988a-4e293c165f81","weight":14},{"event_id":5603,"event_guid":"1d09e62a-d833-5ef3-800a-836d61167bc2","weight":14},{"event_id":5606,"event_guid":"0cebf60f-0411-5ac1-a647-945f42c793fe","weight":6},{"event_id":5607,"event_guid":"d360b86d-4efa-5caa-a6a3-87fde4b48cdf","weight":15}],"recordings":[{"size":144,"length":1661,"mime_type":"video/mp4","language":"eng","filename":"lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2018-06-10T19:16:49.680+02:00","recording_url":"https://cdn.media.ccc.de/events/lac/lac18/h264-hd/lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_hd.mp4","url":"https://api.media.ccc.de/public/recordings/26214","event_url":"https://api.media.ccc.de/public/events/3435e7bd-8bab-59d8-b3d8-c7a0998567a5","conference_url":"https://api.media.ccc.de/public/conferences/lac18"},{"size":171,"length":1661,"mime_type":"video/webm","language":"eng","filename":"lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2018-06-10T21:49:44.761+02:00","recording_url":"https://cdn.media.ccc.de/events/lac/lac18/webm-hd/lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/26320","event_url":"https://api.media.ccc.de/public/events/3435e7bd-8bab-59d8-b3d8-c7a0998567a5","conference_url":"https://api.media.ccc.de/public/conferences/lac18"},{"size":25,"length":1656,"mime_type":"audio/mpeg","language":"eng","filename":"lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2018-06-10T21:50:35.217+02:00","recording_url":"https://cdn.media.ccc.de/events/lac/lac18/mp3/lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/26321","event_url":"https://api.media.ccc.de/public/events/3435e7bd-8bab-59d8-b3d8-c7a0998567a5","conference_url":"https://api.media.ccc.de/public/conferences/lac18"},{"size":48,"length":1661,"mime_type":"video/mp4","language":"eng","filename":"lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2018-06-10T21:51:06.080+02:00","recording_url":"https://cdn.media.ccc.de/events/lac/lac18/h264-sd/lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_sd.mp4","url":"https://api.media.ccc.de/public/recordings/26322","event_url":"https://api.media.ccc.de/public/events/3435e7bd-8bab-59d8-b3d8-c7a0998567a5","conference_url":"https://api.media.ccc.de/public/conferences/lac18"},{"size":60,"length":1661,"mime_type":"video/webm","language":"eng","filename":"lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2018-06-10T21:51:36.738+02:00","recording_url":"https://cdn.media.ccc.de/events/lac/lac18/webm-sd/lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/26323","event_url":"https://api.media.ccc.de/public/events/3435e7bd-8bab-59d8-b3d8-c7a0998567a5","conference_url":"https://api.media.ccc.de/public/conferences/lac18"},{"size":19,"length":1656,"mime_type":"audio/opus","language":"eng","filename":"lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2018-06-10T21:52:05.280+02:00","recording_url":"https://cdn.media.ccc.de/events/lac/lac18/opus/lac18-39-eng-Rtosc_-_Realtime_Safe_Open_Sound_Control_Messaging_opus.opus","url":"https://api.media.ccc.de/public/recordings/26324","event_url":"https://api.media.ccc.de/public/events/3435e7bd-8bab-59d8-b3d8-c7a0998567a5","conference_url":"https://api.media.ccc.de/public/conferences/lac18"}]}