debian/0000755000000000000000000000000012002756530007166 5ustar debian/songwrite.xpm0000644000000000000000000001302611327517766011756 0ustar /* XPM */ static char *songwrite[] = { /* columns rows colors chars-per-pixel */ "32 32 211 2", " c #000000", ". c #070309", "X c #0A0201", "o c #0C0807", "O c #0C0B0B", "+ c #140300", "@ c #110F0F", "# c #180000", "$ c #1F0800", "% c #141111", "& c #1A1616", "* c #240000", "= c #220900", "- c #2D0000", "; c #2A0B00", ": c #281100", "> c #360000", ", c #340E00", "< c #3A0000", "1 c #311000", "2 c #391701", "3 c #311C16", "4 c #391E14", "5 c #272727", "6 c #2C2828", "7 c #37302D", "8 c #3C3333", "9 c #3A3A3A", "0 c #151540", "q c #1F1F5B", "w c #221F57", "e c #2B1F5C", "r c #24246A", "t c #2D2870", "y c #2A2A7D", "u c #430000", "i c #4B0000", "p c #431005", "a c #4C1400", "s c #550000", "d c #55091A", "f c #501501", "g c #5C1901", "h c #42153F", "j c #532001", "k c #5A2502", "l c #582918", "z c #463B3B", "x c #641A02", "c c #6A1C01", "v c #731E01", "b c #652602", "n c #602802", "m c #6B270F", "M c #6B2C02", "N c #722D02", "B c #7C2101", "V c #792B02", "C c #7E341C", "Z c #4F1F5B", "A c #7F442E", "S c #434343", "D c #594C4C", "F c #69544E", "G c #7F4241", "H c #65427C", "J c #676767", "K c #736565", "L c gray50", "P c #2D2D85", "I c #2E2E89", "U c #35359B", "Y c #3D3DB4", "T c #4239A7", "R c #5D4390", "E c #4441B8", "W c #4943B9", "Q c #60438B", "! c #4242C2", "~ c #4844C2", "^ c #4747D1", "/ c #4848D3", "( c #4A4ADA", ") c #4D4DE1", "_ c #2BBE2B", "` c #3BD73B", "' c #64DD64", "] c #9F1F1F", "[ c #832401", "{ c #802B02", "} c #8C2601", "| c #8D2C02", " . c #843602", ".. c #883103", "X. c #963604", "o. c #953D03", "O. c #8C2727", "+. c #BA332F", "@. c #9C4107", "#. c #954F1F", "$. c #AA4104", "%. c #A1471A", "&. c #B14904", "*. c #BB4D04", "=. c #BF520A", "-. c #AF683E", ";. c #B86025", ":. c #BE6529", ">. c #BE6C3D", ",. c #835548", "<. c #9D5A45", "1. c #9D5858", "2. c #9F695B", "3. c #8D7979", "4. c #9B6B60", "5. c #9A6B6B", "6. c #9B7974", "7. c #9D7D79", "8. c #A26555", "9. c #B26E47", "0. c #BA794D", "q. c #B57B55", "w. c #B87B52", "e. c #A07C76", "r. c #BA7E7E", "t. c #D43434", "y. c #C45004", "u. c #CB5505", "i. c #D65905", "p. c #D55B0A", "a. c #DB5B05", "s. c #D95D09", "d. c #CA611D", "f. c #D36011", "g. c #D7671B", "h. c #D86314", "j. c #D97316", "k. c #C36A2C", "l. c #C8723B", "z. c #D86B22", "x. c #D87D3F", "c. c #E45E05", "v. c #E76005", "b. c #C17A4B", "n. c #CA7B41", "m. c #DB7F42", "M. c #DA7B4A", "N. c #D97460", "B. c #FF5555", "V. c #A5817B", "C. c #AA827B", "Z. c #D2AC2F", "A. c #E19719", "S. c #C69C4E", "D. c #DD9E5F", "F. c #D6A27F", "G. c #E29059", "H. c #E39B6A", "J. c #E5AB49", "K. c #818181", "L. c #958080", "P. c #948D8D", "I. c #998383", "U. c gray62", "Y. c #A18A8A", "T. c #BC8C8C", "R. c #BB9881", "E. c #B29594", "W. c #B39B9B", "Q. c #BB9C9A", "!. c #AAA89A", "~. c #B1A29B", "^. c gray64", "/. c #AFA1A1", "(. c #B0AFAF", "). c #BBACAC", "_. c #BEB4AD", "`. c #B4B2B2", "'. c #BEB4B4", "]. c #B7C493", "[. c #CE9E86", "{. c #CA9C8D", "}. c #C2A6A6", "|. c #C5A9A9", " X c #CCAFAF", ".X c #CAB4A5", "XX c #CDB2B1", "oX c #C9BCBC", "OX c #DFBBA2", "+X c #D5B7B7", "@X c #D6B9B9", "#X c #DDB9B5", "$X c #DBBBBA", "%X c #E08E84", "&X c #E1B49D", "*X c #C7C1BD", "=X c #D1D3BA", "-X c #C4C3C3", ";X c gray79", ":X c gray83", ">X c #DFD8D3", ",X c gray86", "X7X7X*X6X7X*X|.3.D % @ % z 8 + g a v } a g B , ", "8X8X ._.7Xl.v.a.b..XC.#.:.-.#X3X2X1X+X Xe.7.6.[ B [ g c c a B c ", "8X .w.`.~.u.D.Z.J.g.v.h.S.v.y.F V.8.C B v m 8.c g a $ 7 4 l , ", ": w.' XX{.v.p.j.A.k.a.v.s.a.y.V [ [ B x f e.$Xo = 8X8X8X8X8X8X8X", "M OX_ 1X.G q 8X 8X8X8X8X8X8X8X8X8X8X8X8X8X", "8Xk y.v.c.H.B.x.c.%.H Q R W ) / I + u i # 8X8X8X8X8X8X8X8X8X8X", "8X8X2 @.y.z.F.;.o.o I Y ( ) ) ) ( t i s i * 8X8X8X8X8X8X8X8X8X8X", "8X U / E ~ U 8X8X8Xy Y E ) ) Z s s > 8X8X8X8X8X8X8X8X8X8X8X", "* 0 ( ) ) ~ r 8X8X8X8X8X8Xq I Y d s < 8X8X8X8X8X8X8X8X8X8X8X8X", "u u e ) ) ! r 8X8X8X8X8X8X8X8X8X. - < X 8X8X8X8X8X8X8X8X8X8X8X8X", "u s i T ^ P 8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "* i s h P 8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X- u < 8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X", "8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X" }; debian/compat0000644000000000000000000000000211327517766010403 0ustar 5 debian/install0000644000000000000000000000013111327517766010571 0ustar debian/songwrite.desktop usr/share/applications/ debian/songwrite.xpm usr/share/pixmaps/ debian/watch0000644000000000000000000000020211327517766010230 0ustar version=3 opts=uversionmangle=s/ongwrite2-/songwrite2-/ \ http://download.gna.org/songwrite \ S(.*)\.tar\.gz \ debian uupdate debian/copyright0000644000000000000000000000211111327517766011133 0ustar This package was debianized by Marc Dequènes on Wed, 14 May 2003 14:39:53 +0200. It was downloaded from http://download.gna.org/songwrite/ Upstream Authors: Jiba , BLam Copyright: Songwrite is copyright (c) 2002-2003 Jean-Baptiste LAMY This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 dated June, 1991. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. debian/songwrite.desktop0000644000000000000000000000042111327517766012616 0ustar [Desktop Entry] Name=Songwrite GenericName=Tablature editor Type=Application Categories=Application;AudioVideo;Audio;Music;AudioVideoEditing;Player; Terminal=false Exec=songwrite Comment=guitar tablature editor and player Icon=/usr/share/songwrite/data/songwrite_32x32.png debian/control0000644000000000000000000000147611334260004010572 0ustar Source: songwrite Section: sound Priority: optional Maintainer: Debian QA Group Build-Depends: debhelper (>= 5), cdbs (>= 0.4.62~), python, python-support XS-Python-Version: all Standards-Version: 3.8.4 Homepage: http://home.gna.org/oomadness/en/songwrite/ Package: songwrite Architecture: all Depends: ${python:Depends}, ${misc:Depends}, python-editobj (>= 0.5.6-1), python-tk (>= 2.3), lilypond (>= 2.4), evince | postscript-viewer, timidity | playmidi | pmidi Description: guitar tablature editor and player Songwrite is a guitar tablature (fingering notation) editor and player, quite similar to TablEdit. In addition to tablatures, it also supports staff, lyrics and drums. . Printing support and playback are available through external programs. . Songwrite was formerly know as GTablature. debian/menu0000644000000000000000000000024511327517766010075 0ustar ?package(songwrite): needs="X11" \ section="Applications/Sound" \ title="Songwrite" \ command="/usr/bin/songwrite" \ icon="/usr/share/pixmaps/songwrite.xpm" debian/changelog0000644000000000000000000001611012002756513011040 0ustar songwrite (0.14-9) unstable; urgency=low * QA upload. * Use unsigned byte with struct.pack. (Closes: #672210). -- Christophe Siraut Sun, 22 Jul 2012 01:02:16 +0200 songwrite (0.14-8) unstable; urgency=low * QA upload. * Fix breakage introduced in 0.14-5, 0.14-6 and 0.14-7 uploads: + Install Python modules into a private directory again. + Remove *.egg-info from the binary package; not really needed for anything. + Make the package ‘Architecture: all’ again. + Remove incorrect debian/pyversions. + Replace DEB_PYTHON_MODULE_PACKAGE with actual package name, so that the the rule is actually invoked. + Drop 000_fix_modules_path.diff, no longer needed. * Build-depend on python (rather than on python-dev). * Remove debian/pycompat, it's not needed with current Python helpers. Build depend on cbds (>= 0.4.62~) and add XS-Python-Version to avoid recreating it at build time. * Bump standards version to 3.8.4 (no changes needed): * Drop debian/control.in, it was outdated anyway. -- Jakub Wilk Tue, 09 Feb 2010 15:54:11 +0100 songwrite (0.14-7) unstable; urgency=low * QA upload. * Switch to dpkg-source 3.0 (quilt) format * debian/pyversions: Added to build on python -2.5 (Closes: #566899) * debian/rules: Use of DEB_PYTHON_MODULE_PACKAGE is deprecated, using DEB_PYTHON_MODULE_PACKAGES instead. * debian/watch: The name of the software on newer versions has changed to 'Songwrite2' so, we added a workaround to detect newer versions based on new software name. * debian/desktop: Removed 'Encoding' key to avoid lintian message I: songwrite: desktop-entry-contains-encoding-key * debian/patches/000_fix_modules_path.diff: Add path to libs -- Dario Minnucci Tue, 26 Jan 2010 09:11:05 +0100 songwrite (0.14-6) unstable; urgency=low * QA upload. * debian/rules: No longer moving non-existent files (Closes: #564403) * debian/control: + Remove duplicated Build-Dep on cdbs. + s/Architecture: all/Architecture: any/ to get rid of lintian W: build-depends-on-python-dev-with-no-arch-any -- Dario Minnucci Mon, 25 Jan 2010 08:22:28 +0100 songwrite (0.14-5) unstable; urgency=low * QA upload. * Remove deprecated dh_desktop. * Copy .egg-info file from correct dir. (Closes: #549785). * Bump Standards Version to 3.8.3. (No changes needed). -- Barry deFreese Thu, 29 Oct 2009 21:09:39 -0400 songwrite (0.14-4) unstable; urgency=low * Orphaned. * Added missing '${misc:Depends}' dependency. * Bumped Standards-Version (no changes). * Fixed reference in copyright file to the right GPL version. -- Marc Dequènes (Duck) Mon, 30 Mar 2009 23:20:59 +0200 songwrite (0.14-3) unstable; urgency=low * Updated URL in copyright and added Homepage. * Increased Standards-Version (no changes). * Improved dependency on postscript viewer (Closes: #384227). * Fixed menu section (s/Apps/Applications/). * Moved egg-info in the right place (was generated in '/usr/share/', by distutils, for a reason i was not able to understand). -- Marc Dequènes (Duck) Sun, 16 Mar 2008 19:29:10 +0100 songwrite (0.14-2) unstable; urgency=low * Comply with new policy. * Switched to debhelper compat 5. * Menu icon is now in XPM format to comply with the policy. -- Marc Dequènes (Duck) Tue, 27 Jun 2006 04:07:17 +0200 songwrite (0.14-1) unstable; urgency=low * New upstream release: + Fixed latex generation (Closes: #369267). + Icon added. * Added new icon to menu, and missing call to dh_desktop (Closes: #299401). * Fixed build-depends. * Removed manpage patch (now included in upstream tarball). * Made documentation relocation more consistent in 'debian/rules'. * Increased Standards-Version to 3.7.2.0 (no changes). * Updated FSF postal address in 'debian/copyright'. -- Marc Dequènes (Duck) Sun, 4 Jun 2006 01:56:41 +0200 songwrite (0.13-1) unstable; urgency=low * New upstream release. * Updated 'python-editobj' and 'lilypond' depends. * Added watch file. * Updated Standards-Version (no changes needed). -- Marc Dequènes (Duck) Sat, 27 Aug 2005 10:39:08 +0200 songwrite (0.12b-4) unstable; urgency=high * Package rearrangement to comply with python policy (Build-Depends & Depends changes, ...) (Closes FTBFS). * Added desktop menu entry. -- Marc Dequènes (Duck) Thu, 8 Jul 2004 00:48:16 +0200 songwrite (0.12b-3) unstable; urgency=low * Added menu entry (without icone because there no available logo to create one)(Closes: #246022). -- Marc Dequènes (Duck) Thu, 29 Apr 2004 00:58:49 +0200 songwrite (0.12b-2) unstable; urgency=low * Corrected missing build dependency on cdbs. -- Marc Dequènes (Duck) Mon, 19 Apr 2004 22:29:29 +0200 songwrite (0.12b-1) unstable; urgency=low * Renamed top source directory. * Updated Maintainer field. * Switched to CDBS. * Removed 'build' directory. * Removed 'debian/docs' as CDBS installs 'README' and 'TODO' automagically. * Split patches out of '.diff.gz'. * Removed '.po' files. -- Marc Dequènes (Duck) Sun, 18 Apr 2004 20:44:59 +0200 songwrite (0.12-6) unstable; urgency=low * Accepted in repository (Closes: #219293). * Added missing dependencies for needed external programs. * Improved package Description. -- Marc Dequènes Mon, 10 Nov 2003 11:43:24 +0100 songwrite (0.12-5) unstable; urgency=low * Added missing dependency on python-tk. -- Marc Dequènes Mon, 10 Nov 2003 05:30:35 +0100 songwrite (0.12-4) unstable; urgency=low * Corrected Architecture, now set to All. -- Marc Dequènes Wed, 5 Nov 2003 17:55:12 +0100 songwrite (0.12-3) unstable; urgency=low * 'debian/changelog' and 'debian/control' are now UTF-8 encoded. * Updated Standards-Version. * Added missing dependency on 'python-editobj'. * Improved 'debian/copyright'. -- Marc Dequènes Wed, 5 Nov 2003 17:54:16 +0100 songwrite (0.12-2) unstable; urgency=low * Cleanly rebuilded against python 2.3. * Updated 'Standards-Version'. -- Marc Dequènes Tue, 19 Aug 2003 14:14:47 +0200 songwrite (0.12-1) unstable; urgency=low * New upstream release -- Marc Dequènes Fri, 1 Aug 2003 21:59:47 +0200 songwrite (0.11-2) unstable; urgency=low * now signing packages with real identity. * Recompiled for python 2.3. -- Marc Dequènes Fri, 1 Aug 2003 21:57:20 +0200 songwrite (0.11-1) unstable; urgency=low * New upstream release -- The Duck Thu, 26 Jun 2003 15:06:30 +0200 songwrite (0.10-1) unstable; urgency=low * New upstream release -- The Duck Wed, 21 May 2003 18:41:23 +0200 songwrite (0.9-1) unstable; urgency=low * Initial Release. -- The Duck Wed, 14 May 2003 14:39:53 +0200 debian/rules0000755000000000000000000000127611334305514010253 0ustar #!/usr/bin/make -f # -*- mode: makefile; coding: utf-8 -*- include /usr/share/cdbs/1/rules/debhelper.mk DEB_PYTHON_SYSTEM = pysupport include /usr/share/cdbs/1/class/python-distutils.mk DEB_PYTHON_INSTALL_ARGS_ALL += --install-lib=/usr/share binary-install/songwrite:: find debian/$(cdbs_curpkg)/usr/share/ -type f -exec chmod -R a-x {} \; # mkdir -p debian/$(cdbs_curpkg)/usr/share/doc/$(cdbs_curpkg)/ mv debian/$(cdbs_curpkg)/usr/share/$(cdbs_curpkg)/doc/* debian/$(cdbs_curpkg)/usr/share/doc/$(cdbs_curpkg)/ rmdir debian/$(cdbs_curpkg)/usr/share/$(cdbs_curpkg)/doc # find debian/$(cdbs_curpkg)/usr/share/locale -name "*.po" -exec rm {} \; # rm debian/$(cdbs_curpkg)/usr/share/*.egg-info debian/manpages0000644000000000000000000000003111327517766010715 0ustar manpage/man1/songwrite.1 debian/patches/0000755000000000000000000000000012002633013010603 5ustar debian/patches/fix-unsigned.patch0000644000000000000000000005003112002632747014240 0ustar Index: songwrite-0.14/song.py =================================================================== --- songwrite-0.14.orig/song.py 2006-06-03 12:56:12.000000000 +0200 +++ songwrite-0.14/song.py 2012-07-22 01:06:10.000000000 +0200 @@ -512,17 +512,17 @@ if self.instrument == 128: # 128 means Drums channel = midifier.drums_channel channel.set_init_events(( - (-1, None, struct.pack(">bbb", 0xB0 + channel.id, 0x5B, self.reverb )), # Reverb - (-1, None, struct.pack(">bbb", 0xB0 + channel.id, 0x5D, self.chorus )), # Chorus - (-1, None, struct.pack(">bbb", 0xB0 + channel.id, 0x07, self.volume / 2)), # Volume + (-1, None, struct.pack(">BBB", 0xB0 + channel.id, 0x5B, self.reverb )), # Reverb + (-1, None, struct.pack(">BBB", 0xB0 + channel.id, 0x5D, self.chorus )), # Chorus + (-1, None, struct.pack(">BBB", 0xB0 + channel.id, 0x07, self.volume / 2)), # Volume )) else: channel = midifier.Channel() channel.set_init_events(( - (-1, None, struct.pack(">bb" , 0xC0 + channel.id, self.instrument), self), # Instrument selection - (-1, None, struct.pack(">bbb", 0xB0 + channel.id, 0x5B, self.reverb )), # Reverb - (-1, None, struct.pack(">bbb", 0xB0 + channel.id, 0x5D, self.chorus )), # Chorus - (-1, None, struct.pack(">bbb", 0xB0 + channel.id, 0x07, self.volume / 2)), # Volume + (-1, None, struct.pack(">BB" , 0xC0 + channel.id, self.instrument), self), # Instrument selection + (-1, None, struct.pack(">BBB", 0xB0 + channel.id, 0x5B, self.reverb )), # Reverb + (-1, None, struct.pack(">BBB", 0xB0 + channel.id, 0x5D, self.chorus )), # Chorus + (-1, None, struct.pack(">BBB", 0xB0 + channel.id, 0x07, self.volume / 2)), # Volume )) # Check if some "special notes" (hammer, ...) are played at the same time that normal notes, and if so, play them on a different channel. @@ -542,8 +542,8 @@ def rich_midi_event(self): if not hasattr(self.view, "strings"): return None - return "\xff\x10%s\x01\x00%s" % (struct.pack(">b", len(self.view.strings) + 2), - "".join(map(lambda string: struct.pack(">b", string.basenote), self.view.strings))) + return "\xff\x10%s\x01\x00%s" % (struct.pack(">B", len(self.view.strings) + 2), + "".join(map(lambda string: struct.pack(">B", string.basenote), self.view.strings))) def voices(self, single_voice = 0): "Gets the list of voices (non-overlapping sequence of notes) in this partition." @@ -646,12 +646,12 @@ def midi_events(self, channel, mesure, start_time, end_time): if start_time <= self.time <= end_time: - return (self.time - start_time, mesure, struct.pack(">bbb", 0x90 + channel.id, self.value, self.volume), self), (self.time - start_time + self.duration, mesure, struct.pack(">bbb", 0x80 + channel.id, self.value, self.volume)) + return (self.time - start_time, mesure, struct.pack(">BBB", 0x90 + channel.id, self.value, self.volume), self), (self.time - start_time + self.duration, mesure, struct.pack(">BBB", 0x80 + channel.id, self.value, self.volume)) return () def rich_midi_event(self): if not hasattr(self, "stringid"): return None - return "\xff\x11\x01" + struct.pack(">b", self.stringid) + return "\xff\x11\x01" + struct.pack(">B", self.stringid) def dotted (self): return int(self.duration / 1.5) in DURATIONS.keys() @@ -812,24 +812,24 @@ if _max - 2 <= self.first_value() <= _min + 2: if not self.linked_from: - midi_events.append((self.time - start_time, mesure, struct.pack(">bbb", 0x90 + channel.special_id, self.value, self.volume), self)) - midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">bbb", 0x80 + channel.special_id, self.value, self.volume))) - midi_events.append((self.time - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0x90 + channel.special_id, self.value, self.volume), self)) + midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">BBB", 0x80 + channel.special_id, self.value, self.volume))) + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend - midi_events.append((self.linked_to.time - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 31.5 * (self.linked_to.value - self.first_value() + 2)))) # Pitch bend + midi_events.append((self.linked_to.time - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 31.5 * (self.linked_to.value - self.first_value() + 2)))) # Pitch bend else: if not self.linked_from: - midi_events.append((self.time - start_time, mesure, struct.pack(">bbb", 0x90 + channel.special_id, _min + 2, self.volume), self)) - midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">bbb", 0x80 + channel.special_id, _min + 2, self.volume))) - midi_events.append((self.time - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 31.5 * (self.value - _min)))) # Initial pitch bend + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0x90 + channel.special_id, _min + 2, self.volume), self)) + midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">BBB", 0x80 + channel.special_id, _min + 2, self.volume))) + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 31.5 * (self.value - _min)))) # Initial pitch bend - midi_events.append((self.linked_to.time - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 31.5 * (self.linked_to.value - _min)))) # Pitch bend + midi_events.append((self.linked_to.time - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 31.5 * (self.linked_to.value - _min)))) # Pitch bend if not self.linked_to: pass # No need to reset : pitch bend is applied only to the "special" channel - #midi_events.append((self.time - start_time + self.duration_with_link(), struct.pack(">bbb", 0xE0 + channel.special_id, 64, 64))) # Reset pitch bend + #midi_events.append((self.time - start_time + self.duration_with_link(), struct.pack(">BBB", 0xE0 + channel.special_id, 64, 64))) # Reset pitch bend return tuple(midi_events) return () @@ -837,9 +837,9 @@ def rich_midi_event(self): if not hasattr(self, "stringid"): return None dif = cmp(self.value, self.linked_to.value) - if dif < 0: return "\xff\x11\x02%s\x01" % struct.pack(">b", self.stringid) - elif dif > 0: return "\xff\x11\x02%s\x02" % struct.pack(">b", self.stringid) - else: return "\xff\x11\x02%s\x01" % struct.pack(">b", self.stringid) # Not supported by Rich Tablature Midi ??? + if dif < 0: return "\xff\x11\x02%s\x01" % struct.pack(">B", self.stringid) + elif dif > 0: return "\xff\x11\x02%s\x02" % struct.pack(">B", self.stringid) + else: return "\xff\x11\x02%s\x01" % struct.pack(">B", self.stringid) # Not supported by Rich Tablature Midi ??? def __xml__(self, xml, context): xml.write('\t\t\tbbb", 0x90 + channel.special_id, self.value, self.volume), self)) - midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">bbb", 0x80 + channel.special_id, self.value, self.volume))) - midi_events.append((self.time - start_time , mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend + midi_events.append((self.time - start_time , mesure, struct.pack(">BBB", 0x90 + channel.special_id, self.value, self.volume), self)) + midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">BBB", 0x80 + channel.special_id, self.value, self.volume))) + midi_events.append((self.time - start_time , mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend delta_time = self.linked_to.time - self.time delta_value = self.linked_to.value - self.first_value() for i in xrange(10): f = i / 10.0 - midi_events.append((self.time + int(f * delta_time) - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 31.5 * (f * delta_value + 2)))) # Pitch bend + midi_events.append((self.time + int(f * delta_time) - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 31.5 * (f * delta_value + 2)))) # Pitch bend else: if not self.linked_from: - midi_events.append((self.time - start_time, mesure, struct.pack(">bbb", 0x90 + channel.special_id, _min + 2, self.volume), self)) - midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">bbb", 0x80 + channel.special_id, _min + 2, self.volume))) - midi_events.append((self.time - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 31.5 * (self.value - _min)))) # Initial pitch bend + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0x90 + channel.special_id, _min + 2, self.volume), self)) + midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">BBB", 0x80 + channel.special_id, _min + 2, self.volume))) + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 31.5 * (self.value - _min)))) # Initial pitch bend delta_time = self.linked_to.time - self.time delta_value = self.linked_to.value - self.value for i in xrange(10): f = i / 10.0 - midi_events.append((self.time + int(f * delta_time) - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 31.5 * (f * delta_value + self.value - _min)))) # Pitch bend + midi_events.append((self.time + int(f * delta_time) - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 31.5 * (f * delta_value + self.value - _min)))) # Pitch bend return tuple(midi_events) return () def rich_midi_event(self): if not hasattr(self, "stringid"): return None - if self.value < self.linked_to.value: return "\xff\x11\x02%s\x03" % struct.pack(">b", self.stringid) - else: return "\xff\x11\x02%s\x04" % struct.pack(">b", self.stringid) + if self.value < self.linked_to.value: return "\xff\x11\x02%s\x03" % struct.pack(">B", self.stringid) + else: return "\xff\x11\x02%s\x04" % struct.pack(">B", self.stringid) def __xml__(self, xml, context): xml.write('\t\t\tbbb", 0x90 + channel.special_id, self.value, self.volume), self)) - midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">bbb", 0x80 + channel.special_id, self.value, self.volume))) - midi_events.append((self.time - start_time , mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend + midi_events.append((self.time - start_time , mesure, struct.pack(">BBB", 0x90 + channel.special_id, self.value, self.volume), self)) + midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">BBB", 0x80 + channel.special_id, self.value, self.volume))) + midi_events.append((self.time - start_time , mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend delta_time = self.duration delta_value = 2.0 * self.pitch for i in xrange(10): f = i / 10.0 - midi_events.append((self.time + int(f * delta_time) - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 31.5 * (f * delta_value + 2)))) # Pitch bend + midi_events.append((self.time + int(f * delta_time) - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 31.5 * (f * delta_value + 2)))) # Pitch bend return tuple(midi_events) return () @@ -919,7 +919,7 @@ def rich_midi_event(self): if not hasattr(self, "stringid"): return None - return "\xff\x11\x03%s\x0C%s" % (struct.pack(">b", self.stringid), struct.pack(">b", self.pitch / 0.25)) + return "\xff\x11\x03%s\x0C%s" % (struct.pack(">B", self.stringid), struct.pack(">B", self.pitch / 0.25)) def __xml__(self, xml, context): xml.write('\t\t\tbbb", 0x90 + channel.special_id, self.value, self.volume), self)) - midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">bbb", 0x80 + channel.special_id, self.value, self.volume))) - midi_events.append((self.time - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0x90 + channel.special_id, self.value, self.volume), self)) + midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">BBB", 0x80 + channel.special_id, self.value, self.volume))) + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend val = 0.0 for time in xrange(self.time - start_time, self.time - start_time + self.duration, 2): - midi_events.append((time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 31.5 * (math.sin(val) * 0.3 + 2)))) # Pitch bend + midi_events.append((time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 31.5 * (math.sin(val) * 0.3 + 2)))) # Pitch bend val += 0.3 return tuple(midi_events) @@ -945,7 +945,7 @@ def rich_midi_event(self): if not hasattr(self, "stringid"): return None - return "\xff\x11\x02%s\x0A" % struct.pack(">b", self.stringid) + return "\xff\x11\x02%s\x0A" % struct.pack(">B", self.stringid) def __xml__(self, xml, context): xml.write('\t\t\tbbb", 0x90 + channel.special_id, self.value, self.volume), self)) - midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">bbb", 0x80 + channel.special_id, self.value, self.volume))) - midi_events.append((self.time - start_time, mesure, struct.pack(">bbb", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0x90 + channel.special_id, self.value, self.volume), self)) + midi_events.append((self.time - start_time + self.duration_with_link(), mesure, struct.pack(">BBB", 0x80 + channel.special_id, self.value, self.volume))) + midi_events.append((self.time - start_time, mesure, struct.pack(">BBB", 0xE0 + channel.special_id, 63, 63))) # Reset initial pitch bend - midi_events.append((self.time - start_time + 16, mesure, struct.pack(">bbb", 0xB0 + channel.special_id, 120, 0))) # Stop all sounds + midi_events.append((self.time - start_time + 16, mesure, struct.pack(">BBB", 0xB0 + channel.special_id, 120, 0))) # Stop all sounds return tuple(midi_events) return () def rich_midi_event(self): if not hasattr(self, "stringid"): return None - return "\xff\x11\x02%s\x0E" % struct.pack(">b", self.stringid) + return "\xff\x11\x02%s\x0E" % struct.pack(">B", self.stringid) def __xml__(self, xml, context): xml.write('\t\t\tbbb", 0x90 + channel.id, self.value, self.volume), self), (self.time - start_time + self.duration, mesure, struct.pack(">bbb", 0x80 + channel.id, self.value, self.volume)) + return (self.time - start_time + self.decal, mesure, struct.pack(">BBB", 0x90 + channel.id, self.value, self.volume), self), (self.time - start_time + self.duration, mesure, struct.pack(">BBB", 0x80 + channel.id, self.value, self.volume)) return () def init_effect(self, decal = 2): @@ -991,7 +991,7 @@ def rich_midi_event(self): if not hasattr(self, "stringid"): return None if self.decal: return Note.rich_midi_event(self) - return "\xff\x11\x02%s\x06" % struct.pack(">b", self.stringid) + return "\xff\x11\x02%s\x06" % struct.pack(">B", self.stringid) def __xml__(self, xml, context): xml.write('\t\t\t" + "b" * len(array), *array) + return struct.pack(">" + "B" * len(array), *array) def readVarLength(file): result = 0 @@ -1349,6 +1349,6 @@ return result -END_TRACK = struct.pack(">bbb", 0xFF, 0x2F, 0x00) +END_TRACK = struct.pack(">BBB", 0xFF, 0x2F, 0x00) debian/patches/series0000644000000000000000000000002312002632671012024 0ustar fix-unsigned.patch debian/source/0000755000000000000000000000000011327517766010505 5ustar debian/source/format0000644000000000000000000000001411334254671011702 0ustar 3.0 (quilt) debian/dirs0000644000000000000000000000001011327520135010040 0ustar usr/bin