view patches/0001-Midi2ly-grok-midi-files-with-up-to-256-tracks-was-32.patch @ 6512:ccc20ae889ca default tip guix

mingw::guile-2.0.7 builds.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Thu, 24 Mar 2016 08:03:39 +0100
parents 0247125e995d
children
line wrap: on
line source

From 85c0ce205e1a9b5fad4ac79d02292ac1231db532 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Tue, 18 Jan 2011 15:31:58 +0100
Subject: [PATCH] Midi2ly: grok midi files with up to 256 tracks, was 32.  Fixes #1479.

---
 scripts/midi2ly.py |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/scripts/midi2ly.py b/scripts/midi2ly.py
index 86c32ba..b03e1a8 100644
--- a/scripts/midi2ly.py
+++ b/scripts/midi2ly.py
@@ -712,11 +712,20 @@ def dump_channel (thread, skip):
 
     return '\n  '.join (lines) + '\n'
 
+def number2ascii (i):
+    s = ''
+    i += 1
+    while i > 0:
+        m = (i - 1) % 26
+        s = '%c' % (m + ord ('A')) + s
+        i = (i - m)/26
+    return s
+
 def track_name (i):
-    return 'track%c' % (i + ord ('A'))
+    return 'track' + number2ascii (i)
 
 def channel_name (i):
-    return 'channel%c' % (i + ord ('A'))
+    return 'channel' + number2ascii (i)
 
 def dump_track (channels, n):
     s = '\n'
diff --git a/python/midi.c b/python/midi.c
index 972410f..4e6368a 100644
--- a/python/midi.c
+++ b/python/midi.c
@@ -388,7 +388,7 @@ midi_parse (unsigned char **midi,unsigned  char *midi_end)
   format = get_number (midi, *midi + 2, 2);
   tracks = get_number (midi, *midi + 2, 2);
 
-  if (tracks > 32)
+  if (tracks > 256)
     return midi_error (__FUNCTION__,  ": too many tracks: ", compat_itoa (tracks));
   
   division = get_number (midi, *midi + 2, 2) * 4;
-- 
1.7.1