Skip to content

New player commands: decrease/increase tempo factor. #77

@AliceLR

Description

@AliceLR

It would be nice to have player commands to increase/decrease the relative tempo factor. This requires updating to libxmp 4.7.0, so no milestone currently assigned. Proof-of-concept patch via libxmp/libxmp#966:

diff --git a/src/commands.c b/src/commands.c
index 9b4a8239..6266a402 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -145,6 +145,7 @@ static void change_sequence(xmp_context handle, const struct xmp_module_info *mi
  */
 void read_command(xmp_context handle, const struct xmp_module_info *mi, struct control *ctl)
 {
+	double factor;
 	int cmd;
 
 	cmd = read_key();
@@ -276,5 +277,23 @@ void read_command(xmp_context handle, const struct xmp_module_info *mi, struct c
 	case '<':
 		change_sequence(handle, mi, ctl, -1);
 		break;
+	case '[':
+		factor = xmp_get_tempo_factor_relative(handle);
+		if (factor >= 0.2) {
+			factor -= 0.1;
+			if (xmp_set_tempo_factor_relative(handle, factor) == 0) {
+				info_message("Time factor %.02f", factor);
+			}
+		}
+		break;
+	case ']':
+		factor = xmp_get_tempo_factor_relative(handle);
+		if (factor > 0.0) {
+			factor += 0.1;
+			if (xmp_set_tempo_factor_relative(handle, factor) == 0) {
+				info_message("Time factor %.02f", factor);
+			}
+		}
+		break;
 	}
 }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions