{"id":24651891,"url":"https://github.com/rawbits2010/libbitdauer","last_synced_at":"2025-08-01T10:04:29.473Z","repository":{"id":273314284,"uuid":"770118752","full_name":"rawbits2010/LibBitDauer","owner":"rawbits2010","description":"Just a wave generator for my music projects","archived":false,"fork":false,"pushed_at":"2025-01-18T02:29:02.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T06:44:33.081Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/rawbits2010.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":"2024-03-11T00:23:05.000Z","updated_at":"2025-01-20T01:53:13.000Z","dependencies_parsed_at":"2025-01-20T06:44:47.763Z","dependency_job_id":"9cf319d3-9763-4ed5-92b1-503a046abcd5","html_url":"https://github.com/rawbits2010/LibBitDauer","commit_stats":null,"previous_names":["rawbits2010/libbitdauer","rawbits2010/bitdauer"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawbits2010%2FLibBitDauer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawbits2010%2FLibBitDauer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawbits2010%2FLibBitDauer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawbits2010%2FLibBitDauer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rawbits2010","download_url":"https://codeload.github.com/rawbits2010/LibBitDauer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244704491,"owners_count":20496320,"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-01-25T19:13:28.068Z","updated_at":"2025-03-20T22:32:43.284Z","avatar_url":"https://github.com/rawbits2010.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LibBitDauer v0.1\n\nA simple software synthesizer package for my audio projects. Also includes some basic sound analysis tools for no reason.\n\n#### Limitations:\n- It has some limited support for continuous generation, but currently it is only used to generate into a fixed size buffer.\n- The envelope is also supposed to fully support the MIDI key-trigger mechanics, but it's never been used.\n\n## Features\n- Oscillator\n  - Wave functions:\n    - Sine, square, triangle, sawtooth, reverse sawtooth\n\t- Noise:\n\t  - White (using built-in Go rand.Rand)\n\t  - Red, pink, blue, violet (by applying filters to the white noise)\n- Modulators:\n  - Envelope (ADSR with various shapes):\n    - LERP\n    - Ease-in, ease-out, ease-in-out\n\t- Exponential, logarithmic, inverse exponential, inverse logarithmic\n\t- S-Curve (sigmoid)\n  - LFO (can use all wave functions above)\n- Filters:\n  - Single, chain, chain of chain\n  - Low-pass, high-pass, band-pass, notch, peaking\n- Musical scale LUT generator based on a base note frequency\n- Output options:\n  - Export to WAV or raw (unsigned 32 bit integer) format\n  - Play as 1 channel 44.1kHz using the [oto package](https://github.com/ebitengine/oto)\n\n## Examples\nSome examples are provided in the cmd folder, both for the synth and the analysis tools.\n\n### Genex\nThe synth example creates an oscillator that outputs an A4 note with a customized envelope into a 2-second-long buffer. The generated sound will be played with the default sound device and saved as a WAV file.\n\n### Idex\nLoads a WAV file and extracts the dominant frequencies to identify the waveform. It also saves the extracted data into a CSV, and generates various diagrams into PNGs. An example untuned identification is performed using the harmonic ratios and another with other metrics (bandwidth, spectral centroid).\n\n## TODOs\nA rough list of planned features:\n\n- Mixer to have multiple oscillators\n- PWM generator\n- Filter support to the oscillator\n- Free form modulator (multiple envelope sections with selectable easing functions)\n- Other filters like expander, compressor, limiter\n- Handle overdrive\n\n## License\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frawbits2010%2Flibbitdauer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frawbits2010%2Flibbitdauer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frawbits2010%2Flibbitdauer/lists"}