{"id":28480339,"url":"https://github.com/detomon/godot-blipkit","last_synced_at":"2026-03-02T08:34:31.521Z","repository":{"id":292318223,"uuid":"268480214","full_name":"detomon/godot-blipkit","owner":"detomon","description":"A GDExtension for creating the beautiful sound of old sound chips","archived":false,"fork":false,"pushed_at":"2026-02-23T16:33:35.000Z","size":12095,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-23T21:40:53.183Z","etag":null,"topics":["addon","audio","chiptune","godot","godot-engine","instruments","interpreter","melody","music","plugin","samples","waveform"],"latest_commit_sha":null,"homepage":"","language":"C++","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/detomon.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-06-01T09:35:21.000Z","updated_at":"2026-02-23T02:51:21.000Z","dependencies_parsed_at":"2025-07-03T19:35:15.532Z","dependency_job_id":"107fbf80-b0ee-4b4e-af93-5181a9c2dc1c","html_url":"https://github.com/detomon/godot-blipkit","commit_stats":null,"previous_names":["detomon/godot-blipkit"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/detomon/godot-blipkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detomon%2Fgodot-blipkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detomon%2Fgodot-blipkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detomon%2Fgodot-blipkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detomon%2Fgodot-blipkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/detomon","download_url":"https://codeload.github.com/detomon/godot-blipkit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detomon%2Fgodot-blipkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29995912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["addon","audio","chiptune","godot","godot-engine","instruments","interpreter","melody","music","plugin","samples","waveform"],"created_at":"2025-06-07T19:06:13.808Z","updated_at":"2026-03-02T08:34:31.492Z","avatar_url":"https://github.com/detomon.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BlipKit for Godot Engine 4.3\n\nA GDExtension for creating the beautiful sound of old sound chips.\n\n- Generate waveforms: square, triangle, noise, sawtooth, sine, and [custom ones](doc/classes/BlipKitWaveform.md) using [BlipKitTrack](doc/classes/BlipKitTrack.md)\n- Create pitch, volume, panning, and duty cycle envelopes using [BlipKitInstrument](doc/classes/BlipKitInstrument.md)\n- Load and play audio samples from `AudioStreamWAV` using [BlipKitSample](doc/classes/BlipKitSample.md)\n- Provides a basic [byte code interpreter](#byte_code_interpreter) to generate more complex melodies and reuse patterns\n\n## Contents\n\n- [Installation](#installation)\n- [Introduction](#introduction)\n- [Usage](#usage)\n- [Byte code interpreter](#byte_code_interpreter)\n- [Classes](#classes)\n- [References](#references)\n\n\u003cvideo width=\"480\" height=\"320\" controls src=\"https://github.com/user-attachments/assets/8850dadc-935f-46f6-804c-f757b9a2467b\"\u003ePower On!\u003c/video\u003e\n\n## Installation\n\n1. Search for `BlipKit` in the `AssetLib` editor tab\n2. Download and install the plugin\n3. Enable the plugin in the project settings via the `Plugins` tab\n\nor...\n\n1. Clone this repository or download the archive\n2. Copy the folder `addons/detomon.blipkit` to your project's `addons` folder (create it if needed)\n3. Enable the plugin in the project settings via the `Plugins` tab\n\n## Introduction\n\nThe [BlipKitTrack](doc/classes/BlipKitTrack.md) class generates a single waveform. Multiple tracks can be attached to a [AudioStreamBlipKit](doc/classes/AudioStreamBlipKit.md), which then mixes the audio. As with every audio stream, it can be used with `AudioStreamPlayer`, `AudioStreamPlayer2D` or `AudioStreamPlayer3D` nodes.\n\nTime is measured in *ticks*. Every *tick* allows properties of the waveform to be updated. The tick rate is `240` ticks per second.\n\n## Usage\n\n- Create an `AudioStreamPlayer` node and add an [AudioStreamBlipKit](doc/classes/AudioStreamBlipKit.md) resource\n- Attach [BlipKitTrack](doc/classes/BlipKitTrack.md) objects to the stream resource\n- Change properties of the [BlipKitTrack](doc/classes/BlipKitTrack.md) to play notes, change the volume etc.\n\n\u003e [!TIP]\n\u003e See the [examples](examples) directory for some examples.\n\u003e\n\u003e Class descriptions are available in the Editor via the reference documentation after the extension is loaded, or in the [doc/classes](doc/classes) directory.\n\n### Examples\n\n- Play an iconic startup sound ([Power On!](examples/power_on)):\n\n```gdscript\nextends Node\n\n# Create a track.\nvar _track := BlipKitTrack.new()\n# Create an instrument.\nvar _instr := BlipKitInstrument.new()\n\n# An audio player with an `AudioStreamBlipKit` resource.\n@onready var _player: AudioStreamPlayer = $AudioStreamPlayer\n\n\nfunc _ready() -\u003e void:\n\t# Set pitch sequence:\n\t# - Play lower octave for 18 ticks (defined with `_track.instrument_divider`)\n\t# - Then play current note as long as the note is playing\n\t_instr.set_envelope(BlipKitInstrument.ENVELOPE_PITCH, [-12, 0])\n\n\t# Set volume envelope:\n\t# - Set volume to 1.0 for 0 ticks (do not slide from previous value)\n\t# - Keep volume on 1.0 for 18 ticks\n\t# - Slide volume to 0.0 for 162 ticks\n\t_instr.set_envelope(BlipKitInstrument.ENVELOPE_VOLUME, [1.0, 1.0, 0.0], [0, 18, 162])\n\n\t# Set duty cycle of square wave to 50%.\n\t_track.duty_cycle = 8\n\t# Set instrument.\n\t_track.instrument = _instr\n\t# Set number of ticks per envelope sequence value.\n\t_track.instrument_divider = 18\n\n\t# Get the audio stream.\n\tvar stream: AudioStreamBlipKit = _player.stream\n\t# Attach the track to the audio stream.\n\t_track.attach(stream)\n\n\t# Add a divider and call it every 360 ticks (1.5 seconds).\n\t_track.add_divider(360, func () -\u003e int:\n\t\t# Release previous note to start instrument again.\n\t\t_track.release()\n\t\t# Play note C on octave 6.\n\t\t_track.note = BlipKitTrack.NOTE_C_6\n\n\t\t# Do not change tick rate of divider.\n\t\treturn 0\n\t)\n```\n\n## Byte code interpreter\n\nThe byte code assembler allows to create instructions to play patterns.\n\n- [BlipKitAssembler](doc/classes/BlipKitAssembler.md) generate byte code from instructions\n- [BlipKitInterpreter](doc/classes/BlipKitInterpreter.md) execute the byte code on a [BlipKitTrack](doc/classes/BlipKitTrack.md) to change its properties over time\n\n### Examples\n\n- Play an iconic startup sound ([Power On! Assembler version](examples/power_on_assembler)).\n- Play on multiple tracks ([Bytecode](examples/bytecode)).\n\n## Classes\n\n[Overview](doc/classes)\n\n- [AudioStreamBlipKit](doc/classes/AudioStreamBlipKit.md)\n- [BlipKitAssembler](doc/classes/BlipKitAssembler.md)\n- [BlipKitBytecode](doc/classes/BlipKitBytecode.md)\n- [BlipKitInstrument](doc/classes/BlipKitInstrument.md)\n- [BlipKitInterpreter](doc/classes/BlipKitInterpreter.md)\n- [BlipKitSample](doc/classes/BlipKitSample.md)\n- [BlipKitTrack](doc/classes/BlipKitTrack.md)\n- [BlipKitWaveform](doc/classes/BlipKitWaveform.md)\n\n## References\n\nUses the [BlipKit](https://github.com/detomon/BlipKit) library to generate audio.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdetomon%2Fgodot-blipkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdetomon%2Fgodot-blipkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdetomon%2Fgodot-blipkit/lists"}