{"id":16947557,"url":"https://github.com/mrdimas/hrtf","last_synced_at":"2025-04-05T18:11:52.758Z","repository":{"id":56595313,"uuid":"303386243","full_name":"mrDIMAS/hrtf","owner":"mrDIMAS","description":"Head-Related Transfer Function (HRTF) audio signal processor.","archived":false,"fork":false,"pushed_at":"2023-10-17T12:04:11.000Z","size":60,"stargazers_count":71,"open_issues_count":1,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-04-23T22:09:35.238Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrDIMAS.png","metadata":{"files":{"readme":"README.md","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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-12T12:33:18.000Z","updated_at":"2024-04-02T07:26:23.000Z","dependencies_parsed_at":"2024-10-13T21:47:39.723Z","dependency_job_id":"a641ce36-d190-429f-8feb-42effc3f48ab","html_url":"https://github.com/mrDIMAS/hrtf","commit_stats":{"total_commits":13,"total_committers":4,"mean_commits":3.25,"dds":0.3076923076923077,"last_synced_commit":"951aa79830d24c5f31a33f835015180fe37644db"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrDIMAS%2Fhrtf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrDIMAS%2Fhrtf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrDIMAS%2Fhrtf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrDIMAS%2Fhrtf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrDIMAS","download_url":"https://codeload.github.com/mrDIMAS/hrtf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378152,"owners_count":20929297,"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-10-13T21:47:31.414Z","updated_at":"2025-04-05T18:11:52.737Z","avatar_url":"https://github.com/mrDIMAS.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Head-Related Transfer Function (HRTF) audio signal processor.\n\n# Overview\n\nHRTF stands for [Head-Related Transfer Function](https://en.wikipedia.org/wiki/Head-related_transfer_function)\nand can work only with spatial sounds. For each of such sound source after it was processed by HRTF you can\ndefinitely tell from which location sound came from. In other words HRTF improves perception of sound to\nthe level of real life.\n\n# HRIR Spheres\n\nThis crate uses Head-Related Impulse Response (HRIR) spheres to create HRTF spheres. HRTF sphere is a set of\npoints in 3D space which are connected into a mesh forming triangulated sphere. Each point contains spectrum\nfor left and right ears which will be used to modify samples from each spatial sound source to create binaural\nsound. HRIR spheres can be found [here](https://github.com/mrDIMAS/hrir_sphere_builder/tree/master/hrtf_base/IRCAM).\nHRIR spheres from the base are recorded in 44100 Hz sample rate, this crate performs **automatic** resampling to your\nsample rate.\n\n# Performance\n\nHRTF is **heavy**, this is essential because HRTF requires some heavy math (fast Fourier transform, convolution,\netc.) and lots of memory copying.\n\n# Known problems\n\nThis renderer still suffers from small audible clicks in very fast moving sounds, clicks sounds more like\n\"buzzing\" - it is due the fact that hrtf is different from frame to frame which gives \"bumps\" in amplitude\nof signal because of phase shift each impulse response have. This can be fixed by short cross fade between\nsmall amount of samples from previous frame with same amount of frames of current as proposed in\n[here](http://csoundjournal.com/issue9/newHRTFOpcodes.html)\n\nClicks can be reproduced by using clean sine wave of 440 Hz on some source moving around listener.\n\n# Algorithm\n\nThis crate uses overlap-save convolution to perform operations in frequency domain. Check\n[this link](https://en.wikipedia.org/wiki/Overlap%E2%80%93save_method) for more info.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdimas%2Fhrtf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrdimas%2Fhrtf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdimas%2Fhrtf/lists"}