{"id":27954442,"url":"https://github.com/ebu/bear","last_synced_at":"2025-06-14T12:05:10.934Z","repository":{"id":43173533,"uuid":"454081372","full_name":"ebu/bear","owner":"ebu","description":"Binaural EBU ADM Renderer","archived":false,"fork":false,"pushed_at":"2025-01-24T12:24:47.000Z","size":56362,"stargazers_count":24,"open_issues_count":3,"forks_count":4,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-07T17:41:37.363Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/ebu.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,"zenodo":null}},"created_at":"2022-01-31T16:25:46.000Z","updated_at":"2025-02-27T13:51:45.000Z","dependencies_parsed_at":"2022-09-13T21:23:27.248Z","dependency_job_id":"f1fc9160-b852-45a7-b24e-9c3b37d3f1e7","html_url":"https://github.com/ebu/bear","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ebu/bear","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Fbear","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Fbear/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Fbear/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Fbear/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebu","download_url":"https://codeload.github.com/ebu/bear/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebu%2Fbear/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259812991,"owners_count":22915196,"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":"2025-05-07T17:29:33.387Z","updated_at":"2025-06-14T12:05:10.916Z","avatar_url":"https://github.com/ebu.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Binaural EBU ADM Renderer (BEAR)\n\nThe BEAR is a binaural renderer for ADM content, as specified in [EBU Tech 3396].\nIt is based on the [EAR], and is is integrated into the [EAR Production Suite].\n\nThis repository contains:\n\n- visr_bear: a real-time C++ implementation of the BEAR, using [libear] and\n  [VISR]. It has a C++ API that makes it reasonably straightforward to embed\n  into other applications; see visr_bear/include/api.hpp\n\n- bear: a python module containing a command-line tool `bear-render`, which\n  uses visr_bear to render ADM WAV files to binaural.\n\nThis is currently a pre-release, awaiting code to generate the data files from publicly-available data and an EBU tech-doc describing the processing performed by the BEAR.\n\n[EBU Tech 3396]: https://tech.ebu.ch/publications/tech3396\n[EAR]: https://github.com/ebu/ebu_adm_renderer\n[libear]: https://github.com/ebu/libear\n[VISR]: https://github.com/s3a-spatialaudio/VISR\n[EAR Production Suite]: https://ear-production-suite.ebu.io/\n\n## Running with Docker\n\nBuilding the BEAR can be challenging; as an alternative it's possible to run it\nin docker if you just want to render files.\n\n-   Install docker:\n\n    -   On linux, install the docker package.\n\n    -   On OSX or Windows, install docker desktop, or follow a guide\n        [like this](https://medium.com/crowdbotics/a-complete-one-by-one-guide-to-install-docker-on-your-mac-os-using-homebrew-e818eb4cfc3)\n        if the docker desktop license is not suitable.\n\n-   Download the image, either:\n\n    -   From a workflow artifact -- go to the\n        [list of workflows](https://github.com/ebu/bear/actions/workflows/build.yml?query=branch%3Amain)\n        , select one, and download `bear_docker.tar.gz` from the list of\n        artifacts. It will come as a zip file which you'll have to extract (a\n        github actions limitation).\n\n    -   From [a release](https://github.com/ebu/bear/releases) -- future releases\n        will include a `bear_docker.tar.gz` or similar file.\n\n-   Load the image with:\n\n        sudo docker load -i path/to/bear_docker.tar.gz\n\n    On windows you probably don't need sudo.\n\nTo render a file in.wav to out.wav in the current directory:\n\n    sudo docker run --rm -v $(pwd):/data bear bear-render data/in.wav data/out.wav\n\nOr to see the available options, run:\n\n    sudo docker run --rm bear bear-render --help\n\n`-v` sets up a mapping between files inside the container and files outside (so\nmapping the current directory (via `$(pwd)`) to `/data` means that `in.wav`\nbecomes `/data/in.wav` on the command-line); this is required because docker\nruns processes in an isolated environment.\n\n\u003cdetails\u003e\n\u003csummary\u003eexplanation of arguments\u003c/summary\u003e\n\n    sudo docker run\n\nthe command to run a container\n\n    --rm\n\ndelete the created container (not the image) after is finishes\n\n    -v $(pwd):/data\n\nallow the container to access files in the current directory (see above)\n\n    bear\n\nthe name of the image/container to run\n\n    bear-render data/in.wav data/out.wav\n\nThe BEAR command-line to run.\n\u003c/details\u003e\n\n## Native Install\n\nTo get this running, you'll need to install:\n\n- This python module\n- VISR\n- visr_bear\n\nSteps for each are outlined below.\n\nTo fetch the required submodules, first run:\n\n    git submodule update --init --recursive\n\nInstallation in a virtualenv is generally preferable to doing a system-wide\ninstall; follow the [Use a virtualenv](#use-a-virtualenv) steps below first to\ndo that.\n\n### Python\n\nThis repository contains a standard python package.\n\nInstall it by changing into this directory and running:\n\n    pip install -e .\n\nFor development you can install the test and dev dependencies with:\n\n    pip install -e .[test,dev]\n\nTests are ran with:\n\n    pytest\n\nTo reformat code to match the existing style, run `black` on any changed sources. `flake8` should ideally not report any warnings.\n\n### VISR\n\nGet VISR 0.13.0 or greater. Currently this is available in the `visr` branch of this repository, or here:\n\n- zip: https://github.com/ebu/bear/archive/refs/heads/visr.zip\n- tar.gz: https://github.com/ebu/bear/archive/refs/heads/visr.tar.gz\n\nEventually this will be available from the upstream repository:\n\nhttps://github.com/s3a-spatialaudio/VISR\n\nTo configure:\n\n    cmake -B build . -DBUILD_PYTHON_BINDINGS=ON -DBUILD_DOCUMENTATION=OFF -DBUILD_AUDIOINTERFACES_PORTAUDIO=OFF -DBUILD_USE_SNDFILE_LIBRARY=OFF\n\nBuild:\n\n    cmake --build build\n\nInstall:\n\n    cmake --build build -t install\n\nThe cmake flags can be adjusted, but python bindings are currently necessary to\nrun `bear-render` and the tests.\n\n### visr_bear\n\nThis is in the `visr_bear` subdirectory:\n\n    cd visr_bear\n\nMost dependencies are provided through submodules (some via submodules of submodules). The exception to this is the [nlohmann JSON library](https://github.com/nlohmann/json) which should be installed seperately. Cmake will attempt to locate this using `find_package`.\n\nThe build process is the same as for VISR; to configure:\n\n    cmake -B build .\n\nBuild:\n\n    cmake --build build\n\nInstall:\n\n    cmake --build build -t install\n\n### Adjustments\n\nThere are various ways to configure and build this:\n\n#### Use a virtualenv\n\nYou should probably [use a virtualenv](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment)\nto avoid messing up your system by installing things to your system directories\n(which will require sudo). This is just a directory containing an installation\nof python, and directories for installing libraries and programs.\n\nCreate it in `env` with:\n\n    python -m venv env\n\nTo use the virtualenv you'll need to activate it; this just sets up some environment variables:\n\n    source ./env/bin/activate\n\nTo get cmake to install into the virtualenv, add this to the cmake 'configuration' commands:\n\n    -DCMAKE_INSTALL_PREFIX=$VIRTUAL_ENV\n\nWith this setup you'll probably need to add `env/lib` to your library search path; set this with:\n\n    export LD_LIBRARY_PATH=$VIRTUAL_ENV/lib/\n\nThis could be added to the end of the `env/bin/activate` script if desired.\n\n#### Release mode\n\nFor better performance, set either `-DCMAKE_BUILD_TYPE=Release` or\n`-DCMAKE_BUILD_TYPE=RelWithDebInfo`. The latter is nice for development as it\nretains debug symbols.\n\n## Usage\n\n### native ADM file renderer\n\n    bear-render infile.wav outfile.wav\n\nThis supports various options similar to `ear-render`; see `bear-render --help`.\n\n# License\n\nCopyright 2020 BBC\n\nBEAR is licensed under the terms of the Apache License, Version 2.0; see LICENSE for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febu%2Fbear","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febu%2Fbear","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febu%2Fbear/lists"}