def presetup(app_defaults_filename, system_filename, user_filename): if not os.path.exists(filesystem.app_data()): os.makedirs(filesystem.app_data()) if not os.path.exists(filesystem.user_data()): os.makedirs(filesystem.user_data()) try: cfg.initialise(app_defaults_filename, system_filename, user_filename) except UnicodeDecodeError: traceback.print_exc() print(file=sys.stderr) print("\n".join( textwrap.wrap( "Your %s file is not properly utf8 encoded. Most likely" " it is the path to some external program that contain non-ascii" " characters. Please edit or delete the file. Or email it to" " [email protected], and he will tell you what the problem is." % filesystem.rcfile().encode("ascii", "backslashreplace"))), file=sys.stderr) print(file=sys.stderr) sys.exit("I give up (solfege.py)") except cfg.CfgParseException as e: i18n.setup(".") a, b = os.path.split(user_filename) renamed_fn = os.path.join(a, "BAD-" + b) m = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.NONE, _("Parsing %s failed") % filesystem.rcfile()) m.format_secondary_text( str(e) + "\n\n" + _("We cannot recover from this, we can rename the corrupt file to %s and then start the program." % renamed_fn)) m.add_buttons("Rename", 10) m.add_buttons(Gtk.STOCK_QUIT, 11) m.set_default_response(11) ret = m.run() if ret == 10: os.rename(user_filename, renamed_fn) m.destroy() cfg.initialise(app_defaults_filename, system_filename, user_filename) else: sys.exit(1) # MIGRATION from 2.9.2 to 2.9.3 if cfg.get_string("app/lc_messages") == 'C (english)': cfg.set_string("app/lc_messages", "C")
def presetup(app_defaults_filename, system_filename, user_filename): if not os.path.exists(filesystem.app_data()): os.makedirs(filesystem.app_data()) if not os.path.exists(filesystem.user_data()): os.makedirs(filesystem.user_data()) try: cfg.initialise(app_defaults_filename, system_filename, user_filename) except UnicodeDecodeError: traceback.print_exc() print(file=sys.stderr) print("\n".join(textwrap.wrap( "Your %s file is not properly utf8 encoded. Most likely" " it is the path to some external program that contain non-ascii" " characters. Please edit or delete the file. Or email it to" " [email protected], and he will tell you what the problem is." % filesystem.rcfile().encode("ascii", "backslashreplace"))), file=sys.stderr) print(file=sys.stderr) sys.exit("I give up (solfege.py)") except cfg.CfgParseException as e: i18n.setup(".") a, b = os.path.split(user_filename) renamed_fn = os.path.join(a, "BAD-" + b) m = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.NONE, _("Parsing %s failed") % filesystem.rcfile()) m.format_secondary_text(str(e) + "\n\n" + _("We cannot recover from this, we can rename the corrupt file to %s and then start the program." % renamed_fn)) m.add_buttons("Rename", 10) m.add_buttons(Gtk.STOCK_QUIT, 11) m.set_default_response(11) ret = m.run() if ret == 10: os.rename(user_filename, renamed_fn) m.destroy() cfg.initialise(app_defaults_filename, system_filename, user_filename) else: sys.exit(1) # MIGRATION from 2.9.2 to 2.9.3 if cfg.get_string("app/lc_messages") == 'C (english)': cfg.set_string("app/lc_messages", "C")
def presetup(app_defaults_filename, system_filename, user_filename): if not os.path.exists(filesystem.app_data()): os.makedirs(filesystem.app_data()) if not os.path.exists(filesystem.user_data()): os.makedirs(filesystem.user_data()) try: cfg.initialise(app_defaults_filename, system_filename, user_filename) except UnicodeDecodeError, e: traceback.print_exc() print >> sys.stderr print >> sys.stderr, "\n".join(textwrap.wrap( "Your %s file is not properly utf8 encoded. Most likely" " it is the path to some external program that contain non-ascii" " characters. Please edit or delete the file. Or email it to" " [email protected], and he will tell you what the problem is." % filesystem.rcfile().encode("ascii", "backslashreplace"))) print >> sys.stderr sys.exit("I give up (solfege.py)")
def presetup(app_defaults_filename, system_filename, user_filename): if not os.path.exists(filesystem.app_data()): os.makedirs(filesystem.app_data()) if not os.path.exists(filesystem.user_data()): os.makedirs(filesystem.user_data()) try: cfg.initialise(app_defaults_filename, system_filename, user_filename) except UnicodeDecodeError, e: traceback.print_exc() print >> sys.stderr print >> sys.stderr, "\n".join( textwrap.wrap( "Your %s file is not properly utf8 encoded. Most likely" " it is the path to some external program that contain non-ascii" " characters. Please edit or delete the file. Or email it to" " [email protected], and he will tell you what the problem is." % filesystem.rcfile().encode("ascii", "backslashreplace"))) print >> sys.stderr sys.exit("I give up (solfege.py)")
from solfege import cfg from solfege import filesystem if sys.platform == 'win32': # Migration added in solfege 3.9.0. try: if not os.path.exists(filesystem.app_data()): if os.path.exists( os.path.join(filesystem.get_home_dir(), ".solfege")): shutil.copytree( os.path.join(filesystem.get_home_dir(), ".solfege"), filesystem.app_data()) else: os.mkdir(filesystem.app_data()) if not os.path.exists(filesystem.rcfile()): if os.path.exists( os.path.join(filesystem.get_home_dir(), ".solfegerc")): shutil.copy( os.path.join(filesystem.get_home_dir(), ".solfegerc"), filesystem.rcfile()) except (IOError, os.error) as e: print("Migration failed:", e) from solfege import presetup presetup.presetup("default.config", None, filesystem.rcfile()) # i18n should be imported very early in program init because it setup # the _ and _i functions for the whole program. from solfege import i18n
import traceback import textwrap from solfege import cfg from solfege import filesystem if sys.platform == 'win32': # Migration added in solfege 3.9.0. try: if not os.path.exists(filesystem.app_data()): if os.path.exists(os.path.join(filesystem.get_home_dir(), ".solfege")): shutil.copytree(os.path.join(filesystem.get_home_dir(), ".solfege"), filesystem.app_data()) else: os.mkdir(filesystem.app_data()) if not os.path.exists(filesystem.rcfile()): if os.path.exists(os.path.join(filesystem.get_home_dir(), ".solfegerc")): shutil.copy(os.path.join(filesystem.get_home_dir(), ".solfegerc"), filesystem.rcfile()) except (IOError, os.error), e: print "Migration failed:", e if not os.path.exists(filesystem.app_data()): os.makedirs(filesystem.app_data()) if not os.path.exists(filesystem.user_data()): os.makedirs(filesystem.user_data()) try: cfg.initialise("default.config", None, filesystem.rcfile()) except UnicodeDecodeError, e: traceback.print_exc()
#!/usr/bin/python import pygtk pygtk.require("2.0") import sys, os sys.path.append(".") import solfege.i18n solfege.i18n.setup(".") import solfege.cfg from solfege import filesystem solfege.cfg.initialise("default.config", None, filesystem.rcfile()) import gtk from solfege import gu from solfege import mpd from solfege.mpd.musicdisplayer import MusicDisplayer from solfege import soundcard from solfege import utils musicfile = "mpd-test.txt" class DisplaytestWindow(gtk.Window): def on_quit(self, w): t = self.m_buf.get_text(self.m_buf.get_start_iter(), self.m_buf.get_end_iter(), True)
def show_path_info(self, w): if not self.g_path_info_dlg: self.g_path_info_dlg = Gtk.Dialog(_("_File locations").replace("_", ""), self, buttons=(Gtk.STOCK_OK, Gtk.ResponseType.ACCEPT)) sc = Gtk.ScrolledWindow() sc.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) self.g_path_info_dlg.vbox.pack_start(sc, True, True, 0) # vbox = gu.hig_dlg_vbox() sc.add_with_viewport(vbox) box1, box2 = gu.hig_category_vbox(_("_File locations").replace("_", "")) vbox.pack_start(box1, True, True, 0) sizegroup = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL) # statistics.sqlite # win32 solfegerc # win32 langenviron.txt box2.pack_start(gu.hig_label_widget(_("Solfege application data:"), Gtk.Label(label=filesystem.app_data()), sizegroup), False, False, 0) box2.pack_start(gu.hig_label_widget(_("Solfege user data:"), Gtk.Label(label=filesystem.user_data()), sizegroup), False, False, 0) box2.pack_start(gu.hig_label_widget(_("Solfege config file:"), Gtk.Label(label=filesystem.rcfile()), sizegroup), False, False, 0) box2.pack_start(gu.hig_label_widget(_("Solfege installation directory:"), Gtk.Label(label=os.getcwd()), sizegroup), False, False, 0) box2.pack_start(gu.hig_label_widget(_("User manual in HTML format:"), Gtk.Label(label=os.path.join(os.getcwd(), "help")), sizegroup), False, False, 0) box2.pack_start(gu.hig_label_widget("gtk:", Gtk.Label(label=str(Gtk)), sizegroup), False, False, 0) box2.pack_start(gu.hig_label_widget("pyalsa:", Gtk.Label(label=str(alsaseq)), sizegroup), False, False, 0) box2.pack_start(gu.hig_label_widget("PYTHONHOME", Gtk.Label(os.environ.get('PYTHONHOME', 'Not defined')), sizegroup), False, False, 0) self.g_path_info_dlg.show_all() def f(*w): self.g_path_info_dlg.hide() return True self.g_path_info_dlg.connect('response', f) self.g_path_info_dlg.connect('delete-event', f) sc.set_size_request(min(vbox.size_request().width + gu.hig.SPACE_LARGE * 2, Gdk.Screen.width() * 0.9), vbox.size_request().height)
def show_path_info(self, w): if not self.g_path_info_dlg: self.g_path_info_dlg = Gtk.Dialog( _("_File locations").replace("_", ""), self, buttons=(Gtk.STOCK_OK, Gtk.ResponseType.ACCEPT)) sc = Gtk.ScrolledWindow() sc.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) self.g_path_info_dlg.vbox.pack_start(sc, True, True, 0) # vbox = gu.hig_dlg_vbox() sc.add_with_viewport(vbox) box1, box2 = gu.hig_category_vbox( _("_File locations").replace("_", "")) vbox.pack_start(box1, True, True, 0) sizegroup = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL) # statistics.sqlite # win32 solfegerc # win32 langenviron.txt box2.pack_start( gu.hig_label_widget(_("Solfege application data:"), Gtk.Label(label=filesystem.app_data()), sizegroup), False, False, 0) box2.pack_start( gu.hig_label_widget(_("Solfege user data:"), Gtk.Label(label=filesystem.user_data()), sizegroup), False, False, 0) box2.pack_start( gu.hig_label_widget(_("Solfege config file:"), Gtk.Label(label=filesystem.rcfile()), sizegroup), False, False, 0) box2.pack_start( gu.hig_label_widget(_("Solfege installation directory:"), Gtk.Label(label=os.getcwd()), sizegroup), False, False, 0) box2.pack_start( gu.hig_label_widget( _("User manual in HTML format:"), Gtk.Label(label=os.path.join(os.getcwd(), "help")), sizegroup), False, False, 0) box2.pack_start( gu.hig_label_widget("gtk:", Gtk.Label(label=str(Gtk)), sizegroup), False, False, 0) box2.pack_start( gu.hig_label_widget("pyalsa:", Gtk.Label(label=str(alsaseq)), sizegroup), False, False, 0) box2.pack_start( gu.hig_label_widget( "PYTHONHOME", Gtk.Label(os.environ.get('PYTHONHOME', 'Not defined')), sizegroup), False, False, 0) self.g_path_info_dlg.show_all() def f(*w): self.g_path_info_dlg.hide() return True self.g_path_info_dlg.connect('response', f) self.g_path_info_dlg.connect('delete-event', f) sc.set_size_request( min(vbox.size_request().width + gu.hig.SPACE_LARGE * 2, Gdk.Screen.width() * 0.9), vbox.size_request().height)
import os.path import shutil from solfege import cfg from solfege import filesystem if sys.platform == 'win32': # Migration added in solfege 3.9.0. try: if not os.path.exists(filesystem.app_data()): if os.path.exists(os.path.join(filesystem.get_home_dir(), ".solfege")): shutil.copytree(os.path.join(filesystem.get_home_dir(), ".solfege"), filesystem.app_data()) else: os.mkdir(filesystem.app_data()) if not os.path.exists(filesystem.rcfile()): if os.path.exists(os.path.join(filesystem.get_home_dir(), ".solfegerc")): shutil.copy(os.path.join(filesystem.get_home_dir(), ".solfegerc"), filesystem.rcfile()) except (IOError, os.error) as e: print("Migration failed:", e) from solfege import presetup presetup.presetup("default.config", None, filesystem.rcfile()) # i18n should be imported very early in program init because it setup # the _ and _i functions for the whole program. from solfege import i18n i18n.setup(".", cfg.get_string("app/lc_messages")) import solfege.startup
print >> sys.stderr, "\n".join( textwrap.wrap( "Your %s file is not properly utf8 encoded. Most likely" " it is the path to some external program that contain non-ascii" " characters. Please edit or delete the file. Or email it to" " [email protected], and he will tell you what the problem is." % filesystem.rcfile().encode("ascii", "backslashreplace"))) print >> sys.stderr sys.exit("I give up (solfege.py)") except cfg.CfgParseException, e: i18n.setup(".") a, b = os.path.split(user_filename) renamed_fn = os.path.join(a, "BAD-" + b) m = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.NONE, _("Parsing %s failed") % filesystem.rcfile()) m.format_secondary_text( str(e) + "\n\n" + _("We cannot recover from this, we can rename the corrupt file to %s and then start the program." % renamed_fn)) m.add_buttons("Rename", 10) m.add_buttons(Gtk.STOCK_QUIT, 11) m.set_default_response(11) ret = m.run() if ret == 10: os.rename(user_filename, renamed_fn) m.destroy() cfg.initialise(app_defaults_filename, system_filename, user_filename) else: sys.exit(1)
#!/usr/bin/python import sys sys.path.insert(0, ".") from solfege import i18n i18n.setup(".", "C") from solfege import cfg from solfege import filesystem cfg.initialise("default.config", None, filesystem.rcfile()) from solfege import soundcard from solfege.mpd import Track # This works nice with ALSA and OSS emulation with SB Live card: soundcard.initialise_external_midiplayer() #soundcard.initialise_devicefile("/dev/sequencer2", 2) print """ You should here three major triads: G G G E E E_E C C C_C_C C (piano) (flute) (strings ens) Press enter when the sounds are finished. """ t = Track() t.set_bpm(120, 4) t.note(4, 60, 100) t.note(4, 64, 100)
traceback.print_exc() print >> sys.stderr print >> sys.stderr, "\n".join(textwrap.wrap( "Your %s file is not properly utf8 encoded. Most likely" " it is the path to some external program that contain non-ascii" " characters. Please edit or delete the file. Or email it to" " [email protected], and he will tell you what the problem is." % filesystem.rcfile().encode("ascii", "backslashreplace"))) print >> sys.stderr sys.exit("I give up (solfege.py)") except cfg.CfgParseException, e: i18n.setup(".") a, b = os.path.split(user_filename) renamed_fn = os.path.join(a, "BAD-"+b) m = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.NONE, _("Parsing %s failed") % filesystem.rcfile()) m.format_secondary_text(str(e) + "\n\n" + _("We cannot recover from this, we can rename the corrupt file to %s and then start the program." % renamed_fn)) m.add_buttons("Rename", 10) m.add_buttons(Gtk.STOCK_QUIT, 11) m.set_default_response(11) ret = m.run() if ret == 10: os.rename(user_filename, renamed_fn) m.destroy() cfg.initialise(app_defaults_filename, system_filename, user_filename) else: sys.exit(1) # MIGRATION from 2.9.2 to 2.9.3