xi2

a plain text language that compiles to MIDI
git clone https://git.ce9e.org/xi2.git

commit
2f4fb8ce748b7e8dbc3c2c7ea2baecc314172ecc
parent
2471d46727c63043ecd1356c2a41b7966232ff6c
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-09-19 15:18
mv some code from main to render

Diffstat

M xi2/__main__.py 12 +++---------
M xi2/renderer.py 15 +++++++++++----

2 files changed, 14 insertions, 13 deletions


diff --git a/xi2/__main__.py b/xi2/__main__.py

@@ -100,15 +100,9 @@ def main():
  100   100     midi_tracks.append(t0)
  101   101 
  102   102     for ch, name in enumerate(tracks):
  103    -1         m = midi.Midi()
  104    -1         m.meta_event_str(0, 0x04, name)
  105    -1         try:
  106    -1             prog = int(name)
  107    -1         except ValueError:
  108    -1             prog = 0
  109    -1         m.prog_ch(0, ch, prog)
  110    -1         render(tracks[name], m, ch=ch, offset=args.offset)
  111    -1         midi_tracks.append(m)
   -1   103         midi_tracks.append(
   -1   104             render(name, tracks[name], ch=ch, offset=args.offset)
   -1   105         )
  112   106 
  113   107     if args.outfile == '-':
  114   108         midi.write_file(sys.stdout.buffer, midi_tracks)

diff --git a/xi2/renderer.py b/xi2/renderer.py

@@ -56,16 +56,23 @@ class Renderer:
   56    56                 self.dt = step
   57    57 
   58    58 
   59    -1 def render(seq, midi, ch=0, offset=60):
   60    -1     r = Renderer(midi, ch, offset)
   -1    59 def render(name, seq, ch=0, offset=60):
   -1    60     m = midi.Midi()
   -1    61     m.meta_event_str(0, 0x04, name)
   -1    62     try:
   -1    63         prog = int(name)
   -1    64     except ValueError:
   -1    65         prog = 0
   -1    66     m.prog_ch(0, ch, prog)
   -1    67     r = Renderer(m, ch, offset)
   61    68     r.render_seq(seq)
   62    69     r.stop()
   -1    70     return m
   63    71 
   64    72 
   65    73 if __name__ == '__main__':
   66    74     a = [[['0', '1'], '2'], '4', '5', '-', '', {'0', '4', '7'}, '', '', '0', {'3', '-'}]
   67    -1     t = midi.Midi()
   68    -1     render(a, t)
   -1    75     t = render('name', a)
   69    76 
   70    77     with open('test.mid', 'wb') as fh:
   71    78         midi.write_file(fh, [t])