Coder Social home page Coder Social logo

kyzfrintin / godot-mixing-desk Goto Github PK

View Code? Open in Web Editor NEW
636.0 15.0 31.0 250.35 MB

A complete audio solution for Godot 3.3.x, making procedural sound and adaptive/procedural music possible with a few nodes and a couple lines of code.

License: MIT License

GDScript 100.00%
sound godot music audio game-development game-audio procedural-sound interactive-music adaptive-music

godot-mixing-desk's People

Contributors

clementrivaille avatar irmozius avatar kyzfrintin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

godot-mixing-desk's Issues

Audio master bus shutting off on repeat of an earlier played song in Endless Shuffle play mode

This only happens intermittently, but is a damn pain in the ass.

Steps to reproduce:

  1. Have a playlist of 2 or more tracks
  2. Play in Endless Shuffle mode
  3. Wait for the first song to play, to play again after MDM has shuffled to another
    4: Observe how the audio (sometimes) shuts completely off

I have tried and tried and to figure out the exact cause of this. Any assistance would be a massive help.

I plan on using your addon. Thanks!

I couldn't find you on Discord (as Discord said your account didn't exist when I searched for it). I also couldn't figure out how to private message you on Github.

What I want to tell you is that I plan on using Mixing Desk in my game. This is because it is too much of a hassle to get SonicPi to work in Godot. I appreciate your work.

Also, are there working examples of how to use your addon? I keep getting errors when trying to create a test sound (Random Scatter). I already fixed the spaces where tabs should be issue (on my copy of the addon), so that is not the issue.

Edit: Nevermind about the working example, I found your demo project.

API documentation

I have a bit of trouble finding the methods available to use the add-on like init_song() or play(song). It would be nice to have the list of all methods available and in what scopes ($MixingDeskMusic ? $Song ?...)

Song does not loop

Hi @kyzfrintin !
First of all, thank you for this, it looks amazing! And might save my life on one or two rhythm game projects I'm currently working on.

But there's one essential thing I can't get to work, although I followed all the instructions: I can't make a song loop. The MDM node is set to loop, points to the song (all the rhythmical values are set correctly), which plays, but then doesn't loop. I only put a core container in there. Is there something I'm missing?
I also noticed that previous versions of GDM had a loop property on the song node, which I don't see in the current version.

Addon cannot be activated

Due to a typo on line 24 of mixing_desk.gd

Preloading “sound/2D/multi_sound.gd” throws an error because 2D should be lowercase, 2d.

Will submit a merge later if this doesn’t get fixed already.

Cannot load plugin due to syntax error, probably in mixing_desk_music.gd

As far as I can tell from a cursory search, there is supposed to be an argument passed to "stop()" on line 432 of mixing_desk_music.gd... I would assume you're trying to stop the current song, but I'm not entirely certain so I haven't made any changes or pull requests.

As it is now, I can't try out the plugin because Godot won't let me enable it with syntax errors in its scripts. Hopefully that's the culprit?

Beat progress variable

Telegraphing events before they happen or having windup animations for events that synchronise to the beat of the music is a common enough scenario. It's not feasible to have a signal like beat for this (because the amount of leeway you need can vary), but a beat progress variable could be useful for this.

Admittedly, I've not looked into the code for too long, but I couldn't find anything like it. It's just a couple lines of code at the end of _process to add it, though.

beat_progress = ((time/beat_length_ms) * 1000.0)
beat_progress = beat_progress - int(floor(beat_progress))
returns beat_progress between 0.0 and 1.0

& then any nodes which use it would compare beat_progress & current beat to decide when to do whatever logic they need to.

I'm not aware of any other way to do this using GMD - if there is a better way, I'd love to hear it. But if not, I think this change would be really useful (:

Issue with empty autoplay

When using it for the first time and setting the nodes as in the documentation, there's a bug when running the script saying : Attempt to call function 'get_index' in base 'null instance' on a null instance.

By investigating I found it was the autoplay parameter that launched even when it wasn't called, and it needed to be set to the MDM node to work. So the Autoplay property of the MixingDeskMusic node MUST point to itself, or else it will either autoplay or throw an error.

Proposal : the autoplay property is confusing as it needs to point to a node. A simple checkbox On/Off would be feel more natural. It could be maybe even better to put it in the Song node and not the main MDM node since it can have multiple songs (I guess ?).

First thing to fix is to not run autoplay when the property is empty.

AudioStreamPlayer node not found

Hi, Thanks for making this amazing add-on!
I watched your tutorial and it is not working when I try to play the song through the code.
Godot keeps telling me that can't find the AudioStreamPlayer node when I init the song by its name.
Do I miss something?

Screenshot

Visual editor?

Not so much an issue, more of a question. Are there plans for adding a visual editor for this plugin? I'm in a team where not everybody is familiar with Godot, having the option for the music & sound guy to work in a similar fashion to fmod or wwise would be great to have.

Lot of things broken ?

I ran with a bunch of issues with MDM:

  • toggle/fade/mute not working (in the exemple 2 for instance).
  • lack of proper audio tracking (audiostremplayer.isplaying() doesn't seem to work), so no way to tell if a song plays or not.
  • as another issue state, lack of api doc.
  • playing audio samples with different size inside a same Container seems to crash MDM...
  • a song with 4 bars crashes because the MDM node tries to go to a 5th bar for no reason.

Needs a demo project

This seems like a really nice plugin but its a bit difficut to figure out from the documentation how to actually use the different features and what does what (maybe its more intuitive to audio engineers?)

Can this do basic crossfading of two songs? It feels like it probably can but I can't tell from the docs or looking at the code.

Fading or muting immediately?

Hello! I just downloaded this plugin and I'm trying to toggle fade different layers immediately, but the plugin always waits till a loop finished before it mute or fade. How would you fade or mute a layer immediately?

Error when song stops

I'm following your tutorial over at youtube and installed the github version.
Autoplay of the first song and the attached random ambient pieces seem to work fine, but when the core container is done playing it throws this error.

mixing_desk_music.gd
Attempt to call function 'get_playback_position' in base 'null instance' on a null instance.
Line 103 time = ref_track.get_playback_position()

Took some screenshots as well, maybe they help:

Node setup

image

Song settings

image

Inspector

image

typo in func _get_ransnd

Hello!

It seems that around line 50 in several of the files (ran_cont.gd in 2D and 3D folders),
var chance = randi() % children - 1
should be
var chance = randi() % (children - 1)

It makes the script crash otherwise.

Thank you very much for this addon, it's very useful :)

ConcatContainer and SeqContainer don't seem to work

Maybe there is a thing I don't understand, but I can't manage to make theses two containers to work properly.

The Concat produce an error (i'll come back to write the exact one).

The Seq plays the first audiostreamplayer but stops right after.

Are sounds have to be of a certain lenght or something ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.