WIP: waveform visualization

This commit is contained in:
2025-02-17 00:04:42 +01:00
parent 50123076de
commit ce0c116800
9 changed files with 250 additions and 8 deletions

View File

@@ -6,21 +6,46 @@ namespace AudioEditor;
[GlobalClass]
public partial class ProjectController : Node
{
[Signal] public delegate void AudioClipDroppedEventHandler(Vector2 atPosition, string clipName, double startTime, double endTime);
[Signal] public delegate void AudioClipDroppedEventHandler(Vector2 atPosition, string path, string clipName, double startTime, double endTime);
public override void _Ready()
{
GetWindow().FilesDropped += FilesDropped;
}
public void CreateAudioClipPreview(Control audioClip)
{
// GD.Print(audioClip.Clas());
var path = audioClip.Get("clip_path").AsString();
if (string.IsNullOrEmpty(path))
{
return;
}
if (!AudioFileAnalyzer.Instance.TryGetFromCache(path, out WaveformInfo waveformInfo))
{
return;
}
if (audioClip.HasNode("%Waveform"))
{
var waveform = audioClip.GetNode<Waveform>("%Waveform");
waveform.SetWaveformInfo(waveformInfo);
}
}
private void FilesDropped(string[] files)
{
var mousePosition = GetViewport().GetMousePosition();
var fileName = Path.GetFileName(files[0]);
var path = files[0];
var fileName = Path.GetFileName(path);
GD.Print(fileName);
AudioFileAnalyzer.Instance.AnalyzeFile(path, out WaveformInfo waveformInfo);
EmitSignal(SignalName.AudioClipDropped, mousePosition, fileName, 0, 10 * 1000);
GD.Print(path);
EmitSignal(SignalName.AudioClipDropped, mousePosition, path, fileName, 0, waveformInfo.Length.TotalMilliseconds);
}
}