def main(): usage = """ Aksyfs: mount your sampler as a filesystem """ + fuse.Fuse.fusage fs = AksyFS(version="%prog " + fuse.__version__, usage=usage, dash_s_do='setsingle') fs.parser.add_option(mountopt="sampler_type", metavar="SAMPLER_TYPE", default=fs.sampler_type, help="use SAMPLER_TYPE (z48/mpc4k/s56k|mock_z48) [default: %default]") fs.parser.add_option(mountopt="connector", metavar="CONNECTOR", default=fs.connector, help="use CONNECTOR (usb|osc) [default: %default]") fs.parser.add_option(mountopt="sample_file", metavar="SAMPLE_FILE", help="The wave file to be served when any wave file is accessed on the filesystem (only valid with mock_z48)") fs.parser.add_option(mountopt="program_file", metavar="PROGRAM_FILE", help="The program to be served when any program is accessed on the filesystem (only valid with mock_z48") fs.parse(values=fs, errex=1) if fs.sampler_type == "mock_z48": sampler = Devices.get_instance('mock_z48', 'mock') sampler.set_sample(fs.sample_file) sampler.set_program(fs.program_file) else: sampler = Devices.get_instance(fs.sampler_type, fs.connector) try: #sampler.start_osc_server() fs.main(sampler) finally: #sampler.stop_osc_server() sampler.close()
def __init__(self,parent,title): wx.Frame.__init__(self,parent,wx.ID_ANY, title, size = ( 200,100), style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE) self.action_map = {} filemenu= wx.Menu() filemenu.Append(wx.ID_EXIT, "E&xit\tCtrl+Q"," Exit the program") helpmenu = wx.Menu() helpmenu.Append(wx.ID_ABOUT, "&About"," Information about this program") menuBar = wx.MenuBar() menuBar.Append(filemenu, "&File") menuBar.Append(helpmenu, "&Help") self.SetMenuBar(menuBar) self.SetSize((800, 600)) img_path = os.path.join(os.path.split(__file__)[0], 'img') self.SetIcon(wx.IconFromBitmap(wx.Image(os.path.join(img_path, 'aksy.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap())) self.Show(True) self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT) self.Bind(wx.EVT_MENU, self.OnAbout, id=wx.ID_ABOUT) self.Bind(wx.EVT_CLOSE, self.OnExit) try: self.sampler = Devices.get_instance('z48', 'osc') except USBException, e: # if e[0] == "No sampler found": self.sampler = Devices.get_instance('mock_z48', 'mock')
def main(): parser = config.create_option_parser(usage="%prog [options]") options = parser.parse_args()[0] sampler = Devices.get_instance(options.sampler_type, options.connector) try: m = Main(sampler) accel_group = gtk.AccelGroup() win = gtk.Window() win.add_accel_group(accel_group) setup_keybindings(m, accel_group) win.add(m.editor) m.set_window(win) win.show_all() # TODO: make edit menu functional m.w_edit_menu.hide() win.connect("delete-event", gtk.main_quit) gtk.main() finally:
def checkout(url, destdir=''): file = urllib.urlretrieve(url)[0] zip = zipfile.ZipFile(file) if zip.testzip() is not None: raise Exception('Corrupt zipfile') destfiles = [] for name in zip.namelist(): dest = os.path.join(destdir, os.path.dirname(name)) filename = os.path.basename(name) if not os.path.exists(dest): os.makedirs(dest) destfile = os.path.join(dest, filename) file = open(destfile, 'wb') # XXX lazy but memory should be plenty... file.write(zip.read(name)) file.close() destfiles.append(destfile) zip.close() # aksy stuff z48 = Devices.get_instance('z48', 'usb') try: for file in destfiles: process_file(z48, file) finally: z48.close()
def main(): parser = create_option_parser(usage='%prog [options]') parser.add_option("--ftp_host", nargs=1, dest="ftp_host", help="Server host or IP address to bind on. Only change if running in an isolated network!", default='localhost') parser.add_option("--ftp_port", nargs=1, dest="ftp_port", help="Server port to bind on.", default=2121) options = parser.parse_args()[0] authorizer = ftpserver.DummyAuthorizer() authorizer.add_anonymous('/', perm=('r', 'w')) address = (options.ftp_host, options.ftp_port) if options.ftp_host != 'localhost': import warnings warnings.warn('Running aksyftpd on non-local address %s' % options.ftp_host, RuntimeWarning) sampler = Devices.get_instance(options.sampler_type, options.connector) try: ftp_handler = ftpserver.FTPHandler ftp_handler.authorizer = authorizer ftp_handler.banner = "aksyftpd (pyftpd version %s) ready." % ftpserver.__ver__ ftp_handler.abstracted_fs = AksyFtpFS(sampler) ftpd = ftpserver.FTPServer(address, ftp_handler) ftpd.max_cons = 256 ftpd.max_cons_per_ip = ftpd.max_cons ftpd.serve_forever() finally: sampler.close()
def main(): parser = create_option_parser() (options, filelist) = parser.parse_args() if len(filelist) == 0: parser.error( "At least one or more files/directories should be specified") to_upload = collect_files(filelist) if len(to_upload) == 0: parser.error("Nothing to upload: no supported files found") z48 = Devices.get_instance(options.sampler_type, options.connector) if options.programName is not None: print 'Uploading files.' upload_files(z48, to_upload, filterProgram=options.programName) elif options.drumProgramName: print 'Uploading files.' print 'Building drum program.', options.drumProgramName build_drum_program(z48, to_upload, options.drumProgramName) upload_files(z48, to_upload, filterProgram=options.drumProgramName) else: upload_files(z48, to_upload)
def setUp(self): sampler = Devices.get_instance('mock_z48', 'mock', debug=0) sampler.set_sample(testutil.get_test_resource('test.wav')) sampler.set_program(testutil.get_test_resource('221 Angel.akp')) self.fs = ftpd.AksyFtpFS(sampler) self.fs.getattr('/') self.fs.getattr('/disks') self.fs.getattr('/memory')
def setUp(self): sampler = Devices.get_instance('mock_z48', 'mock', debug=0) sampler.set_sample(testutil.get_test_resource('test.wav')) sampler.set_program(testutil.get_test_resource('221 Angel.akp')) self.fs = aksyfuse.AksyFS() self.fs.init_sampler(sampler) self.fs.getattr('/') self.fs.getattr('/disks') self.fs.getattr('/memory')
def main(): parser = create_option_parser() (options, patterns) = parser.parse_args() if len(patterns) == 0: patterns.append("*.wav") options.destdir = os.path.abspath(options.destdir) sampler = Devices.get_instance(options.sampler_type, options.connector) try: execute_cmd(sampler, patterns, options) finally: sampler.close()
def main(): parser = create_option_parser(usage='%prog [options]') parser.add_option( "--ftp_host", nargs=1, dest="ftp_host", help= "Server host or IP address to bind on. Only change if running in an isolated network!", default='localhost') parser.add_option("--ftp_port", nargs=1, dest="ftp_port", help="Server port to bind on.", default=2121) options = parser.parse_args()[0] authorizer = ftpserver.DummyAuthorizer() authorizer.add_anonymous('/', perm=('r', 'w')) address = (options.ftp_host, options.ftp_port) if options.ftp_host != 'localhost': import warnings warnings.warn( 'Running aksyftpd on non-local address %s' % options.ftp_host, RuntimeWarning) sampler = Devices.get_instance(options.sampler_type, options.connector) try: ftp_handler = ftpserver.FTPHandler ftp_handler.authorizer = authorizer ftp_handler.banner = "aksyftpd (pyftpd version %s) ready." % ftpserver.__ver__ ftp_handler.abstracted_fs = AksyFtpFS(sampler) ftpd = ftpserver.FTPServer(address, ftp_handler) ftpd.max_cons = 256 ftpd.max_cons_per_ip = ftpd.max_cons ftpd.serve_forever() finally: sampler.close()
def main(): parser = create_option_parser() (options, filelist) = parser.parse_args() if len(filelist) == 0: parser.error("At least one or more files/directories should be specified") to_upload = collect_files(filelist) if len(to_upload) == 0: parser.error("Nothing to upload: no supported files found") z48 = Devices.get_instance(options.sampler_type, options.connector) if options.programName is not None: print 'Uploading files.' upload_files(z48, to_upload, filterProgram=options.programName) elif options.drumProgramName: print 'Uploading files.' print 'Building drum program.', options.drumProgramName build_drum_program(z48, to_upload, options.drumProgramName) upload_files(z48, to_upload, filterProgram=options.drumProgramName) else: upload_files(z48, to_upload)
InterpClass=None, *args, **kwds): wx.SplitterWindow.__init__(self, parent, id, pos, size, style, name) self.shell = py.shell.Shell(parent=self, introText=intro, locals=locals, InterpClass=Interpreter, *args, **kwds) self.editor = self.shell self.notebook = wx.Notebook(parent=self, id=-1) #self.filling = py.filling.Filling(parent=self.notebook, # rootObject=rootObject, # rootLabel=rootLabel, # rootIsNamespace=rootIsNamespace) # Add aksy vars self.shell.interp.introText = intro self.shell.interp.copyright = '' self.shell.interp.locals['z48'] = rootObject # Add programs, samples, multis in memory # self.notebook.AddPage(page=self.filling, text='Namespace', select=True) self.SplitHorizontally(self.shell, self.notebook, 300) self.SetMinimumPaneSize(1) if __name__ == '__main__': app = wxPySimpleApp() frame = Frame(None, "Aksy") root = Devices.get_instance('mock_z48') win = AksyShell( frame, intro=intro, rootLabel="Z48", rootIsNamespace=True, rootObject=root) app.MainLoop()
def main(): z48 = Devices.get_instance("z48", "usb") #z48 = None win = MainProgramsWindow(z48) win.connect("delete-event", gtk.main_quit) gtk.main()
*args, **kwds) self.editor = self.shell self.notebook = wx.Notebook(parent=self, id=-1) #self.filling = py.filling.Filling(parent=self.notebook, # rootObject=rootObject, # rootLabel=rootLabel, # rootIsNamespace=rootIsNamespace) # Add aksy vars self.shell.interp.introText = intro self.shell.interp.copyright = '' self.shell.interp.locals['z48'] = rootObject # Add programs, samples, multis in memory # self.notebook.AddPage(page=self.filling, text='Namespace', select=True) self.SplitHorizontally(self.shell, self.notebook, 300) self.SetMinimumPaneSize(1) if __name__ == '__main__': app = wxPySimpleApp() frame = Frame(None, "Aksy") root = Devices.get_instance('mock_z48') win = AksyShell(frame, intro=intro, rootLabel="Z48", rootIsNamespace=True, rootObject=root) app.MainLoop()
from unittest import TestCase, TestLoader from aksyosc import connector from aksy.device import Devices from aksyosc.osc import decodeOSC MOCK_SAMPLER = Devices.get_instance('mock_z48', 'mock') CMDS = [MOCK_SAMPLER.sampletools.get_bit_depth_cmd] class OSCConnectorTest(TestCase): def test_creat_alt_req_msg(self): msg = connector.OSCConnector.create_alt_req_msg(1, CMDS, (), None) expected = '#bundle\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18/altoperations\x00\x00,iN\x00\x00\x00\x00\x01\x00\x00\x00 /sampletools/get_bit_depth\x00\x00,\x00\x00\x00' self.assertEquals(str(expected), str(msg)) def test_parse_alt_req_msg(self): msg = connector.OSCConnector.create_alt_req_msg(1, CMDS, (), None) self.assertEquals(['#bundle', 0L, ['/altoperations', ',iN', 1, None], ['/sampletools/get_bit_depth', ',']], decodeOSC(msg)) def test_suite(): testloader = TestLoader() return testloader.loadTestsFromName('tests.aksyosc.tests.test_connector')
self.bind((address, port)) self.response = None print '%s started at addr: %s:%i\n' % ( self.__class__.__name__, address, port) def handle_connect(self): pass def writable(self): return self.response is not None def handle_write(self): self.sendto(self.response.get_message(), 0, self.response.get_address()) self.response = None def handle_read(self): data, address = self.recvfrom(8192) resp_data = self._callbackMgr.handle(data) self.response = Envelope(address, resp_data) if __name__ == "__main__": parser = create_option_parser() options = parser.parse_args()[0] from aksy.device import Devices z48 = Devices.get_instance('mock_z48', None) server = OSCServer(options.address, options.port, SamplerCallbackManager(z48)) try: asyncore.loop() except KeyboardInterrupt: asyncore.close_all()
from unittest import TestCase, TestLoader import logging, time, os.path, os from aksyx import AkaiSampler from aksy.device import Devices from aksy.devices.akai import sysex_types TESTDIR = os.path.abspath(os.path.split(__file__)[0]) TESTFOLDER_NAME = "test%s" % time.time() AKSY_RUN_SLOW_TESTS = bool(os.environ.get("AKSY_RUN_SLOW_TESTS", False)) LOG = logging.getLogger('aksy') z48 = Devices.get_instance('mock_z48', 'mock') class TestDisktools(TestCase): def setUp(self): self.selectFirstDisk() z48.disktools.create_folder(TESTFOLDER_NAME) def tearDown(self): z48.disktools.open_folder("") z48.disktools.delete(TESTFOLDER_NAME) def selectFirstDisk(self): disks = z48.disktools.get_disklist() if len(disks) > 0: z48.disktools.select_disk(disks[0][0]) else: LOG.error("selectFirstDisk: no disks found") def selectFirstFolder(self):