Skip to content

Handle music looping points #48

Description

@Crystalwarrior

There are two methods: The AO method, and the DRO method.

AO method

On AO, it is a .txt file that bears the same filename as the music track you're trying to loop, e.g. [999] Binary Game.ogg + [999] Binary Game.ogg.txt

Image

Sample rate of the track matters here, .opus tracks are always 48000 sample rate.

There is also a handy music looping guide for the AO method:
https://docs.google.com/document/d/1h3o6-F3syhB388SBEyUXX7PfoBp4MFOC2JoP1nHipQE/edit?tab=t.0

Room Escape and Gameplay.zip

DRO method

The DRO method is based on the music subfolder and bears the same name as the folder, e.g.
dro_castlevania + dro_castlevania.ini
However I don't actually know if the .ini name HAS to be like this, or if it just looks up any ini in the music folder and uses that. Read the DRO codebase for that?
Image

It also uses the sample rates, in addition to having "title" and "filename". "title" is what's used for music display while filename is what is looked up.

[0]
loop_start = 306704
loop_end = 10009867
title = "Belmont The Legend"
filename = "dro_castlevania/Belmont The Legend.opus"

[1]
loop_start = 0
loop_end = 14726653
title = "Blood Drops"
filename = "dro_castlevania/Blood Drops.opus"

[2]
loop_start = 682557
loop_end = 10589414
title = "Crystal Teardrops"
filename = "dro_castlevania/Crystal Teardrops.opus"

The AsyncAO method?!?!?

For AsyncAO, I'd take the AO/DRO method, but also introduce
loop_start_seconds
loop_length_seconds
loop_end_seconds

Working with sample rates is actually really annoying, and I feel if these fields above are defined they should take priority because it can just pre-calculate the required looping points in samples. Basically a user convenience feature.
Alternatively give us an editor so we can set up looping points ourselves like how the Godot Engine lets you do it for looping .ogg and .wav tracks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions