{"id":14963286,"url":"https://github.com/sheaivey/esp32-audioini2s","last_synced_at":"2025-05-09T00:06:29.527Z","repository":{"id":55801345,"uuid":"523233095","full_name":"sheaivey/ESP32-AudioInI2S","owner":"sheaivey","description":"A simple MEMS I2S microphone and audio processing library for ESP32.","archived":false,"fork":false,"pushed_at":"2024-09-02T19:20:13.000Z","size":99,"stargazers_count":63,"open_issues_count":1,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-09T00:06:21.588Z","etag":null,"topics":["arduino-library","audio","audio-processing","esp32","esp32s2","fft","frequency","i2s","inmp441","mems","microphone","oled","vumeter","ws2812b"],"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/sheaivey.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":"2022-08-10T06:49:23.000Z","updated_at":"2025-03-28T16:04:54.000Z","dependencies_parsed_at":"2024-09-22T16:01:20.236Z","dependency_job_id":null,"html_url":"https://github.com/sheaivey/ESP32-AudioInI2S","commit_stats":{"total_commits":17,"total_committers":2,"mean_commits":8.5,"dds":"0.17647058823529416","last_synced_commit":"c5e1e339e38535b951412e220c5e0eda5a5cb795"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheaivey%2FESP32-AudioInI2S","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheaivey%2FESP32-AudioInI2S/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheaivey%2FESP32-AudioInI2S/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheaivey%2FESP32-AudioInI2S/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sheaivey","download_url":"https://codeload.github.com/sheaivey/ESP32-AudioInI2S/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253166518,"owners_count":21864476,"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":["arduino-library","audio","audio-processing","esp32","esp32s2","fft","frequency","i2s","inmp441","mems","microphone","oled","vumeter","ws2812b"],"created_at":"2024-09-24T13:31:18.337Z","updated_at":"2025-05-09T00:06:29.494Z","avatar_url":"https://github.com/sheaivey.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32-AudioInI2S\nA simple MEMS I2S microphone and audio processing library for ESP32.\n\n## Features\n* Simple I2S sample reading and setup. Just choose the pins, sample size and sample rate.\n* Robust audio processing classes for analysis.\n  * Simple FFT compute on your I2S samples.\n  * Frequency bands in 2, 4, 8, 16, 32 or 64 buckets.\n  * Volume Unit Meter.\n  * Set a noise floor to ignore values below it.\n  * Normalize values into desired min/max ranges.\n  * Auto level values for noisy/quiet enviroments where you want to keep values around the normalize max.\n  * Ability to set the peak falloff rates and types. NO_FALLOFF, LINEAR_FALLOFF, ACCELERATE_FALLOFF, EXPONENTIAL_FALLOFF.\n  * Equalizer to adjust the frequency levels for each bucket. Good for lowering the bass or treble response depending on the enviroment.\n\n#### [AudioInI2S Class README](./AudioInI2S.md)\n  * [Basic](examples/Basic/Basic.ino) - Reads I2S microphone data to be viewed in the Serial Plotter.\n\n#### [AudioFrequencyAnalysis Class README](./AudioFrequencyAnalysis.md) (New Way - Pick the frequencies range buckets you want)\n  * [FrequencyRange](examples/FrequencyRange/FrequencyRange.ino) - Reads I2S microphone data, processes them into custom FrequencyRange buckets to be viewed in the Serial Plotter.\n  * [FrequencyRange-Visuals](examples/TTGO-T-Display/FrequencyRange-Visuals/FrequencyRange-Visuals.ino) - Reads I2S microphone data, processes them into custom FrequencyRange buckets and displays them on a\n\n#### [AudioAnalysis Class README](./AudioAnalysis.md) (Old Way - One Shot frequency buckets 20Hz - 20KHz)\n  * [Frequencies](examples/Frequencies/Frequencies.ino) - Reads I2S microphone data, processes them into frequency buckets to be viewed in the Serial Plotter.\n  * [FastLED](examples/FastLED/FastLED.ino) - Reads I2S microphone data, processes them into frequency buckets and displays them on a WS2812B led strip.\n  * [OLED](examples/OLED_128x64/OLED_128x64.ino) - Reads I2S microphone data, processes them into frequency buckets and displays them on a 128x64 OLED display.\n  * [TFT](examples/TTGO-T-Display/Basic-Visuals/Basic-Visuals.ino) - Reads I2S microphone data, processes them into frequency buckets and displays them on a 240x135 16bit TFT display.\n\n240x135 16bit TFT display.\n\n## Hardware \n* ESP32, ESP32 S2, ESP32 C2, ESP32 C3\n* INMP441 - MEMS Microphone\n\n## Known Issues\nThe `AudioAnalysis.h` and `AudioFrequencyAnalysis.h` classes are built on top of ArduinoFF2 V2 develop branch. You can find out more about it here: https://github.com/kosme/arduinoFFT/tree/develop\n\n`AudioAnalysis.h` is not optimized and uses a lot of helper variables and floats. That said it is still very responsive at 1024 sample size and 44100 sample rate.\n\n## Recognition\nThis library's audio processing would not be possible without ArduinoFFT https://github.com/kosme/arduinoFFT\n\n## Licensing \nMIT Open Source - Free to use anywhere. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheaivey%2Fesp32-audioini2s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsheaivey%2Fesp32-audioini2s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheaivey%2Fesp32-audioini2s/lists"}