{"id":13529771,"url":"https://github.com/tabularelf/audioExt","last_synced_at":"2025-04-01T17:30:56.388Z","repository":{"id":118021745,"uuid":"428151499","full_name":"tabularelf/audioExt","owner":"tabularelf","description":"Audio External Manager for GameMaker Studio 2.3+","archived":false,"fork":false,"pushed_at":"2024-12-07T14:37:59.000Z","size":370,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-07T15:27:06.703Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Game Maker Language","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/tabularelf.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}},"created_at":"2021-11-15T06:43:40.000Z","updated_at":"2024-12-07T14:38:03.000Z","dependencies_parsed_at":"2024-01-03T04:07:52.420Z","dependency_job_id":"c6afaf72-8361-4e9f-a674-08c4c52c6734","html_url":"https://github.com/tabularelf/audioExt","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tabularelf%2FaudioExt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tabularelf%2FaudioExt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tabularelf%2FaudioExt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tabularelf%2FaudioExt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tabularelf","download_url":"https://codeload.github.com/tabularelf/audioExt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246680212,"owners_count":20816652,"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-08-01T07:00:39.242Z","updated_at":"2025-04-01T17:30:56.090Z","avatar_url":"https://github.com/tabularelf.png","language":"Game Maker Language","readme":"# audioExt v0.0.3\n Sound External Loader/Unloader Manager for GameMaker Studio 2.3.1+\n \n This library helps load/unload, assign and manage ogg/wav files into neat lil structs to quickly utilize.\n\nNote: ~~Only wavs currently support 3D audio. Ogg files are streamed in and do not have an option for 3D audio support support 3D audio out of the box~~ Both wav and ogg files support 3D Audio.\nAdditionally: ~~As of 2.3.6 (maybe earlier), `audio_exists()` does not correctly return true for ogg files, due to an internal bug with audio streams.\nInstead, you should use `audioExtSoundExists()` and remove the ogg file with `audioExtOggRemoveStream()` from the database.~~ Fixed as of 2.3.7.\n\nNote: signed 16-bit and unsigned 8-bit are only supported for wav files.\n\n## Supported Platforms:\n\n| Windows | MacOSX | Linux | iOS | Android | HTML5 | Opera GX | Xbox One UWP |\n| --- | --- | --- | --- | --- | --- | --- | --- |\n|✔|✔|✔|✔|✔|❌|✔|✔|\n\n## Functions: \n\n### `audioExtSoundExists(name)`\n\nChecks whether a valid ogg or wav struct exists with that name.\n\nReturns: true/false.\n\n### `audioExtSoundGet(name)`\n\nGets the sound struct from the list.\n\nReturns: struct or `undefined`.\n\n### `audioExtSoundGetSoundID(name/audioStruct)`\n\nGets the soundID from the list. If unloaded, will load in the sound first before passing the soundID.\n\nReturns: soundID.\n\n### `audioExtSoundLoad(name/audioStruct, ...)`\n\nLoads in the audioStruct. Multiple arguments can be provided for each sequential audio.\n\n### `audioExtSoundUnload(name/audioStruct, [forced])`\n\nUnloads the audio. \n\nOptional Argument: `[forced]` is default to false. On true, it will automatically unload the audio. Otherwise, it'll wait until the audio is done playing.\n\n### `audioExtSoundUnloadAll([forced])`\n\nUnloads all currently loaded audio. \n\nOptional Argument: `[forced]` is default to false. On true, it will automatically unload the audio. Otherwise, it'll wait until the audio is done playing.\n\n### `audioExtSoundRemove(name/audioStruct, ...)` \n\nRemoves the audioStruct from the database. Multiple arguments will remove multiple entries.\n\n### `audioExtSoundIsLoaded(name/audioStruct)`\n\nReturns whether the audio is loaded in or not.\n\n### `audioExtSoundClear()`\n\nUnloads all audio entries from memory. \n\n### `audioExtStep()`\n\nA necessary function to include in the step event of your project.\n\n### `audioExtOggAddStream(filename, [preload] [name])`\n\nAdds the ogg file as a streamable source. The audio **must** remain availabe at all times while it's currently in use.\n\nOptional Argument: `[preload]` defaults to true. Adds an entry but doesn't actually load in the file.\n\nOptional Argument: `[name]` defaults to the name of the file (excluding the extension).\n\nReturns: struct or `undefined`.\n\n### `audioExtOggRemoveStream(name)`\n\nRemoves the ogg file, if one exists. Throws an error if it doesn't.\n\nOptional Argument: `[name]` defaults to the name of the file (excluding the extension).\n\n### `audioExtWavAddBuffer(buffer, name, [is3D], [filename])`\n\nAdds the wav file as a sound source from a buffer. The buffer itself is copied. \n\n`name` is the name that you want audioExt to recongize it as.\n\nOptional Argument: `[is3D]` defaults to false. Determines if the audio file is intended for 3D Audio. Otherwise uses whatever the wav format determines. (Mono/Stereo)\n\nOptional Argument: `[preload]` defaults to false. Adds an entry but doesn't actually load in the file.\n\nOptional Argument: `[compressedInMemory]` defaults to false. Compresses data in memory automatically. Note: If `[preload]` is set to true, it will copy the buffer, but quickly compresses down in memory. Making it \"unloaded\".\n\nOptional Argument: `[filename]` defaults to `\"\"`. \n\nReturns: struct or `undefined`.\n\n### `audioExtWavAddFile(filename, [is3D], [compressedInMemory], [name])`\n\nAdds the wav file as a sound source from a filename. As this audio is loaded and handled in memory, you do not need to keep the file around afterwards.\n\nOptional Argument: `[is3D]` defaults to false. Determines if the audio file is intended for 3D Audio. Otherwise uses whatever the wav format determines. (Mono/Stereo)\n\nOptional Argument: `[preload]` defaults to false. Adds an entry but doesn't actually load in the file.\n\nOptional Argument: `[compressedInMemory]` defaults to false. Compresses data in memory automatically. Note: If `[preload]` is set to true, it will load in the file, but quickly compresses down in memory. Making it \"unloaded\".\n\nOptional Argument: `[name]` defaults to the name of the file (excluding the extension).\n\nReturns: struct or `undefined`.\n\n### `audioExtWavRemove(name)`\n\nRemoves the wav file, if one exists. Throws an error if it doesn't.\n\n### `audioExtOggGetNames(name)`\n\nGets the name of all of the ogg files loaded in.\n\nReturns: array\n\n### `audioExtWavGetNames(name)`\n\nGets the name of all of the wav files loaded in.\n\nReturns: array\n\n### `audioExtOggScan(filePath, [preload])`\n\nScans all of the files within the chosen filePath and loads in any ogg files.\n\nOptional Argument: `[preload]` defaults to false. Adds an entry but doesn't actually load in the file.\n\n### `audioExtWavScan(filePath, [preload], [compressedInMemory])`\n\nScans all of the files within the chosen filePath and loads in any wav files.\n\nOptional Argument: `[preload]` defaults to false. Adds an entry but doesn't actually load in the file.\n\nOptional Argument: `[compressedInMemory]` defaults to false. Compresses data in memory automatically. Note: If `[preload]` is set to true, it will copy the buffer, but quickly compresses down in memory. Making it \"unloaded\".\n\n## General Struct methods\n\n`.getSoundID()` - Returns the SoundID from the struct. If unloaded, will load in the sound first before passing the soundID.\n\n`.getName()` - Returns the name from the struct.\n\n`.getFileType()` - Returns the filetype (wav/ogg) from the struct.\n\n`.getFileName()` - Returns the filename from the struct.\n\n`.getChannel()` - Returns the channel type from the struct. \n\n`.load()` - Loads in the audio.\n\n`.unload([forced])` - Unloads the audio. If forced is set to true, it will automatically unload the audio. Otherwise, it'll wait until the audio is done playing.\n\n## Wav struct specific methods\n\n`.getBuffer()` - Returns the bufferID from the struct.\n","funding_links":[],"categories":["Audio"],"sub_categories":["Recommendations"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftabularelf%2FaudioExt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftabularelf%2FaudioExt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftabularelf%2FaudioExt/lists"}