From bddf5568d4a5794706683062297034f8985c7c3c Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Thu, 28 Oct 2021 17:26:01 -0700 Subject: [PATCH] game maker template project --- gamemaker/FAudioGMSTemplate.yyp | 58 ++++ .../static/Put your static audio here.txt | 0 .../Put your streaming audio here.txt | 0 gamemaker/extensions/FAudioGMS/FAudioGMS.dll | 3 + gamemaker/extensions/FAudioGMS/FAudioGMS.yy | 237 +++++++++++++ gamemaker/objects/AUDIO/AUDIO.yy | 35 ++ gamemaker/objects/AUDIO/CleanUp_0.gml | 1 + gamemaker/objects/AUDIO/Create_0.gml | 6 + gamemaker/objects/AUDIO/Step_2.gml | 1 + gamemaker/options/linux/options_linux.yy | 25 ++ gamemaker/options/mac/options_mac.yy | 33 ++ gamemaker/options/main/options_main.yy | 20 ++ gamemaker/options/operagx/options_operagx.yy | 11 + gamemaker/options/windows/options_windows.yy | 36 ++ gamemaker/rooms/Room1/Room1.yy | 52 +++ .../FAudioGMS_Scripts/FAudioGMS_Scripts.gml | 317 ++++++++++++++++++ .../FAudioGMS_Scripts/FAudioGMS_Scripts.yy | 12 + 17 files changed, 847 insertions(+) create mode 100644 gamemaker/FAudioGMSTemplate.yyp create mode 100644 gamemaker/datafiles/audio/static/Put your static audio here.txt create mode 100644 gamemaker/datafiles/audio/streaming/Put your streaming audio here.txt create mode 100644 gamemaker/extensions/FAudioGMS/FAudioGMS.dll create mode 100644 gamemaker/extensions/FAudioGMS/FAudioGMS.yy create mode 100644 gamemaker/objects/AUDIO/AUDIO.yy create mode 100644 gamemaker/objects/AUDIO/CleanUp_0.gml create mode 100644 gamemaker/objects/AUDIO/Create_0.gml create mode 100644 gamemaker/objects/AUDIO/Step_2.gml create mode 100644 gamemaker/options/linux/options_linux.yy create mode 100644 gamemaker/options/mac/options_mac.yy create mode 100644 gamemaker/options/main/options_main.yy create mode 100644 gamemaker/options/operagx/options_operagx.yy create mode 100644 gamemaker/options/windows/options_windows.yy create mode 100644 gamemaker/rooms/Room1/Room1.yy create mode 100644 gamemaker/scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.gml create mode 100644 gamemaker/scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.yy diff --git a/gamemaker/FAudioGMSTemplate.yyp b/gamemaker/FAudioGMSTemplate.yyp new file mode 100644 index 0000000..ba12b87 --- /dev/null +++ b/gamemaker/FAudioGMSTemplate.yyp @@ -0,0 +1,58 @@ +{ + "resources": [ + {"id":{"name":"AUDIO","path":"objects/AUDIO/AUDIO.yy",},"order":0,}, + {"id":{"name":"FAudioGMS","path":"extensions/FAudioGMS/FAudioGMS.yy",},"order":0,}, + {"id":{"name":"FAudioGMS_Scripts","path":"scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.yy",},"order":0,}, + {"id":{"name":"Room1","path":"rooms/Room1/Room1.yy",},"order":0,}, + ], + "Options": [ + {"name":"Linux","path":"options/linux/options_linux.yy",}, + {"name":"macOS","path":"options/mac/options_mac.yy",}, + {"name":"Main","path":"options/main/options_main.yy",}, + {"name":"Windows","path":"options/windows/options_windows.yy",}, + {"name":"operagx","path":"options/operagx/options_operagx.yy",}, + ], + "isDnDProject": false, + "isEcma": false, + "tutorialPath": "", + "configs": { + "name": "Default", + "children": [], + }, + "RoomOrderNodes": [ + {"roomId":{"name":"Room1","path":"rooms/Room1/Room1.yy",},}, + ], + "Folders": [ + {"folderPath":"folders/Sprites.yy","order":1,"resourceVersion":"1.0","name":"Sprites","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Tile Sets.yy","order":2,"resourceVersion":"1.0","name":"Tile Sets","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Sounds.yy","order":3,"resourceVersion":"1.0","name":"Sounds","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Paths.yy","order":4,"resourceVersion":"1.0","name":"Paths","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Scripts.yy","order":5,"resourceVersion":"1.0","name":"Scripts","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Shaders.yy","order":6,"resourceVersion":"1.0","name":"Shaders","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Fonts.yy","order":7,"resourceVersion":"1.0","name":"Fonts","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Timelines.yy","order":8,"resourceVersion":"1.0","name":"Timelines","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Objects.yy","order":9,"resourceVersion":"1.0","name":"Objects","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Rooms.yy","order":10,"resourceVersion":"1.0","name":"Rooms","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Sequences.yy","order":11,"resourceVersion":"1.0","name":"Sequences","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Animation Curves.yy","order":12,"resourceVersion":"1.0","name":"Animation Curves","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Notes.yy","order":13,"resourceVersion":"1.0","name":"Notes","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/Extensions.yy","order":14,"resourceVersion":"1.0","name":"Extensions","tags":[],"resourceType":"GMFolder",}, + ], + "AudioGroups": [ + {"targets":-1,"resourceVersion":"1.3","name":"audiogroup_default","resourceType":"GMAudioGroup",}, + ], + "TextureGroups": [ + {"isScaled":true,"autocrop":true,"border":2,"mipsToGenerate":0,"groupParent":null,"targets":-1,"resourceVersion":"1.3","name":"Default","resourceType":"GMTextureGroup",}, + ], + "IncludedFiles": [ + {"CopyToMask":-1,"filePath":"datafiles/audio/static","resourceVersion":"1.0","name":"Put your static audio here.txt","resourceType":"GMIncludedFile",}, + {"CopyToMask":-1,"filePath":"datafiles/audio/streaming","resourceVersion":"1.0","name":"Put your streaming audio here.txt","resourceType":"GMIncludedFile",}, + ], + "MetaData": { + "IDEVersion": "2.3.6.595", + }, + "resourceVersion": "1.4", + "name": "FAudioGMSTemplate", + "tags": [], + "resourceType": "GMProject", +} \ No newline at end of file diff --git a/gamemaker/datafiles/audio/static/Put your static audio here.txt b/gamemaker/datafiles/audio/static/Put your static audio here.txt new file mode 100644 index 0000000..e69de29 diff --git a/gamemaker/datafiles/audio/streaming/Put your streaming audio here.txt b/gamemaker/datafiles/audio/streaming/Put your streaming audio here.txt new file mode 100644 index 0000000..e69de29 diff --git a/gamemaker/extensions/FAudioGMS/FAudioGMS.dll b/gamemaker/extensions/FAudioGMS/FAudioGMS.dll new file mode 100644 index 0000000..4228074 --- /dev/null +++ b/gamemaker/extensions/FAudioGMS/FAudioGMS.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10017825778cb5f6992531207b0c1ba7d2fc6fc87da59b326423e390463b90d6 +size 1472000 diff --git a/gamemaker/extensions/FAudioGMS/FAudioGMS.yy b/gamemaker/extensions/FAudioGMS/FAudioGMS.yy new file mode 100644 index 0000000..69ad3b6 --- /dev/null +++ b/gamemaker/extensions/FAudioGMS/FAudioGMS.yy @@ -0,0 +1,237 @@ +{ + "optionsFile": "options.json", + "options": [], + "exportToGame": true, + "supportedTargets": -1, + "extensionVersion": "0.2.0", + "packageId": "", + "productId": "", + "author": "", + "date": "2021-10-21T16:46:44.6241287-07:00", + "license": "", + "description": "", + "helpfile": "", + "iosProps": false, + "tvosProps": false, + "androidProps": false, + "installdir": "", + "files": [ + {"filename":"FAudioGMS.dll","origname":"","init":"","final":"","kind":1,"uncompress":false,"functions":[ + {"externalName":"FAudioGMS_Init","kind":1,"help":"FAudioGMS_Init(spatialDistanceScale, timestep)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_Init","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_Destroy","kind":1,"help":"FAudioGMS_Destroy()","hidden":false,"returnType":2,"argCount":0,"args":[],"resourceVersion":"1.0","name":"FAudioGMS_Destroy","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_StaticSound_LoadWAV","kind":1,"help":"FAudioGMS_StaticSound_LoadWAV(filePath)","hidden":false,"returnType":2,"argCount":0,"args":[ + 1, + ],"resourceVersion":"1.0","name":"FAudioGMS_StaticSound_LoadWAV","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_Play","kind":1,"help":"FAudioGMS_SoundInstance_Play(id, loop)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_Play","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_Pause","kind":1,"help":"FAudioGMS_SoundInstance_Pause(id)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_Pause","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_Stop","kind":1,"help":"FAudioGMS_SoundInstance_Stop(id)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_Stop","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_Destroy","kind":1,"help":"FAudioGMS_SoundInstance_Destroy(id)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_Destroy","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_StaticSound_Destroy","kind":1,"help":"FAudioGMS_StaticSound_Destroy(id)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_StaticSound_Destroy","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_Update","kind":1,"help":"FAudioGMS_Update()","hidden":false,"returnType":2,"argCount":0,"args":[],"resourceVersion":"1.0","name":"FAudioGMS_Update","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_DestroyWhenFinished","kind":1,"help":"FAudioGMS_SoundInstance_DestroyWhenFinished(id)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_DestroyWhenFinished","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_Set3DPosition","kind":1,"help":"FAudioGMS_SoundInstance_Set3DPosition(soundInstanceID, x, y, z)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_Set3DPosition","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SetListenerPosition","kind":1,"help":"FAudioGMS_SetListenerPosition(x, y, z)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SetListenerPosition","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_StreamingSound_LoadOGG","kind":1,"help":"FAudioGMS_StreamingSound_LoadOGG(filePath)","hidden":false,"returnType":2,"argCount":0,"args":[ + 1, + ],"resourceVersion":"1.0","name":"FAudioGMS_StreamingSound_LoadOGG","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetPan","kind":1,"help":"FAudioGMS_SoundInstance_SetPan(soundInstanceID, pan)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetPan","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetPitch","kind":1,"help":"FAudioGMS_SoundInstance_SetPitch(soundInstanceID, pitch)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetPitch","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetVolume","kind":1,"help":"FAudioGMS_SoundInstance_SetVolume(soundInstanceID, volume)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetVolume","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetVolumeOverTime","kind":1,"help":"FAudioGMS_SoundInstance_SetVolumeOverTime(soundInstanceID, volume, milliseconds)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetVolumeOverTime","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_StopAll","kind":1,"help":"FAudioGMS_StopAll()","hidden":false,"returnType":2,"argCount":0,"args":[],"resourceVersion":"1.0","name":"FAudioGMS_StopAll","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetTrackPosition","kind":1,"help":"FAudioGMS_SoundInstance_SetTrackPosition(soundInstanceID, trackPositionInSeconds)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetTrackPosition","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_GetTrackLengthInSeconds","kind":1,"help":"FAudioGMS_SoundInstance_GetTrackLengthInSeconds(soundInstanceID)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_GetTrackLengthInSeconds","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_GetVolume","kind":1,"help":"FAudioGMS_SoundInstance_GetVolume(soundInstanceID)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_GetVolume","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_GetPitch","kind":1,"help":"FAudioGMS_SoundInstance_GetPitch(soundInstanceID)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_GetPitch","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetLowPassFilter","kind":1,"help":"FAudioGMS_SoundInstance_SetLowPassFilter(soundInstanceID, lowPassFilterFrequency, Q)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetLowPassFilter","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetHighPassFilter","kind":1,"help":"FAudioGMS_SoundInstance_SetHighPassFilter(soundInstanceID, highPassFilterFrequency, Q)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetHighPassFilter","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetBandPassFilter","kind":1,"help":"FAudioGMS_SoundInstance_SetBandPassFilter(soundInstanceID, bandPassFilterFrequency, Q)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetBandPassFilter","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_EffectChain_Create","kind":1,"help":"FAudioGMS_EffectChain_Create()","hidden":false,"returnType":2,"argCount":0,"args":[],"resourceVersion":"1.0","name":"FAudioGMS_EffectChain_Create","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_EffectChain_AddDefaultReverb","kind":1,"help":"FAudioGMS_EffectChain_AddDefaultReverb(effectChainID)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_EffectChain_AddDefaultReverb","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_EffectChain_AddReverb","kind":1,"help":"FAudioGMS_EffectChain_AddReverb(effectChainID, wetDryMix, reflectionsDelay, reverbDelay, earlyDiffusion, lateDiffusion, lowEQGain,lowEQCutoff, highEQGain, highEQCutoff, reflectionsGain, reverbGain, decayTime, density, roomSize)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_EffectChain_AddReverb","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_EffectChain_Destroy","kind":1,"help":"FAudioGMS_EffectChain_Destroy(effectChainID)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_EffectChain_Destroy","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetEffectChain","kind":1,"help":"FAudioGMS_SoundInstance_SetEffectChain(soundInstanceID, effectChainID, effectGain)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetEffectChain","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_GetTrackPositionInSeconds","kind":1,"help":"FAudioGMS_SoundInstance_GetTrackPositionInSeconds(soundInstanceID)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_GetTrackPositionInSeconds","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_SetEffectGain","kind":1,"help":"FAudioGMS_SoundInstance_SetEffectGain(soundInstanceID, effectGain)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetEffectGain","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_StaticSound_CreateSoundInstance","kind":1,"help":"FAudioGMS_StaticSound_CreateSoundInstance(staticSoundID)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_StaticSound_CreateSoundInstance","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SoundInstance_Set3DVelocity","kind":1,"help":"FAudioGMS_SoundInstance_Set3DVelocity(soundInstanceID, xVelocity, yVelocity, zVelocity)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_Set3DVelocity","tags":[],"resourceType":"GMExtensionFunction",}, + {"externalName":"FAudioGMS_SetListenerVelocity","kind":1,"help":"FAudioGMS_SetListenerVelocity(xVelocity, yVelocity, zVelocity)","hidden":false,"returnType":2,"argCount":0,"args":[ + 2, + 2, + 2, + ],"resourceVersion":"1.0","name":"FAudioGMS_SetListenerVelocity","tags":[],"resourceType":"GMExtensionFunction",}, + ],"constants":[],"ProxyFiles":[],"copyToTargets":64,"order":[ + {"name":"FAudioGMS_Init","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_StaticSound_LoadWAV","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_StaticSound_CreateSoundInstance","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_StaticSound_Destroy","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_StreamingSound_LoadOGG","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_Play","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_Pause","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_Stop","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetPan","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetPitch","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetVolume","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_Set3DPosition","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_Set3DVelocity","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetTrackPosition","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetVolumeOverTime","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetLowPassFilter","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetHighPassFilter","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetBandPassFilter","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_GetPitch","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_GetVolume","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_GetTrackLengthInSeconds","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_GetTrackPositionInSeconds","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_Destroy","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_DestroyWhenFinished","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_EffectChain_Create","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_EffectChain_AddDefaultReverb","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_EffectChain_AddReverb","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_EffectChain_Destroy","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetEffectChain","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SoundInstance_SetEffectGain","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SetListenerPosition","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_SetListenerVelocity","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_StopAll","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_Update","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + {"name":"FAudioGMS_Destroy","path":"extensions/FAudioGMS/FAudioGMS.yy",}, + ],"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMExtensionFile",}, + ], + "classname": "", + "tvosclassname": null, + "tvosdelegatename": null, + "iosdelegatename": "", + "androidclassname": "", + "sourcedir": "", + "androidsourcedir": "", + "macsourcedir": "", + "maccompilerflags": "", + "tvosmaccompilerflags": "", + "maclinkerflags": "", + "tvosmaclinkerflags": "", + "iosplistinject": "", + "tvosplistinject": "", + "androidinject": "", + "androidmanifestinject": "", + "androidactivityinject": "", + "gradleinject": "", + "androidcodeinjection": "", + "hasConvertedCodeInjection": true, + "ioscodeinjection": "", + "tvoscodeinjection": "", + "iosSystemFrameworkEntries": [], + "tvosSystemFrameworkEntries": [], + "iosThirdPartyFrameworkEntries": [], + "tvosThirdPartyFrameworkEntries": [], + "IncludedResources": [], + "androidPermissions": [], + "copyToTargets": 64, + "iosCocoaPods": "", + "tvosCocoaPods": "", + "iosCocoaPodDependencies": "", + "tvosCocoaPodDependencies": "", + "parent": { + "name": "Extensions", + "path": "folders/Extensions.yy", + }, + "resourceVersion": "1.2", + "name": "FAudioGMS", + "tags": [], + "resourceType": "GMExtension", +} \ No newline at end of file diff --git a/gamemaker/objects/AUDIO/AUDIO.yy b/gamemaker/objects/AUDIO/AUDIO.yy new file mode 100644 index 0000000..a7cc7a3 --- /dev/null +++ b/gamemaker/objects/AUDIO/AUDIO.yy @@ -0,0 +1,35 @@ +{ + "spriteId": null, + "solid": false, + "visible": true, + "spriteMaskId": null, + "persistent": true, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 1, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":0,"eventType":12,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + {"isDnD":false,"eventNum":2,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "Objects", + "path": "folders/Objects.yy", + }, + "resourceVersion": "1.0", + "name": "AUDIO", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/gamemaker/objects/AUDIO/CleanUp_0.gml b/gamemaker/objects/AUDIO/CleanUp_0.gml new file mode 100644 index 0000000..d8dbe47 --- /dev/null +++ b/gamemaker/objects/AUDIO/CleanUp_0.gml @@ -0,0 +1 @@ +FAudioGMS_Destroy(); diff --git a/gamemaker/objects/AUDIO/Create_0.gml b/gamemaker/objects/AUDIO/Create_0.gml new file mode 100644 index 0000000..9c5ef31 --- /dev/null +++ b/gamemaker/objects/AUDIO/Create_0.gml @@ -0,0 +1,6 @@ +var spatialDistanceScale = 50; // makes "3D" audio louder +FAudioGMS_Init(spatialDistanceScale, 1 / 60); + +/* Init Effects Chains Here */ + +/* Load Audio Assets Here */ diff --git a/gamemaker/objects/AUDIO/Step_2.gml b/gamemaker/objects/AUDIO/Step_2.gml new file mode 100644 index 0000000..69c3986 --- /dev/null +++ b/gamemaker/objects/AUDIO/Step_2.gml @@ -0,0 +1 @@ +FAudioGMS_Update(); \ No newline at end of file diff --git a/gamemaker/options/linux/options_linux.yy b/gamemaker/options/linux/options_linux.yy new file mode 100644 index 0000000..4978896 --- /dev/null +++ b/gamemaker/options/linux/options_linux.yy @@ -0,0 +1,25 @@ +{ + "option_linux_display_name": "Created with GameMaker Studio 2", + "option_linux_version": "1.0.0.0", + "option_linux_maintainer_email": "", + "option_linux_homepage": "http://www.yoyogames.com", + "option_linux_short_desc": "", + "option_linux_long_desc": "", + "option_linux_splash_screen": "${base_options_dir}/linux/splash/splash.png", + "option_linux_display_splash": false, + "option_linux_icon": "${base_options_dir}/linux/icons/64.png", + "option_linux_start_fullscreen": false, + "option_linux_allow_fullscreen": false, + "option_linux_interpolate_pixels": true, + "option_linux_display_cursor": true, + "option_linux_sync": false, + "option_linux_resize_window": false, + "option_linux_scale": 0, + "option_linux_texture_page": "2048x2048", + "option_linux_enable_steam": false, + "option_linux_disable_sandbox": false, + "resourceVersion": "1.0", + "name": "Linux", + "tags": [], + "resourceType": "GMLinuxOptions", +} \ No newline at end of file diff --git a/gamemaker/options/mac/options_mac.yy b/gamemaker/options/mac/options_mac.yy new file mode 100644 index 0000000..73e249f --- /dev/null +++ b/gamemaker/options/mac/options_mac.yy @@ -0,0 +1,33 @@ +{ + "option_mac_display_name": "Created with GameMaker Studio 2", + "option_mac_app_id": "com.company.game", + "option_mac_version": "1.0.0.0", + "option_mac_output_dir": "~/gamemakerstudio2", + "option_mac_team_id": "", + "option_mac_signing_identity": "Developer ID Application:", + "option_mac_copyright": "", + "option_mac_splash_png": "${base_options_dir}/mac/splash/splash.png", + "option_mac_icon_png": "${base_options_dir}/mac/icons/1024.png", + "option_mac_installer_background_png": "${base_options_dir}/mac/splash/installer_background.png", + "option_mac_menu_dock": false, + "option_mac_display_cursor": true, + "option_mac_start_fullscreen": false, + "option_mac_allow_fullscreen": false, + "option_mac_interpolate_pixels": true, + "option_mac_vsync": false, + "option_mac_resize_window": false, + "option_mac_enable_retina": false, + "option_mac_scale": 0, + "option_mac_texture_page": "2048x2048", + "option_mac_build_app_store": false, + "option_mac_allow_incoming_network": false, + "option_mac_allow_outgoing_network": false, + "option_mac_app_category": "Games", + "option_mac_enable_steam": false, + "option_mac_disable_sandbox": false, + "option_mac_apple_sign_in": false, + "resourceVersion": "1.0", + "name": "macOS", + "tags": [], + "resourceType": "GMMacOptions", +} \ No newline at end of file diff --git a/gamemaker/options/main/options_main.yy b/gamemaker/options/main/options_main.yy new file mode 100644 index 0000000..1897bbe --- /dev/null +++ b/gamemaker/options/main/options_main.yy @@ -0,0 +1,20 @@ +{ + "option_gameguid": "6239593c-20e3-4b3e-8577-02c9f8437d63", + "option_gameid": "0", + "option_game_speed": 60, + "option_mips_for_3d_textures": false, + "option_draw_colour": 4294967295, + "option_window_colour": 255, + "option_steam_app_id": "0", + "option_sci_usesci": false, + "option_author": "", + "option_lastchanged": "", + "option_spine_licence": false, + "option_template_image": "${base_options_dir}/main/template_image.png", + "option_template_icon": "${base_options_dir}/main/template_icon.png", + "option_template_description": null, + "resourceVersion": "1.2", + "name": "Main", + "tags": [], + "resourceType": "GMMainOptions", +} \ No newline at end of file diff --git a/gamemaker/options/operagx/options_operagx.yy b/gamemaker/options/operagx/options_operagx.yy new file mode 100644 index 0000000..8d52513 --- /dev/null +++ b/gamemaker/options/operagx/options_operagx.yy @@ -0,0 +1,11 @@ +{ + "option_operagx_version": "1.0.0.0", + "option_operagx_game_name": "${project_name}", + "option_operagx_interpolate_pixels": true, + "option_operagx_scale": 0, + "option_operagx_texture_page": "2048x2048", + "resourceVersion": "1.0", + "name": "operagx", + "tags": [], + "resourceType": "GMOperaGXOptions", +} \ No newline at end of file diff --git a/gamemaker/options/windows/options_windows.yy b/gamemaker/options/windows/options_windows.yy new file mode 100644 index 0000000..44cc31c --- /dev/null +++ b/gamemaker/options/windows/options_windows.yy @@ -0,0 +1,36 @@ +{ + "option_windows_display_name": "Created with GameMaker Studio 2", + "option_windows_executable_name": "${project_name}.exe", + "option_windows_version": "1.0.0.0", + "option_windows_company_info": "YoYo Games Ltd", + "option_windows_product_info": "Created with GameMaker Studio 2", + "option_windows_copyright_info": "", + "option_windows_description_info": "A GameMaker Studio 2 Game", + "option_windows_display_cursor": true, + "option_windows_icon": "${base_options_dir}/windows/icons/icon.ico", + "option_windows_save_location": 0, + "option_windows_splash_screen": "${base_options_dir}/windows/splash/splash.png", + "option_windows_use_splash": false, + "option_windows_start_fullscreen": false, + "option_windows_allow_fullscreen_switching": false, + "option_windows_interpolate_pixels": false, + "option_windows_vsync": false, + "option_windows_resize_window": false, + "option_windows_borderless": false, + "option_windows_scale": 0, + "option_windows_copy_exe_to_dest": false, + "option_windows_sleep_margin": 10, + "option_windows_texture_page": "2048x2048", + "option_windows_installer_finished": "${base_options_dir}/windows/installer/finished.bmp", + "option_windows_installer_header": "${base_options_dir}/windows/installer/header.bmp", + "option_windows_license": "${base_options_dir}/windows/installer/license.txt", + "option_windows_nsis_file": "${base_options_dir}/windows/installer/nsis_script.nsi", + "option_windows_enable_steam": false, + "option_windows_disable_sandbox": false, + "option_windows_steam_use_alternative_launcher": false, + "option_windows_use_x64": false, + "resourceVersion": "1.1", + "name": "Windows", + "tags": [], + "resourceType": "GMWindowsOptions", +} \ No newline at end of file diff --git a/gamemaker/rooms/Room1/Room1.yy b/gamemaker/rooms/Room1/Room1.yy new file mode 100644 index 0000000..f69dcfa --- /dev/null +++ b/gamemaker/rooms/Room1/Room1.yy @@ -0,0 +1,52 @@ +{ + "isDnd": false, + "volume": 1.0, + "parentRoom": null, + "views": [ + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1366,"hview":768,"xport":0,"yport":0,"wport":1366,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1366,"hview":768,"xport":0,"yport":0,"wport":1366,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1366,"hview":768,"xport":0,"yport":0,"wport":1366,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1366,"hview":768,"xport":0,"yport":0,"wport":1366,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1366,"hview":768,"xport":0,"yport":0,"wport":1366,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1366,"hview":768,"xport":0,"yport":0,"wport":1366,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1366,"hview":768,"xport":0,"yport":0,"wport":1366,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1366,"hview":768,"xport":0,"yport":0,"wport":1366,"hport":768,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, + ], + "layers": [ + {"instances":[],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"Instances","tags":[],"resourceType":"GMRInstanceLayer",}, + {"spriteId":null,"colour":4278190080,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":15.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",}, + ], + "inheritLayers": false, + "creationCodeFile": "", + "inheritCode": false, + "instanceCreationOrder": [], + "inheritCreationOrder": false, + "sequenceId": null, + "roomSettings": { + "inheritRoomSettings": false, + "Width": 1366, + "Height": 768, + "persistent": false, + }, + "viewSettings": { + "inheritViewSettings": false, + "enableViews": false, + "clearViewBackground": false, + "clearDisplayBuffer": true, + }, + "physicsSettings": { + "inheritPhysicsSettings": false, + "PhysicsWorld": false, + "PhysicsWorldGravityX": 0.0, + "PhysicsWorldGravityY": 10.0, + "PhysicsWorldPixToMetres": 0.1, + }, + "parent": { + "name": "Rooms", + "path": "folders/Rooms.yy", + }, + "resourceVersion": "1.0", + "name": "Room1", + "tags": [], + "resourceType": "GMRoom", +} \ No newline at end of file diff --git a/gamemaker/scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.gml b/gamemaker/scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.gml new file mode 100644 index 0000000..54d46ef --- /dev/null +++ b/gamemaker/scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.gml @@ -0,0 +1,317 @@ +// StaticSounds are usually short and intended to be played multiple times. +// All of the sound data lives in memory for as long as the StaticSound exists. +// Playing a StaticSound returns a SoundInstance. +function LoadStaticSound(filename) +{ + var filePath = "audio\\static\\" + filename; + var staticSoundID = FAudioGMS_StaticSound_LoadWAV(filePath); + return new StaticSound(staticSoundID); +} + +function StaticSound(_staticSoundID) constructor +{ + staticSoundID = _staticSoundID; + + // Returns a sound instance! + // MUST be destroyed when you aren't referencing it any more or you will leak memory! + static Play = function(pan = 0, pitch = 1, volume = 1, loop = false) + { + var instanceID = FAudioGMS_StaticSound_CreateSoundInstance(staticSoundID); + var instance = new SoundInstance(instanceID); + instance.SetPan(pan); + instance.SetPitch(pitch); + instance.SetVolume(volume); + instance.Play(loop); + return instance; + } + + // Automatically destroys the SoundInstance when playback is finished. + // Does NOT return an instance! + static PlayOneOff = function(pan = 0, pitch = 1, volume = 1) + { + var instance = Play(pan, pitch, volume, false); + instance.DestroyWhenFinished(); + } + + // Returns a sound instance! + // MUST be destroyed when you aren't referencing it any more or you will leak memory! + static PlaySpatial = function(xPosition, yPosition, zPosition, pitch = 1, volume = 1, loop = false) + { + var instanceID = FAudioGMS_StaticSound_CreateSoundInstance(staticSoundID); + var instance = new SoundInstance(instanceID); + instance.Set3DPosition(xPosition, yPosition, zPosition); + instance.SetPitch(pitch); + instance.SetVolume(volume); + instance.Play(loop); + return instance; + } + + // Automatically destroys the SoundInstance when playback is finished. + // Does NOT return an instance! + static PlaySpatialOneOff = function(xPosition, yPosition, zPosition, pitch = 1, volume = 1) + { + var instance = PlaySpatial(xPosition, yPosition, zPosition, pitch, volume, false); + instance.DestroyWhenFinished(); + } + + // Destroys the FAudioGMS static sound. + // If you use the StaticSound after calling this function, you are going to have a bad time. + // If you call this while there are still instances of the StaticSound, you are going to have a bad time. + static Destroy = function() + { + FAudioGMS_StaticSound_Destroy(staticSoundID); + } +} + +// StreamingSounds are longer and usually only one copy is played at a time. +// The audio is streamed off the disk, so only a small amount of memory is used at a time. +// Good for things like music or voiceover playback. +// Note that StreamingSounds are SoundInstances. +function LoadStreamingSound(filename) +{ + var filePath = "audio\\streaming\\" + filename; + soundInstanceID = FAudioGMS_StreamingSound_LoadOGG(filePath); + return new SoundInstance(soundInstanceID); +} + +function SoundInstance(_soundInstanceID) constructor +{ + soundInstanceID = _soundInstanceID; + + // Plays the sound or resumes from pause. + static Play = function(loop = false) + { + FAudioGMS_SoundInstance_Play(soundInstanceID, loop); + } + + // Pauses playback. + static Pause = function() + { + FAudioGMS_SoundInstance_Pause(soundInstanceID); + } + + // Stops playback completely. If Play is called it will resume from the beginning of the sound. + static Stop = function() + { + FAudioGMS_SoundInstance_Stop(soundInstanceID); + } + + // Sets the 3-dimensional position of the sound. You probably want to use SetListenerPosition too. + static Set3DPosition = function(xPosition, yPosition, zPosition) + { + FAudioGMS_SoundInstance_Set3DPosition(soundInstanceID, xPosition, yPosition, zPosition); + } + + // Sets the 3-dimensional velocity of the sound. You probably want to use SetListenerVelocity too. + static Set3DVelocity = function(xVelocity, yVelocity, zVelocity) + { + FAudioGMS_SoundInstance_Set3DVelocity(soundInstanceID, xVelocity, yVelocity, zVelocity); + } + + // Sets the panning value of the sound. -1 is farthest left, 1 is farthest right, 0 is center. + // NOTE: This is ignored if you have called Set3DPosition. + static SetPan = function(pan) + { + FAudioGMS_SoundInstance_SetPan(soundInstanceID, pan); + } + + // Sets the pitch of the sound. Default is 1. Lower than 1 is pitched down, higher than 1 is pitched up. + static SetPitch = function(pitch) + { + FAudioGMS_SoundInstance_SetPitch(soundInstanceID, pitch); + } + + // Sets the volume of the sound. Default is 1. Lower than 1 is quieter, greater than 1 is louder. + // If you set the milliseconds value then this will fade over time. + static SetVolume = function(volume, milliseconds = 0) + { + if (milliseconds > 0) + { + FAudioGMS_SoundInstance_SetVolumeOverTime(soundInstanceID, volume, milliseconds); + } + else + { + FAudioGMS_SoundInstance_SetVolume(soundInstanceID, volume); + } + } + + // Sets the position of track playback. + static SetTrackPosition = function(seconds) + { + FAudioGMS_SoundInstance_SetTrackPosition(soundInstanceID, seconds); + } + + // Sets a low pass filter on the sound. + // frequency: 0.0 <-> 1.0. 1.0 means all sound gets through. + // Q: set this to 1 unless you know what you're doing + static SetLowPassFilter = function(frequency, Q = 1.0) + { + FAudioGMS_SoundInstance_SetLowPassFilter(soundInstanceID, frequency, Q); + } + + // Sets a high pass filter on the sound. + // frequency: 0.0 <-> 1.0. 0.0 means all sound gets through. + // Q: set this to 1 unless you know what you're doing + static SetHighPassFilter = function(frequency, Q = 1.0) + { + FAudioGMS_SoundInstance_SetHighPassFilter(soundInstanceID, frequency, Q); + } + + // Sets a band pass filter ont he sound. + // frequency: 0.0 <-> 1.0 + // Q: set this to 1 unless you know what you're doing + static SetBandPassFilter = function(frequency, Q = 1.0) + { + FAudioGMS_SoundInstance_SetBandPassFilter(soundInstanceID, frequency, Q); + } + + // Sets an effect chain on the sound. + // Gain is how much the effect chain "affects" the sound. 1.0 is max. + // NOTE: Any changes to the effect chain will NOT apply automatically after this is set! + // You MUST call this function again if you want changed parameters to apply! + static SetEffectChain = function(effectChain, gain) + { + FAudioGMS_SoundInstance_SetEffectChain(soundInstanceID, effectChain.effectChainID, gain); + } + + // Sets the effect gain of the current effect chain. + // Does nothing if no effect chain is set. + static SetEffectGain = function(gain) + { + FAudioGMS_SoundInstance_SetEffectGain(soundInstanceID, gain); + } + + // Gets the pitch of the sound. + static GetPitch = function() + { + return FAudioGMS_SoundInstance_GetPitch(soundInstanceID); + } + + // Gets the volume of the sound. + static GetVolume = function() + { + return FAudioGMS_SoundInstance_GetVolume(soundInstanceID); + } + + // Gets the total length of the track. + static GetTrackLengthInSeconds = function() + { + return FAudioGMS_SoundInstance_GetTrackLengthInSeconds(soundInstanceID); + } + + // Gets the current track position. + static GetTrackPositionInSeconds = function() + { + return FAudioGMS_SoundInstance_GetTrackPositionInSeconds(soundInstanceID); + } + + // Destroys the FAudioGMS sound instance. + // If you use the SoundInstance after calling this you are going to have a bad time. + static Destroy = function() + { + FAudioGMS_SoundInstance_Destroy(soundInstanceID); + } + + // Sets the FAudioGMS sound instance to destroy itself when playback is done. + // Calling this on a looping sound is not a good idea. + // If you use the SoundInstance after calling this you might have a bad time. + static DestroyWhenFinished = function() + { + FAudioGMS_SoundInstance_DestroyWhenFinished(soundInstanceID); + } + + SetPan(0); + SetPitch(1); + SetVolume(1); +} + +// Effect chains allow you to modify sound playback using audio effects. +// Right now only reverb is implemented, but more effects will probably come later. +function EffectChain() constructor +{ + effectChainID = FAudioGMS_EffectChain_Create(); + + // Adds a reverb effect to the effect chain. + static AddReverb = function( + wetDryMix, + reflectionsDelay, + reverbDelay, + earlyDiffusion, + lateDiffusion, + lowEQGain, + lowEQCutoff, + highEQGain, + highEQCutoff, + reflectionsGain, + reverbGain, + decayTime, + density, + roomSize + ) { + FAudioGMS_EffectChain_AddReverb( + effectChainID, + wetDryMix, + reflectionsDelay, + reverbDelay, + earlyDiffusion, + lateDiffusion, + lowEQGain, + lowEQCutoff, + highEQGain, + highEQCutoff, + reflectionsGain, + reverbGain, + decayTime, + density, + roomSize + ); + } + + // Adds a default reverb effect to the effect chain. + // This is a good place to start if you don't know what all the reverb params do. + static AddDefaultReverb = function() + { + FAudioGMS_EffectChain_AddReverb( + effectChainID, + 100, + 7, + 11, + 15, + 15, + 8, + 4, + 8, + 6, + -26, + 10, + 1.49, + 100, + 100 + ); + } + + // Destroys the FAudioGMS effect chain. + // If you use the EffectChain after calling this you are going to have a bad time. + static Destroy = function() + { + FAudioGMS_EffectChain_Destroy(effectChainID); + } +} + +// Sets the position of the listener for 3D audio. +function SetListenerPosition(xPosition, yPosition, zPosition) +{ + FAudioGMS_SetListenerPosition(xPosition, yPosition, zPosition); +} + +// Sets the velocity of the listener for 3D audio. +function SetListenerVelocity(xVelocity, yVelocity, zVelocity) +{ + FAudioGMS_SetListenerVelocity(xVelocity, yVelocity, zVelocity); +} + +// Stops all audio playback. +function StopAllAudio() +{ + FAudioGMS_StopAll(); +} diff --git a/gamemaker/scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.yy b/gamemaker/scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.yy new file mode 100644 index 0000000..7cb4d9a --- /dev/null +++ b/gamemaker/scripts/FAudioGMS_Scripts/FAudioGMS_Scripts.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "Scripts", + "path": "folders/Scripts.yy", + }, + "resourceVersion": "1.0", + "name": "FAudioGMS_Scripts", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file