{"id":19884540,"url":"https://github.com/zzkt/osc","last_synced_at":"2026-03-04T07:04:48.821Z","repository":{"id":57853866,"uuid":"1633892","full_name":"zzkt/osc","owner":"zzkt","description":"a common lisp implementation of the Open Sound Control protocol aka OSC","archived":false,"fork":false,"pushed_at":"2024-06-05T09:01:56.000Z","size":201,"stargazers_count":36,"open_issues_count":9,"forks_count":9,"subscribers_count":4,"default_branch":"core","last_synced_at":"2025-02-25T00:33:31.549Z","etag":null,"topics":["opensoundcontrol","osc"],"latest_commit_sha":null,"homepage":"","language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zzkt.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-04-19T03:28:48.000Z","updated_at":"2024-12-22T12:11:18.000Z","dependencies_parsed_at":"2024-01-27T18:23:18.438Z","dependency_job_id":"8c07f31b-0855-4251-af62-4da7aa9afb92","html_url":"https://github.com/zzkt/osc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zzkt/osc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzkt%2Fosc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzkt%2Fosc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzkt%2Fosc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzkt%2Fosc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zzkt","download_url":"https://codeload.github.com/zzkt/osc/tar.gz/refs/heads/core","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zzkt%2Fosc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30075425,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T05:31:57.858Z","status":"ssl_error","status_checked_at":"2026-03-04T05:31:38.462Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["opensoundcontrol","osc"],"created_at":"2024-11-12T17:27:47.364Z","updated_at":"2026-03-04T07:04:48.805Z","avatar_url":"https://github.com/zzkt.png","language":"Common Lisp","readme":"# -*- mode: org;  coding: utf-8; -*-\n#+title: Open Sound Control\n\nThis is a lisp implementation of the Open Sound Control protocol (or more accurately  “data transport specification” or “encoding”). The code should be close to ANSI standard common lisp and provides self contained code for encoding and decoding of OSC data, messages, and bundles. Since OSC describes a transport independent encoding (and does not specify a transport layer) messages can be send using TCP,  UDP or other network protocols (e.g. [[https://www.rfc-editor.org/rfc/rfc2549][RFC 2549]]). It seems UDP is more common amongst  programmes that communicate using OSC and. the =osc-examples.lisp= file contains a few simple examples of how to send and receive OSC via UDP. The examples are reasonably compatible with the packets send from/to max-msp, pd, supercollider and liblo. more details about OSC can be found at https://OpenSoundControl.org\n\nThe current version of this code is available from github\n\n#+BEGIN_SRC shell\ngit clone https://github.com/zzkt/osc\n#+END_SRC\n\nor via quicklisp.. .\n\n#+BEGIN_SRC lisp\n(ql:quickload \"osc\")\n#+END_SRC\n\nor guix\n\n#+BEGIN_SRC shell\nguix install cl-osc\n#+END_SRC\n\n** OSC 1.0 and 1.1 support\n\nThis implementation supports the [[https://opensoundcontrol.stanford.edu/spec-1_0.html][OpenSoundControl Specification 1.0]] and the required typetags listed in the [[https://opensoundcontrol.stanford.edu/spec-1_1.html][OpenSoundControl Specification 1.1]] (as described in an [[https://opensoundcontrol.stanford.edu/files/2009-NIME-OSC-1.1.pdf][NIME 2009 paper]]). Some optional types are supported.\n\n| *Type tag* | *type*        | *description*                                                                                 | *v1.0* | *v1.1* | *cl-osc* |\n| i        | int32       | 32-bit big-endian two’s complement integer                                                  | *R*    | *R*    | YES    |\n| f        | float32     | 32-bit big-endian IEEE 754 floating point number                                            | *R*    | *R*    | YES    |\n| s        | OSC-string  | A sequence of non-null ASCII characters followed by a null…                                 |      | *R*    |        |\n|          |             | followed by 0-3 additional null characters. Total bits is a multiple of 32.                 | *R*    | N    | YES    |\n| b        | OSC-blob    | An int32 size count, followed by that many 8-bit bytes of arbitrary binary data…            |      | *R*    |        |\n|          |             | followed by 0-3 additional zero bytes. Total bits is a multiple of 32.                      | *R*    | N    | YES    |\n| T        | True        | No bytes are allocated in the argument data.                                                | O    | *R*    |        |\n| F        | False       | No bytes are allocated in the argument data.                                                | O    | *R*    |        |\n| N        | Null        | (aka nil, None, etc). No bytes are allocated in the argument data.                          | O    | *R*    |        |\n| I        | Impulse     | (aka “bang”), used for event triggers. No bytes are allocated in the argument data.         | O    | *R*    |        |\n| t        | OSC-timetag | an OSC timetag in NTP format, encoded in the data section                                   | O    | *R*    |        |\n| h        | int64       | 64 bit big-endian two’s complement integer                                                  | O    | O    | YES    |\n| d        | float64     | 64 bit (“double”) IEEE 754 floating point number                                            | O    | O    | YES    |\n| S        | OSC-string  | Alternate type represented as an OSC-string (e.g to differentiate “symbols” from “strings”) | O    | O    | YES    |\n| c        |             | an ascii character, sent as 32 bits                                                         | O    | O    |        |\n| r        |             | 32 bit RGBA color                                                                           | O    | O    |        |\n| m        |             | 4 byte MIDI message. Bytes from MSB to LSB are: port id, status byte, data1, data2          | O    | O    |        |\n| [        |             | Indicates the beginning of an array. The tags following are for data in the Array.          | O    | O    | YES?   |\n| ]        |             | Indicates the end of an array.                                                              | O    | O    | YES?   |\n\n\n- Required, Optional and Not supported (or Not required).\n- data is encoded as =(vector (unsigned 8))= by =cl-osc=\n** Platform support\n\ncurrently supported and/or tested OS and CL platforms (platform names from github CI \u0026 roswell)\n\n|         | macos-latest     | ubuntu-latest | windows-latest |\n| sbcl    | 🟢               | 🟢            | 🟢             |\n| ccl-bin | 🟡 (x86_64 only) | 🟢            | 🟢             |\n| ecl     | 🟢               | 🟢            | ?              |\n| allegro | ?                | 🟡            | ?              |\n| other?  | ?                | ?             | ?              |\n","funding_links":[],"categories":["Expert Systems"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzzkt%2Fosc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzzkt%2Fosc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzzkt%2Fosc/lists"}