Implement BPM support

Based on #62896, only implements the BPM support part.

* Implements BPM support in the AudioStreamOGG/MP3 importers.
* Can select BPM/Bar Size and total beats in a song file, as well as edit looping points.
* Looping is now BPM aware
* Added a special importer UI for configuring this.
* Added a special preview showing the audio waveform as well as the playback position in the resource picker.
* Renamed `AudioStream::instance` to `instantiate` for correctness.
This commit is contained in:
reduz
2022-07-21 01:00:58 +02:00
committed by Juan Linietsky
parent 976cb7ea9f
commit d1ddee2258
41 changed files with 1548 additions and 438 deletions

View File

@@ -187,6 +187,8 @@ private:
float playback_speed_scale = 1.0f;
bool tag_used_audio_streams = false;
struct Bus {
StringName name;
bool solo = false;
@@ -380,6 +382,7 @@ public:
bool is_playback_paused(Ref<AudioStreamPlayback> p_playback);
uint64_t get_mix_count() const;
uint64_t get_mixed_frames() const;
void notify_listener_changed();
@@ -424,6 +427,8 @@ public:
String capture_get_device();
void capture_set_device(const String &p_name);
void set_enable_tagging_used_audio_streams(bool p_enable);
AudioServer();
virtual ~AudioServer();
};