{"id":13438407,"url":"https://github.com/jpernst/alto","last_synced_at":"2025-03-20T05:31:58.304Z","repository":{"id":5685017,"uuid":"6895262","full_name":"jpernst/alto","owner":"jpernst","description":"Idiomatic Rust bindings for OpenAL 1.1 and extensions (including EFX).","archived":true,"fork":false,"pushed_at":"2020-03-01T13:49:00.000Z","size":1389,"stargazers_count":80,"open_issues_count":3,"forks_count":28,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-11T17:08:13.215Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jpernst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-11-28T02:56:35.000Z","updated_at":"2024-08-11T17:08:13.216Z","dependencies_parsed_at":"2022-09-05T07:31:09.162Z","dependency_job_id":null,"html_url":"https://github.com/jpernst/alto","commit_stats":null,"previous_names":["jpernst/openal-rs","bjz/openal-rs"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpernst%2Falto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpernst%2Falto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpernst%2Falto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpernst%2Falto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jpernst","download_url":"https://codeload.github.com/jpernst/alto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244560314,"owners_count":20472217,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-07-31T03:01:05.292Z","updated_at":"2025-03-20T05:31:57.928Z","avatar_url":"https://github.com/jpernst.png","language":"Rust","funding_links":[],"categories":["Libraries","库","库 Libraries","音频（Audio）"],"sub_categories":["Audio","Audio and Music","音频","音频 Audio","天文（Astronomy）"],"readme":"# alto\n\n`alto` provides idiomatic Rust bindings for [OpenAL 1.1](http://connect.creativelabs.com/openal/)\nand extensions (including EFX).\n\n## WARNING\n\nBecause Alto interacts with global C state via dynamic linking, having multiple versions of Alto in one project could lead to unsafety.\nPlease make sure only one version of Alto is in your dependency tree at any given time.\n\n## API Usage\n\n```rust\nlet alto = Alto::load_default()?;\n\nfor s in alto.enumerate_outputs() {\n    println!(\"Found device: {}\", s.to_str()?);\n}\n\nlet device = alto.open(None)?; // Opens the default audio device\nlet context = device.new_context(None)?; // Creates a default context\n\n// Configure listener\ncontext.set_position([1.0, 4.0, 5.0]);\ncontext.set_velocity([2.5, 0.0, 0.0]);\ncontext.set_orientation(([0.0, 0.0, 1.0], [0.0, 1.0, 0.0]));\n\nlet source = context.new_static_source()?;\n\n// Now you can load your samples and store them in a buffer with\n// `context.new_buffer(samples, frequency)`;\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpernst%2Falto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjpernst%2Falto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpernst%2Falto/lists"}