{"id":22539113,"url":"https://github.com/electro-smith/libDaisy","last_synced_at":"2025-08-04T05:31:32.874Z","repository":{"id":38265176,"uuid":"200878680","full_name":"electro-smith/libDaisy","owner":"electro-smith","description":"Hardware Library for the Daisy Audio Platform","archived":false,"fork":false,"pushed_at":"2025-06-12T18:03:20.000Z","size":80989,"stargazers_count":384,"open_issues_count":92,"forks_count":166,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-06-16T05:45:01.442Z","etag":null,"topics":["audio","daisy","embedded","hardware","midi","sound","stm32"],"latest_commit_sha":null,"homepage":"https://www.electro-smith.com/daisy","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/electro-smith.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-08-06T15:31:04.000Z","updated_at":"2025-06-12T18:03:25.000Z","dependencies_parsed_at":"2023-02-15T11:01:40.301Z","dependency_job_id":"53e02101-d974-4b1e-b106-ec554db29650","html_url":"https://github.com/electro-smith/libDaisy","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/electro-smith/libDaisy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electro-smith%2FlibDaisy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electro-smith%2FlibDaisy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electro-smith%2FlibDaisy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electro-smith%2FlibDaisy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/electro-smith","download_url":"https://codeload.github.com/electro-smith/libDaisy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electro-smith%2FlibDaisy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268654292,"owners_count":24285120,"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","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"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":["audio","daisy","embedded","hardware","midi","sound","stm32"],"created_at":"2024-12-07T12:01:09.417Z","updated_at":"2025-08-04T05:31:32.863Z","avatar_url":"https://github.com/electro-smith.png","language":"C++","funding_links":[],"categories":["C++","Electrosmith - Daisy"],"sub_categories":["CPP / C++"],"readme":"\u003c!-- Banner --\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=https://electro-smith.com/daisy\u003e\n        \u003cimg width=15% src=https://raw.githubusercontent.com/electro-smith/daisysp/master/resources/assets/banner.png\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003elibDaisy\u003c/h1\u003e\n\u003ch3 align=\"center\" \u003eHardware Abstraction Library for the Daisy Audio Platform \u003c/h3\u003e\n\u003cbr\u003e\n\u003c!--CI Badges--\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/electro-smith/libDaisy/actions/workflows/build.yml\"\u003e\n      \u003cimg src=\"https://github.com/electro-smith/libDaisy/workflows/Build/badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/electro-smith/libDaisy/actions/workflows/unit_tests.yaml\"\u003e\n      \u003cimg src=\"https://github.com/electro-smith/libDaisy/workflows/Unit%20Tests/badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/electro-smith/libDaisy/actions/workflows/style.yml\"\u003e\n      \u003cimg src=\"https://github.com/electro-smith/libDaisy/workflows/Style/badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://daisy.audio/software/\"\u003e\n      \u003cimg src=\"https://github.com/electro-smith/libDaisy/workflows/Documentation/badge.svg\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- Non-CI Badges --\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/license-MIT-yellow\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://discord.gg/ByHBnMtQTR\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/join-us%20on%20discord-gray.svg?longCache=true\u0026logo=discord\u0026colorB=purple\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://forum.electro-smith.com/\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/chat-daisy%20forum-orange\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\nlibDaisy provides easy access to things such as Audio, Controls, GPIO, MIDI, USB communication, and more.\n\n## Features\n\n- Configurable Audio Callback\n\n- MIDI Drivers\n\n- USB Communication (Audio, MIDI, Serial, etc.)\n\n- Peripheral Device Drivers (SPI, I2S, I2C, etc.)\n\n## Code Example\n\n```c++\nint main(void)\n{\n    // Init\n    float samplerate;\n    hw.Init();\n    samplerate = hw.AudioSampleRate();\n    midi.Init(MidiHandler::INPUT_MODE_UART1, MidiHandler::OUTPUT_MODE_NONE);\n\n    midi.StartReceive();\n    hw.StartAdc();\n    hw.StartAudio(AudioCallback);\n    \n    for(;;)\n    {\n        midi.Listen();\n        // Handle MIDI Events\n        while (midi.HasEvents())\n        {\n            HandleMidiMessage(midi.PopEvent());\n        }\n    }\n}\n```\n\n## Getting Started\n\n- Check out our [Getting Started Page](https://daisy.audio/tutorials/cpp-dev-env/)\n- Browse the reference documentation [on the web](https://daisy.audio/software/)\n- Make some sound!\n\n## Project Overview\n\nPrefixes and their meanings:\n\n- **sys** - System level configuration (clocks, dma, etc.)\n- **per** - Peripheral level, internal to MCU (i2c, spi, etc.)\n- **dev** - External device support (external flash chips, DACs, codecs, etc.)\n- **hid** - User level interface elements (encoders, switches, audio, etc.)\n- **ui** - User interface building blocks like menu systems, event queues, etc.\n- **util** - library level elements used within the library (not included via daisy.h)\n- **daisy** - core API files (specific boards and platforms have extended user APIs that configure libDaisy more below).\n\nAlso included is a core/ folder containing:\n\n- a generic Makefile that can be included in a project Makefile to simplify getting started\n- a linker script for defining the sections of memory used by the firmware\n- core files for starting the hardware (system_stm32h7xx.c, startup_stm32h750xx.s, etc.)\n\nUnit Tests can be found in the tests/ folder. [Here's a tutorial on how to develop unit tested code for libDaisy](doc/md/_b1_Development-Unit-Testing.md).\n\n### daisy.h\n\nThe base-level include file. This is all you need to include to create your own custom hardware that uses libDaisy.\n\n`daisy_seed.h` is an example of a board level file that utilizes libDaisy to define some hardware, and provide flexible access.\n\n### daisy_seed.h\n\nThe SOM-level include file. This can be used with any boards that use the Daisy Seed hardware.\n\nAdditional configuration files, with more specific hardware access are provided below for supported hardware platforms.\n\n### daisy_platform.h\n\nSeveral other pairs of files exist for each of the supported hardware platforms that work with Daisy Seed.\n\nThese are:\n\n- daisy_field\n- daisy_patch\n- daisy_petal\n- daisy_pod\n\nWith these files a number of additional initialization, and configuration is done by the library.\n\nThis allows a user to jump right in without needing a complete understanding of what's going on under the hood.\n\n## Contributing\n\nHere are some ways that you can get involved:\n\n- Proof read the documentation and suggest improvements\n- Test existing functionality and make [issues](https://github.com/electro-smith/libdaisy/issues)\n- Add new functionality to the library. See issues labeled \"feature\"\n- Fix problems with existing codebase. See issues labeled \"bug\" and/or \"polish\"\n\n## Support\n\nHere are some ways to get support and connect with other users and developers:\n\n- Join the [Daisy Forum](https://forum.electro-smith.com/)\n\n- Make a [GitHub Issue](https://github.com/electro-smith/libdaisy/issues)\n\n- Join the [Daisy Discord Server](https://discord.gg/ByHBnMtQTR)\n\n## License\n\nlibDaisy is licensed with the permissive MIT open source license.\n\nThis allows for modification and reuse in both commercial and personal projects.\nIt does not provide a warranty of any kind.\n\nFor the full license, read the [LICENSE](https://github.com/electro-smith/libdaisy/blob/master/LICENSE) file in the root directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectro-smith%2FlibDaisy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felectro-smith%2FlibDaisy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectro-smith%2FlibDaisy/lists"}