{"id":16125672,"url":"https://github.com/dy/gl-spectrogram","last_synced_at":"2025-09-12T23:30:56.672Z","repository":{"id":66081307,"uuid":"61009749","full_name":"dy/gl-spectrogram","owner":"dy","description":":milky_way: Render spectrogram of any audio source in webgl or canvas2d","archived":false,"fork":false,"pushed_at":"2017-10-03T05:13:04.000Z","size":1211,"stargazers_count":64,"open_issues_count":6,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-15T12:22:26.535Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://audio-lab.github.io/gl-spectrogram","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dy.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-06-13T05:37:14.000Z","updated_at":"2024-11-06T22:58:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"b692b1cf-7f57-4dfe-84f2-dc9263c2ad36","html_url":"https://github.com/dy/gl-spectrogram","commit_stats":null,"previous_names":["audio-lab/gl-spectrogram"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy%2Fgl-spectrogram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy%2Fgl-spectrogram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy%2Fgl-spectrogram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy%2Fgl-spectrogram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dy","download_url":"https://codeload.github.com/dy/gl-spectrogram/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231423556,"owners_count":18374540,"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":"2024-10-09T21:30:34.615Z","updated_at":"2024-12-31T15:14:01.440Z","avatar_url":"https://github.com/dy.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gl-spectrogram [![experimental](http://badges.github.io/stability-badges/dist/experimental.svg)](http://github.com/badges/stability-badges)\n\nRender spectrogram in webgl or 2d.\n\n[![Spectrogram](https://raw.githubusercontent.com/audio-lab/gl-spectrogram/gh-pages/preview.png \"Spectrogram\")](http://audio-lab.github.io/gl-spectrogram/)\n\n## Usage\n\n[![npm install gl-spectrogram](https://nodei.co/npm/gl-spectrogram.png?mini=true)](https://npmjs.org/package/gl-spectrogram/)\n\n```js\nvar createSpectrogram = require('gl-spectrogram');\n\n//lightweight 2d-canvas version\n//var createSpectrogram = require('gl-spectrogram/2d');\n\nvar spectrogram = createSpectrogram({\n\t//placement settings\n\tcontainer: document.body,\n\tcanvas: canvas,\n\tcontext: 'webgl',\n\n\t//audio settings\n\tmaxDecibels: -30,\n\tminDecibels: -100,\n\tmaxFrequency: 20000,\n\tminFrequency: 20,\n\tsampleRate: 44100,\n\tweighting: 'itu',\n\n\t//grid settings\n\tgrid: true,\n\taxes: false,\n\tlogarithmic: true,\n\n\t//rendering settings\n\tsmoothing: 0.5,\n\tfill: 'inferno',\n\tbackground: null,\n\n\t//useful only for webgl renderer, defines the size of data texture\n\tsize: [1024, 1024]\n});\n\n//push frequencies data, view is shifted for 1 slice\nspectrogram.push(data);\n\n//for even timeflow push data in setTimeout, stream data event, scriptProcessorCallback etc.\nsetTimeout(() =\u003e {\n\tspectrogram.push(getData(data));\n}, 100);\n\n//set data colormap or background\nspectrogram.setFill(colormap|color|pixels);\nspectrogram.setBackground(color|array);\n\n//update colors, grid view\nspectrogram.update(opts);\n\n//called when freqs being pushed\nspectrogram.on('push', magnitudes =\u003e {});\nspectrogram.on('update', magnitudes =\u003e {});\n\n//latest frequencies data in db\nspectrogram.magnitudes;\nspectrogram.peak;\n```\n\n## Related\n\n* [gl-spectrum](https://github.com/audio-lab/gl-spectrum)\n* [plot-grid](https://github.com/audio-lab/plot-grid)\n* [start-app](https://github.com/audio-lab/start-app)\n\n## Inspiration\n\n* [colormap](https://github.com/bpostlethwaite/colormap)\n* [nice-color-palettes](https://github.com/Jam3/nice-color-palettes)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdy%2Fgl-spectrogram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdy%2Fgl-spectrogram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdy%2Fgl-spectrogram/lists"}