spaudio
Advanced tools
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import sys | ||
| import argparse | ||
| import wave | ||
| import spaudio | ||
| def rectowav2(filename, samprate, nchannels, sampwidth, duration): | ||
| with wave.open(filename, 'wb') as wf: | ||
| nframes = round(duration * samprate) | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| with spaudio.open('ro', nchannels=nchannels, samprate=samprate, | ||
| sampbit=(8 * sampwidth)) as a: | ||
| b = a.createrawarray(nframes * nchannels) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| paramstuple = a.getparamstuple(True, nframes) | ||
| wf.setparams(paramstuple) | ||
| wf.writeframes(b) | ||
| print('output file: %s' % filename, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Record to a wave file') | ||
| parser.add_argument('filename', help='name of output wave file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-w', '--sampwidth', type=int, | ||
| default=2, help='sample width [byte]') | ||
| parser.add_argument('-d', '--duration', type=float, | ||
| default=2.0, help='recording duration [s]') | ||
| args = parser.parse_args() | ||
| rectowav2(args.filename, args.samprate, args.nchannels, | ||
| args.sampwidth, args.duration) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import aifc | ||
| import wave | ||
| import sunau | ||
| import spplugin | ||
| def writefrombyplugin(inputfile, outputfile): | ||
| _, ifileext = os.path.splitext(inputfile) | ||
| if ifileext in ('.wav', '.wave'): | ||
| sndlib = wave | ||
| decodebytes = True | ||
| ibigendian_or_signed8bit = False | ||
| elif ifileext == '.au': | ||
| sndlib = sunau | ||
| decodebytes = True | ||
| ibigendian_or_signed8bit = True | ||
| elif ifileext in ('.aif', '.aiff', '.aifc', '.afc'): | ||
| sndlib = aifc | ||
| decodebytes = False | ||
| ibigendian_or_signed8bit = True | ||
| else: | ||
| raise RuntimeError('input file format is not supported') | ||
| with sndlib.open(inputfile, 'rb') as sf: | ||
| params = sf.getparams() | ||
| print('nchannels = %d, framerate = %d, sampwidth = %d, nframes = %d' | ||
| % (params.nchannels, params.framerate, params.sampwidth, params.nframes)) | ||
| if params.comptype: | ||
| print('comptype = %s %s' | ||
| % (params.comptype, '(' + params.compname + | ||
| ')' if params.compname else '')) | ||
| y = sf.readframes(params.nframes) | ||
| with spplugin.open(outputfile, 'w', params=params) as pf: | ||
| print('output plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| b = pf.copyraw2array(y, params.sampwidth, bigendian_or_signed8bit=ibigendian_or_signed8bit) | ||
| nwrite = pf.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| writefrombyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| def convbyplugin(inputfile, outputfile): | ||
| with spplugin.open(inputfile, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| params = pf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (params['nchannels'], params['samprate'], params['sampbit'], | ||
| params['nframes'])) | ||
| if params['filetype']: | ||
| print('filetype = %s %s' | ||
| % (params['filetype'], '(' + params['filedesc'] + | ||
| ('; ' + params['filefilter'] if params['filefilter'] else '') + | ||
| ')' if params['filedesc'] else '')) | ||
| if params['songinfo']: | ||
| print('songinfo = ' + str(params['songinfo'])) | ||
| b = pf.createrawarray(params['nframes'], True) | ||
| nread = pf.readraw(b) | ||
| print('nread = %d' % nread) | ||
| with spplugin.open(outputfile, 'w', params=params) as pf: | ||
| print('output plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nwrite = pf.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| convbyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| y = a.createrawndarray(16000) | ||
| nread = a.readraw(y) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.writeraw(y) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| x = np.linspace(0.0, 2.0, 16000) | ||
| plt.plot(x, y) | ||
| plt.xlim(0.0, 2.0) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (raw)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import argparse | ||
| import spplugin | ||
| import spaudio | ||
| def playrawbyplugin(filename, samprate, nchannels, sampbit, filetype): | ||
| with spplugin.open(filename, 'r', pluginname='input_raw', samprate=samprate, | ||
| nchannels=nchannels, sampbit=sampbit, filetype=filetype) as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (nchannels, samprate, sampbit, nframes)) | ||
| filetype = pf.getfiletype() | ||
| filedesc = pf.getfiledesc() | ||
| filefilter = pf.getfilefilter() | ||
| if filetype: | ||
| print('filetype = %s %s' | ||
| % (filetype, '(' + filedesc + | ||
| ('; ' + filefilter if filefilter else '') + ')' if filedesc else '')) | ||
| songinfo = pf.getsonginfo() | ||
| if songinfo: | ||
| print('songinfo = ' + str(songinfo)) | ||
| with spaudio.open('wo', nchannels=nchannels, samprate=samprate, | ||
| sampbit=sampbit) as a: | ||
| b = pf.readframes(nframes) | ||
| print('nread = %d' % len(b)) | ||
| nwframes = a.writeframes(b) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Play an audio file including a raw file') | ||
| parser.add_argument('filename', help='name of input file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-b', '--sampbit', type=int, | ||
| default=16, help='bits/sample') | ||
| parser.add_argument('-t', '--filetype', help='file type string') | ||
| args = parser.parse_args() | ||
| playrawbyplugin(args.filename, args.samprate, args.nchannels, | ||
| args.sampbit, args.filetype) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(2) | ||
| a.setsamprate(44100) | ||
| a.setbuffersize(2048) | ||
| nloop = 500 | ||
| b = bytearray(4096) | ||
| a.open('r') | ||
| a.open('w') | ||
| for i in range(nloop): | ||
| a.readraw(b) | ||
| a.writeraw(b) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| y = a.createndarray(16000) | ||
| nread = a.read(y) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.write(y) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| x = np.linspace(0.0, 2.0, 16000) | ||
| plt.plot(x, y) | ||
| plt.xlim(0.0, 2.0) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.createarray(nframes, True) | ||
| nloop = ((nframes * nchannels) + blocklen - 1) // blocklen # ceil | ||
| for i in range(nloop): | ||
| nread = a.read(b, offset=(i * blocklen), length=blocklen) | ||
| print('%d: nread = %d' % (i, nread)) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| def audiorwexample(ifilename, ofilename): | ||
| data, samprate, params = spplugin.audioread(ifilename) | ||
| print('nread = %d' % len(data)) | ||
| print('samprate = ' + str(samprate) + ', params =\n' + str(params)) | ||
| if False: | ||
| nwframes = spplugin.audiowrite(ofilename, data, samprate, | ||
| sampbit=params['sampbit']) | ||
| else: | ||
| nwframes = spplugin.audiowrite(ofilename, data, params=params) | ||
| print('write frames = %d' % nwframes) | ||
| data2, samprate2, params2 = spplugin.audioread(ofilename) | ||
| print('reload: nread = %d' % len(data2)) | ||
| print('reload: samprate = ' + str(samprate2) + ', params =\n' + str(params2)) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s ifilename ofilename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audiorwexample(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def playfromwav2(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| paramstuple = wf.getparams() | ||
| print('nchannels = %d, framerate = %d, sampwidth = %d, nframes = %d' | ||
| % (paramstuple.nchannels, paramstuple.framerate, | ||
| paramstuple.sampwidth, paramstuple.nframes)) | ||
| with spaudio.open('wo', params=paramstuple) as a: | ||
| b = wf.readframes(paramstuple.nframes) | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav2(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def audiowriteexample(filename): | ||
| duration = 2.0 | ||
| with spaudio.open('ro', nchannels=2, samprate=44100) as a: | ||
| nframes = round(duration * a.getsamprate()) | ||
| data = a.readframes(nframes, channelwise=True) | ||
| print('nread = %d' % len(data)) | ||
| nwframes = spplugin.audiowrite(filename, data, a.getsamprate()) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audiowriteexample(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| with spaudio.open('rw', nchannels=2, samprate=44100, buffersize=2048) as a: | ||
| nloop = 500 | ||
| b = bytearray(4096) | ||
| for i in range(nloop): | ||
| a.readraw(b) | ||
| a.writeraw(b) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| with spaudio.open('ro', nchannels=2, samprate=44100) as a: | ||
| y = a.readframes(44100, channelwise=True) | ||
| print('nread = %d' % len(y)) | ||
| x = np.linspace(0.0, 1.0, 44100) | ||
| for i in range(a.getnchannels()): | ||
| plt.plot(x, y[:, i]) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| import matplotlib.pyplot as plt | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| b = a.createarray(16000) | ||
| nread = a.read(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| plt.plot(b) | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spplugin | ||
| def plotfilebyplugin(filename): | ||
| with spplugin.open(filename, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| duration = nframes / samprate | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d, duration = %.2f' | ||
| % (nchannels, samprate, sampbit, nframes, duration)) | ||
| # In version 0.7.16+, y.resize() can be omitted by channelwise=True. | ||
| # y = pf.createndarray(nframes, True, channelwise=True) | ||
| y = pf.createndarray(nframes, True) | ||
| nread = pf.read(y) | ||
| print('nread = %d' % nread) | ||
| y.resize((nframes, nchannels)) | ||
| x = np.linspace(0.0, duration, nframes) | ||
| for i in range(nchannels): | ||
| plt.plot(x, y[:, i]) | ||
| plt.xlim(0.0, duration) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| plotfilebyplugin(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def playfilebyplugin(filename): | ||
| with spplugin.open(filename, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (nchannels, samprate, sampbit, nframes)) | ||
| filetype = pf.getfiletype() | ||
| filedesc = pf.getfiledesc() | ||
| filefilter = pf.getfilefilter() | ||
| if filetype: | ||
| print('filetype = %s %s' | ||
| % (filetype, '(' + filedesc + | ||
| ('; ' + filefilter if filefilter else '') + ')' if filedesc else '')) | ||
| songinfo = pf.getsonginfo() | ||
| if songinfo: | ||
| print('songinfo = ' + str(songinfo)) | ||
| with spaudio.open('wo', nchannels=nchannels, samprate=samprate, | ||
| sampbit=sampbit) as a: | ||
| b = a.createarray(nframes, True) | ||
| nread = pf.read(b) | ||
| print('nread = %d' % nread) | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfilebyplugin(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| import matplotlib.pyplot as plt | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| b = a.createrawarray(16000) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| plt.plot(b) | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import aifc | ||
| import wave | ||
| import sunau | ||
| import spplugin | ||
| def writefrombyplugin(inputfile, outputfile): | ||
| _, ofileext = os.path.splitext(outputfile) | ||
| if ofileext in ('.wav', '.wave'): | ||
| sndlib = wave | ||
| decodebytes = True | ||
| obigendian_or_signed8bit = False | ||
| elif ofileext == '.au': | ||
| sndlib = sunau | ||
| decodebytes = True | ||
| obigendian_or_signed8bit = True | ||
| elif ofileext in ('.aif', '.aiff', '.aifc', '.afc'): | ||
| sndlib = aifc | ||
| decodebytes = False | ||
| obigendian_or_signed8bit = True | ||
| else: | ||
| raise RuntimeError('output file format is not supported') | ||
| with spplugin.open(inputfile, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| params = pf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (params['nchannels'], params['samprate'], params['sampbit'], params['nframes'])) | ||
| if params['filetype']: | ||
| print('filetype = %s %s' | ||
| % (params['filetype'], '(' + params['filedesc'] + | ||
| ('; ' + params['filefilter'] if params['filefilter'] else '') + | ||
| ')' if params['filedesc'] else '')) | ||
| if params['songinfo']: | ||
| print('songinfo = ' + str(params['songinfo'])) | ||
| b = pf.createrawarray(params['nframes'], True) | ||
| nread = pf.readraw(b) | ||
| print('nread = %d' % nread) | ||
| paramstuple = pf.getparamstuple(decodebytes) | ||
| with sndlib.open(outputfile, 'wb') as sf: | ||
| sf.setparams(paramstuple) | ||
| y = pf.copyarray2raw(b, paramstuple.sampwidth, bigendian_or_signed8bit=obigendian_or_signed8bit) | ||
| sf.writeframes(y) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| writefrombyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.createarray(nframes, True) | ||
| nread = a.read(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nloop = ((nframes * nchannels) + blocklen - 1) // blocklen # ceil | ||
| for i in range(nloop): | ||
| nwrite = a.write(b, offset=(i * blocklen), length=blocklen) | ||
| print('%d: write = %d' % (i, nwrite)) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import sys | ||
| import argparse | ||
| import wave | ||
| import spaudio | ||
| def rectowav(filename, samprate, nchannels, sampwidth, duration): | ||
| with wave.open(filename, 'wb') as wf: | ||
| nframes = round(duration * samprate) | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| a.open('ro') | ||
| b = a.createrawarray(nframes * nchannels) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| wf.setnchannels(nchannels) | ||
| wf.setframerate(samprate) | ||
| wf.setsampwidth(sampwidth) | ||
| wf.setnframes(nframes) | ||
| wf.writeframes(b) | ||
| print('output file: %s' % filename, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Record to a wave file') | ||
| parser.add_argument('filename', help='name of output wave file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-w', '--sampwidth', type=int, | ||
| default=2, help='sample width [byte]') | ||
| parser.add_argument('-d', '--duration', type=float, | ||
| default=2.0, help='recording duration [s]') | ||
| args = parser.parse_args() | ||
| rectowav(args.filename, args.samprate, args.nchannels, | ||
| args.sampwidth, args.duration) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def audioreadexample(filename): | ||
| data, samprate, params = spplugin.audioread(filename) | ||
| print('samprate = ' + str(samprate) + ', params =\n' + str(params)) | ||
| with spaudio.open('wo', params=params) as a: | ||
| nwframes = a.writeframes(data) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audioreadexample(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def myaudiocb(audio, cbtype, cbdata, args): | ||
| if cbtype == spaudio.OUTPUT_POSITION_CALLBACK: | ||
| position = cbdata | ||
| samprate = args[0] | ||
| nframes = args[1] | ||
| position_s = float(position) / float(samprate) | ||
| total_s = float(nframes) / float(samprate) | ||
| sys.stdout.write('Time: %.3f / %.3f\r' % (position_s, total_s)) | ||
| elif cbtype == spaudio.OUTPUT_BUFFER_CALLBACK: | ||
| buf = cbdata | ||
| # print('OUTPUT_BUFFER_CALLBACK: buffer type = %s, size = %d' % (type(buf), len(buf))) | ||
| return True | ||
| def playfromwav(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| nchannels = wf.getnchannels() | ||
| samprate = wf.getframerate() | ||
| sampwidth = wf.getsampwidth() | ||
| nframes = wf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setbuffersize(1024) | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| b = wf.readframes(nframes) | ||
| a.setcallback(spaudio.OUTPUT_POSITION_CALLBACK | spaudio.OUTPUT_BUFFER_CALLBACK, | ||
| myaudiocb, samprate, nframes) | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| # print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def myaudiocb(audio, cbtype, cbdata, args): | ||
| if cbtype == spaudio.OUTPUT_POSITION_CALLBACK: | ||
| position = cbdata | ||
| samprate = args[0] | ||
| nframes = args[1] | ||
| position_s = float(position) / float(samprate) | ||
| total_s = float(nframes) / float(samprate) | ||
| sys.stdout.write('Time: %.3f / %.3f\r' % (position_s, total_s)) | ||
| elif cbtype == spaudio.OUTPUT_BUFFER_CALLBACK: | ||
| buf = cbdata | ||
| # print('OUTPUT_BUFFER_CALLBACK: buffer type = %s, size = %d' % (type(buf), len(buf))) | ||
| return True | ||
| def playfromwav2(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| paramstuple = wf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (paramstuple.nchannels, paramstuple.framerate, | ||
| paramstuple.sampwidth, paramstuple.nframes)) | ||
| with spaudio.open('wo', params=paramstuple, buffersize=1024, | ||
| callback=(spaudio.OUTPUT_POSITION_CALLBACK | spaudio.OUTPUT_BUFFER_CALLBACK, | ||
| myaudiocb, paramstuple.framerate, paramstuple.nframes)) as a: | ||
| b = wf.readframes(paramstuple.nframes) | ||
| nwrite = a.writeraw(b) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav2(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def playfromwav(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| nchannels = wf.getnchannels() | ||
| samprate = wf.getframerate() | ||
| sampwidth = wf.getsampwidth() | ||
| nframes = wf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| b = wf.readframes(nframes) | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.readframes(nframes, arraytype='array') | ||
| print('nread = %d' % len(b)) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nwframes = a.writeframes(b) | ||
| print('write frames = %d' % nwframes) | ||
| a.close() |
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Overview: module code — spAudio documentation</title> | ||
| <script type="text/javascript" src="../_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> | ||
| <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> | ||
| <script src="../_static/jquery.js"></script> | ||
| <script src="../_static/underscore.js"></script> | ||
| <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="../_static/doctools.js"></script> | ||
| <script type="text/javascript" src="../_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="../_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="../_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="index" title="Index" href="../genindex.html" /> | ||
| <link rel="search" title="Search" href="../search.html" /> | ||
| </head> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="../index.html" class="icon icon-home"> spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
| <input type="hidden" name="area" value="default" /> | ||
| </form> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="../main.html">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="../main.html#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="../main.html#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="../main.html#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="../main.html#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="../apidoc.html">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="../spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="../spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="../examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="../examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="../examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| </nav> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="../index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="../index.html">Docs</a> »</li> | ||
| <li>Overview: module code</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
| </div> | ||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
| <div itemprop="articleBody"> | ||
| <h1>All modules for which code is available</h1> | ||
| <ul><li><a href="spaudio.html">spaudio</a></li> | ||
| <li><a href="spplugin.html">spplugin</a></li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2022-07-24 11:53:26 PM. | ||
| </span> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </body> | ||
| </html> |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| /* | ||
| * _sphinx_javascript_frameworks_compat.js | ||
| * ~~~~~~~~~~ | ||
| * | ||
| * Compatability shim for jQuery and underscores.js. | ||
| * | ||
| * WILL BE REMOVED IN Sphinx 6.0 | ||
| * xref RemovedInSphinx60Warning | ||
| * | ||
| */ | ||
| /** | ||
| * select a different prefix for underscore | ||
| */ | ||
| $u = _.noConflict(); | ||
| /** | ||
| * small helper function to urldecode strings | ||
| * | ||
| * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL | ||
| */ | ||
| jQuery.urldecode = function(x) { | ||
| if (!x) { | ||
| return x | ||
| } | ||
| return decodeURIComponent(x.replace(/\+/g, ' ')); | ||
| }; | ||
| /** | ||
| * small helper function to urlencode strings | ||
| */ | ||
| jQuery.urlencode = encodeURIComponent; | ||
| /** | ||
| * This function returns the parsed url parameters of the | ||
| * current request. Multiple values per key are supported, | ||
| * it will always return arrays of strings for the value parts. | ||
| */ | ||
| jQuery.getQueryParameters = function(s) { | ||
| if (typeof s === 'undefined') | ||
| s = document.location.search; | ||
| var parts = s.substr(s.indexOf('?') + 1).split('&'); | ||
| var result = {}; | ||
| for (var i = 0; i < parts.length; i++) { | ||
| var tmp = parts[i].split('=', 2); | ||
| var key = jQuery.urldecode(tmp[0]); | ||
| var value = jQuery.urldecode(tmp[1]); | ||
| if (key in result) | ||
| result[key].push(value); | ||
| else | ||
| result[key] = [value]; | ||
| } | ||
| return result; | ||
| }; | ||
| /** | ||
| * highlight a given string on a jquery object by wrapping it in | ||
| * span elements with the given class name. | ||
| */ | ||
| jQuery.fn.highlightText = function(text, className) { | ||
| function highlight(node, addItems) { | ||
| if (node.nodeType === 3) { | ||
| var val = node.nodeValue; | ||
| var pos = val.toLowerCase().indexOf(text); | ||
| if (pos >= 0 && | ||
| !jQuery(node.parentNode).hasClass(className) && | ||
| !jQuery(node.parentNode).hasClass("nohighlight")) { | ||
| var span; | ||
| var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); | ||
| if (isInSVG) { | ||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
| } else { | ||
| span = document.createElement("span"); | ||
| span.className = className; | ||
| } | ||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
| node.parentNode.insertBefore(span, node.parentNode.insertBefore( | ||
| document.createTextNode(val.substr(pos + text.length)), | ||
| node.nextSibling)); | ||
| node.nodeValue = val.substr(0, pos); | ||
| if (isInSVG) { | ||
| var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | ||
| var bbox = node.parentElement.getBBox(); | ||
| rect.x.baseVal.value = bbox.x; | ||
| rect.y.baseVal.value = bbox.y; | ||
| rect.width.baseVal.value = bbox.width; | ||
| rect.height.baseVal.value = bbox.height; | ||
| rect.setAttribute('class', className); | ||
| addItems.push({ | ||
| "parent": node.parentNode, | ||
| "target": rect}); | ||
| } | ||
| } | ||
| } | ||
| else if (!jQuery(node).is("button, select, textarea")) { | ||
| jQuery.each(node.childNodes, function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| } | ||
| } | ||
| var addItems = []; | ||
| var result = this.each(function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| for (var i = 0; i < addItems.length; ++i) { | ||
| jQuery(addItems[i].parent).before(addItems[i].target); | ||
| } | ||
| return result; | ||
| }; | ||
| /* | ||
| * backward compatibility for jQuery.browser | ||
| * This will be supported until firefox bug is fixed. | ||
| */ | ||
| if (!jQuery.browser) { | ||
| jQuery.uaMatch = function(ua) { | ||
| ua = ua.toLowerCase(); | ||
| var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || | ||
| /(webkit)[ \/]([\w.]+)/.exec(ua) || | ||
| /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || | ||
| /(msie) ([\w.]+)/.exec(ua) || | ||
| ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || | ||
| []; | ||
| return { | ||
| browser: match[ 1 ] || "", | ||
| version: match[ 2 ] || "0" | ||
| }; | ||
| }; | ||
| jQuery.browser = {}; | ||
| jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; | ||
| } |
| /* | ||
| * basic.css | ||
| * ~~~~~~~~~ | ||
| * | ||
| * Sphinx stylesheet -- basic theme. | ||
| * | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
| * | ||
| */ | ||
| /* -- main layout ----------------------------------------------------------- */ | ||
| div.clearer { | ||
| clear: both; | ||
| } | ||
| div.section::after { | ||
| display: block; | ||
| content: ''; | ||
| clear: left; | ||
| } | ||
| /* -- relbar ---------------------------------------------------------------- */ | ||
| div.related { | ||
| width: 100%; | ||
| font-size: 90%; | ||
| } | ||
| div.related h3 { | ||
| display: none; | ||
| } | ||
| div.related ul { | ||
| margin: 0; | ||
| padding: 0 0 0 10px; | ||
| list-style: none; | ||
| } | ||
| div.related li { | ||
| display: inline; | ||
| } | ||
| div.related li.right { | ||
| float: right; | ||
| margin-right: 5px; | ||
| } | ||
| /* -- sidebar --------------------------------------------------------------- */ | ||
| div.sphinxsidebarwrapper { | ||
| padding: 10px 5px 0 10px; | ||
| } | ||
| div.sphinxsidebar { | ||
| float: left; | ||
| width: 230px; | ||
| margin-left: -100%; | ||
| font-size: 90%; | ||
| word-wrap: break-word; | ||
| overflow-wrap : break-word; | ||
| } | ||
| div.sphinxsidebar ul { | ||
| list-style: none; | ||
| } | ||
| div.sphinxsidebar ul ul, | ||
| div.sphinxsidebar ul.want-points { | ||
| margin-left: 20px; | ||
| list-style: square; | ||
| } | ||
| div.sphinxsidebar ul ul { | ||
| margin-top: 0; | ||
| margin-bottom: 0; | ||
| } | ||
| div.sphinxsidebar form { | ||
| margin-top: 10px; | ||
| } | ||
| div.sphinxsidebar input { | ||
| border: 1px solid #98dbcc; | ||
| font-family: sans-serif; | ||
| font-size: 1em; | ||
| } | ||
| div.sphinxsidebar #searchbox form.search { | ||
| overflow: hidden; | ||
| } | ||
| div.sphinxsidebar #searchbox input[type="text"] { | ||
| float: left; | ||
| width: 80%; | ||
| padding: 0.25em; | ||
| box-sizing: border-box; | ||
| } | ||
| div.sphinxsidebar #searchbox input[type="submit"] { | ||
| float: left; | ||
| width: 20%; | ||
| border-left: none; | ||
| padding: 0.25em; | ||
| box-sizing: border-box; | ||
| } | ||
| img { | ||
| border: 0; | ||
| max-width: 100%; | ||
| } | ||
| /* -- search page ----------------------------------------------------------- */ | ||
| ul.search { | ||
| margin: 10px 0 0 20px; | ||
| padding: 0; | ||
| } | ||
| ul.search li { | ||
| padding: 5px 0 5px 20px; | ||
| background-image: url(file.png); | ||
| background-repeat: no-repeat; | ||
| background-position: 0 7px; | ||
| } | ||
| ul.search li a { | ||
| font-weight: bold; | ||
| } | ||
| ul.search li p.context { | ||
| color: #888; | ||
| margin: 2px 0 0 30px; | ||
| text-align: left; | ||
| } | ||
| ul.keywordmatches li.goodmatch a { | ||
| font-weight: bold; | ||
| } | ||
| /* -- index page ------------------------------------------------------------ */ | ||
| table.contentstable { | ||
| width: 90%; | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| table.contentstable p.biglink { | ||
| line-height: 150%; | ||
| } | ||
| a.biglink { | ||
| font-size: 1.3em; | ||
| } | ||
| span.linkdescr { | ||
| font-style: italic; | ||
| padding-top: 5px; | ||
| font-size: 90%; | ||
| } | ||
| /* -- general index --------------------------------------------------------- */ | ||
| table.indextable { | ||
| width: 100%; | ||
| } | ||
| table.indextable td { | ||
| text-align: left; | ||
| vertical-align: top; | ||
| } | ||
| table.indextable ul { | ||
| margin-top: 0; | ||
| margin-bottom: 0; | ||
| list-style-type: none; | ||
| } | ||
| table.indextable > tbody > tr > td > ul { | ||
| padding-left: 0em; | ||
| } | ||
| table.indextable tr.pcap { | ||
| height: 10px; | ||
| } | ||
| table.indextable tr.cap { | ||
| margin-top: 10px; | ||
| background-color: #f2f2f2; | ||
| } | ||
| img.toggler { | ||
| margin-right: 3px; | ||
| margin-top: 3px; | ||
| cursor: pointer; | ||
| } | ||
| div.modindex-jumpbox { | ||
| border-top: 1px solid #ddd; | ||
| border-bottom: 1px solid #ddd; | ||
| margin: 1em 0 1em 0; | ||
| padding: 0.4em; | ||
| } | ||
| div.genindex-jumpbox { | ||
| border-top: 1px solid #ddd; | ||
| border-bottom: 1px solid #ddd; | ||
| margin: 1em 0 1em 0; | ||
| padding: 0.4em; | ||
| } | ||
| /* -- domain module index --------------------------------------------------- */ | ||
| table.modindextable td { | ||
| padding: 2px; | ||
| border-collapse: collapse; | ||
| } | ||
| /* -- general body styles --------------------------------------------------- */ | ||
| div.body { | ||
| min-width: 360px; | ||
| max-width: 800px; | ||
| } | ||
| div.body p, div.body dd, div.body li, div.body blockquote { | ||
| -moz-hyphens: auto; | ||
| -ms-hyphens: auto; | ||
| -webkit-hyphens: auto; | ||
| hyphens: auto; | ||
| } | ||
| a.headerlink { | ||
| visibility: hidden; | ||
| } | ||
| h1:hover > a.headerlink, | ||
| h2:hover > a.headerlink, | ||
| h3:hover > a.headerlink, | ||
| h4:hover > a.headerlink, | ||
| h5:hover > a.headerlink, | ||
| h6:hover > a.headerlink, | ||
| dt:hover > a.headerlink, | ||
| caption:hover > a.headerlink, | ||
| p.caption:hover > a.headerlink, | ||
| div.code-block-caption:hover > a.headerlink { | ||
| visibility: visible; | ||
| } | ||
| div.body p.caption { | ||
| text-align: inherit; | ||
| } | ||
| div.body td { | ||
| text-align: left; | ||
| } | ||
| .first { | ||
| margin-top: 0 !important; | ||
| } | ||
| p.rubric { | ||
| margin-top: 30px; | ||
| font-weight: bold; | ||
| } | ||
| img.align-left, figure.align-left, .figure.align-left, object.align-left { | ||
| clear: left; | ||
| float: left; | ||
| margin-right: 1em; | ||
| } | ||
| img.align-right, figure.align-right, .figure.align-right, object.align-right { | ||
| clear: right; | ||
| float: right; | ||
| margin-left: 1em; | ||
| } | ||
| img.align-center, figure.align-center, .figure.align-center, object.align-center { | ||
| display: block; | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| img.align-default, figure.align-default, .figure.align-default { | ||
| display: block; | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| .align-left { | ||
| text-align: left; | ||
| } | ||
| .align-center { | ||
| text-align: center; | ||
| } | ||
| .align-default { | ||
| text-align: center; | ||
| } | ||
| .align-right { | ||
| text-align: right; | ||
| } | ||
| /* -- sidebars -------------------------------------------------------------- */ | ||
| div.sidebar, | ||
| aside.sidebar { | ||
| margin: 0 0 0.5em 1em; | ||
| border: 1px solid #ddb; | ||
| padding: 7px; | ||
| background-color: #ffe; | ||
| width: 40%; | ||
| float: right; | ||
| clear: right; | ||
| overflow-x: auto; | ||
| } | ||
| p.sidebar-title { | ||
| font-weight: bold; | ||
| } | ||
| nav.contents, | ||
| aside.topic, | ||
| div.admonition, div.topic, blockquote { | ||
| clear: left; | ||
| } | ||
| /* -- topics ---------------------------------------------------------------- */ | ||
| nav.contents, | ||
| aside.topic, | ||
| div.topic { | ||
| border: 1px solid #ccc; | ||
| padding: 7px; | ||
| margin: 10px 0 10px 0; | ||
| } | ||
| p.topic-title { | ||
| font-size: 1.1em; | ||
| font-weight: bold; | ||
| margin-top: 10px; | ||
| } | ||
| /* -- admonitions ----------------------------------------------------------- */ | ||
| div.admonition { | ||
| margin-top: 10px; | ||
| margin-bottom: 10px; | ||
| padding: 7px; | ||
| } | ||
| div.admonition dt { | ||
| font-weight: bold; | ||
| } | ||
| p.admonition-title { | ||
| margin: 0px 10px 5px 0px; | ||
| font-weight: bold; | ||
| } | ||
| div.body p.centered { | ||
| text-align: center; | ||
| margin-top: 25px; | ||
| } | ||
| /* -- content of sidebars/topics/admonitions -------------------------------- */ | ||
| div.sidebar > :last-child, | ||
| aside.sidebar > :last-child, | ||
| nav.contents > :last-child, | ||
| aside.topic > :last-child, | ||
| div.topic > :last-child, | ||
| div.admonition > :last-child { | ||
| margin-bottom: 0; | ||
| } | ||
| div.sidebar::after, | ||
| aside.sidebar::after, | ||
| nav.contents::after, | ||
| aside.topic::after, | ||
| div.topic::after, | ||
| div.admonition::after, | ||
| blockquote::after { | ||
| display: block; | ||
| content: ''; | ||
| clear: both; | ||
| } | ||
| /* -- tables ---------------------------------------------------------------- */ | ||
| table.docutils { | ||
| margin-top: 10px; | ||
| margin-bottom: 10px; | ||
| border: 0; | ||
| border-collapse: collapse; | ||
| } | ||
| table.align-center { | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| table.align-default { | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| table caption span.caption-number { | ||
| font-style: italic; | ||
| } | ||
| table caption span.caption-text { | ||
| } | ||
| table.docutils td, table.docutils th { | ||
| padding: 1px 8px 1px 5px; | ||
| border-top: 0; | ||
| border-left: 0; | ||
| border-right: 0; | ||
| border-bottom: 1px solid #aaa; | ||
| } | ||
| th { | ||
| text-align: left; | ||
| padding-right: 5px; | ||
| } | ||
| table.citation { | ||
| border-left: solid 1px gray; | ||
| margin-left: 1px; | ||
| } | ||
| table.citation td { | ||
| border-bottom: none; | ||
| } | ||
| th > :first-child, | ||
| td > :first-child { | ||
| margin-top: 0px; | ||
| } | ||
| th > :last-child, | ||
| td > :last-child { | ||
| margin-bottom: 0px; | ||
| } | ||
| /* -- figures --------------------------------------------------------------- */ | ||
| div.figure, figure { | ||
| margin: 0.5em; | ||
| padding: 0.5em; | ||
| } | ||
| div.figure p.caption, figcaption { | ||
| padding: 0.3em; | ||
| } | ||
| div.figure p.caption span.caption-number, | ||
| figcaption span.caption-number { | ||
| font-style: italic; | ||
| } | ||
| div.figure p.caption span.caption-text, | ||
| figcaption span.caption-text { | ||
| } | ||
| /* -- field list styles ----------------------------------------------------- */ | ||
| table.field-list td, table.field-list th { | ||
| border: 0 !important; | ||
| } | ||
| .field-list ul { | ||
| margin: 0; | ||
| padding-left: 1em; | ||
| } | ||
| .field-list p { | ||
| margin: 0; | ||
| } | ||
| .field-name { | ||
| -moz-hyphens: manual; | ||
| -ms-hyphens: manual; | ||
| -webkit-hyphens: manual; | ||
| hyphens: manual; | ||
| } | ||
| /* -- hlist styles ---------------------------------------------------------- */ | ||
| table.hlist { | ||
| margin: 1em 0; | ||
| } | ||
| table.hlist td { | ||
| vertical-align: top; | ||
| } | ||
| /* -- object description styles --------------------------------------------- */ | ||
| .sig { | ||
| font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; | ||
| } | ||
| .sig-name, code.descname { | ||
| background-color: transparent; | ||
| font-weight: bold; | ||
| } | ||
| .sig-name { | ||
| font-size: 1.1em; | ||
| } | ||
| code.descname { | ||
| font-size: 1.2em; | ||
| } | ||
| .sig-prename, code.descclassname { | ||
| background-color: transparent; | ||
| } | ||
| .optional { | ||
| font-size: 1.3em; | ||
| } | ||
| .sig-paren { | ||
| font-size: larger; | ||
| } | ||
| .sig-param.n { | ||
| font-style: italic; | ||
| } | ||
| /* C++ specific styling */ | ||
| .sig-inline.c-texpr, | ||
| .sig-inline.cpp-texpr { | ||
| font-family: unset; | ||
| } | ||
| .sig.c .k, .sig.c .kt, | ||
| .sig.cpp .k, .sig.cpp .kt { | ||
| color: #0033B3; | ||
| } | ||
| .sig.c .m, | ||
| .sig.cpp .m { | ||
| color: #1750EB; | ||
| } | ||
| .sig.c .s, .sig.c .sc, | ||
| .sig.cpp .s, .sig.cpp .sc { | ||
| color: #067D17; | ||
| } | ||
| /* -- other body styles ----------------------------------------------------- */ | ||
| ol.arabic { | ||
| list-style: decimal; | ||
| } | ||
| ol.loweralpha { | ||
| list-style: lower-alpha; | ||
| } | ||
| ol.upperalpha { | ||
| list-style: upper-alpha; | ||
| } | ||
| ol.lowerroman { | ||
| list-style: lower-roman; | ||
| } | ||
| ol.upperroman { | ||
| list-style: upper-roman; | ||
| } | ||
| :not(li) > ol > li:first-child > :first-child, | ||
| :not(li) > ul > li:first-child > :first-child { | ||
| margin-top: 0px; | ||
| } | ||
| :not(li) > ol > li:last-child > :last-child, | ||
| :not(li) > ul > li:last-child > :last-child { | ||
| margin-bottom: 0px; | ||
| } | ||
| ol.simple ol p, | ||
| ol.simple ul p, | ||
| ul.simple ol p, | ||
| ul.simple ul p { | ||
| margin-top: 0; | ||
| } | ||
| ol.simple > li:not(:first-child) > p, | ||
| ul.simple > li:not(:first-child) > p { | ||
| margin-top: 0; | ||
| } | ||
| ol.simple p, | ||
| ul.simple p { | ||
| margin-bottom: 0; | ||
| } | ||
| /* Docutils 0.17 and older (footnotes & citations) */ | ||
| dl.footnote > dt, | ||
| dl.citation > dt { | ||
| float: left; | ||
| margin-right: 0.5em; | ||
| } | ||
| dl.footnote > dd, | ||
| dl.citation > dd { | ||
| margin-bottom: 0em; | ||
| } | ||
| dl.footnote > dd:after, | ||
| dl.citation > dd:after { | ||
| content: ""; | ||
| clear: both; | ||
| } | ||
| /* Docutils 0.18+ (footnotes & citations) */ | ||
| aside.footnote > span, | ||
| div.citation > span { | ||
| float: left; | ||
| } | ||
| aside.footnote > span:last-of-type, | ||
| div.citation > span:last-of-type { | ||
| padding-right: 0.5em; | ||
| } | ||
| aside.footnote > p { | ||
| margin-left: 2em; | ||
| } | ||
| div.citation > p { | ||
| margin-left: 4em; | ||
| } | ||
| aside.footnote > p:last-of-type, | ||
| div.citation > p:last-of-type { | ||
| margin-bottom: 0em; | ||
| } | ||
| aside.footnote > p:last-of-type:after, | ||
| div.citation > p:last-of-type:after { | ||
| content: ""; | ||
| clear: both; | ||
| } | ||
| /* Footnotes & citations ends */ | ||
| dl.field-list { | ||
| display: grid; | ||
| grid-template-columns: fit-content(30%) auto; | ||
| } | ||
| dl.field-list > dt { | ||
| font-weight: bold; | ||
| word-break: break-word; | ||
| padding-left: 0.5em; | ||
| padding-right: 5px; | ||
| } | ||
| dl.field-list > dt:after { | ||
| content: ":"; | ||
| } | ||
| dl.field-list > dd { | ||
| padding-left: 0.5em; | ||
| margin-top: 0em; | ||
| margin-left: 0em; | ||
| margin-bottom: 0em; | ||
| } | ||
| dl { | ||
| margin-bottom: 15px; | ||
| } | ||
| dd > :first-child { | ||
| margin-top: 0px; | ||
| } | ||
| dd ul, dd table { | ||
| margin-bottom: 10px; | ||
| } | ||
| dd { | ||
| margin-top: 3px; | ||
| margin-bottom: 10px; | ||
| margin-left: 30px; | ||
| } | ||
| dl > dd:last-child, | ||
| dl > dd:last-child > :last-child { | ||
| margin-bottom: 0; | ||
| } | ||
| dt:target, span.highlighted { | ||
| background-color: #fbe54e; | ||
| } | ||
| rect.highlighted { | ||
| fill: #fbe54e; | ||
| } | ||
| dl.glossary dt { | ||
| font-weight: bold; | ||
| font-size: 1.1em; | ||
| } | ||
| .versionmodified { | ||
| font-style: italic; | ||
| } | ||
| .system-message { | ||
| background-color: #fda; | ||
| padding: 5px; | ||
| border: 3px solid red; | ||
| } | ||
| .footnote:target { | ||
| background-color: #ffa; | ||
| } | ||
| .line-block { | ||
| display: block; | ||
| margin-top: 1em; | ||
| margin-bottom: 1em; | ||
| } | ||
| .line-block .line-block { | ||
| margin-top: 0; | ||
| margin-bottom: 0; | ||
| margin-left: 1.5em; | ||
| } | ||
| .guilabel, .menuselection { | ||
| font-family: sans-serif; | ||
| } | ||
| .accelerator { | ||
| text-decoration: underline; | ||
| } | ||
| .classifier { | ||
| font-style: oblique; | ||
| } | ||
| .classifier:before { | ||
| font-style: normal; | ||
| margin: 0 0.5em; | ||
| content: ":"; | ||
| display: inline-block; | ||
| } | ||
| abbr, acronym { | ||
| border-bottom: dotted 1px; | ||
| cursor: help; | ||
| } | ||
| /* -- code displays --------------------------------------------------------- */ | ||
| pre { | ||
| overflow: auto; | ||
| overflow-y: hidden; /* fixes display issues on Chrome browsers */ | ||
| } | ||
| pre, div[class*="highlight-"] { | ||
| clear: both; | ||
| } | ||
| span.pre { | ||
| -moz-hyphens: none; | ||
| -ms-hyphens: none; | ||
| -webkit-hyphens: none; | ||
| hyphens: none; | ||
| white-space: nowrap; | ||
| } | ||
| div[class*="highlight-"] { | ||
| margin: 1em 0; | ||
| } | ||
| td.linenos pre { | ||
| border: 0; | ||
| background-color: transparent; | ||
| color: #aaa; | ||
| } | ||
| table.highlighttable { | ||
| display: block; | ||
| } | ||
| table.highlighttable tbody { | ||
| display: block; | ||
| } | ||
| table.highlighttable tr { | ||
| display: flex; | ||
| } | ||
| table.highlighttable td { | ||
| margin: 0; | ||
| padding: 0; | ||
| } | ||
| table.highlighttable td.linenos { | ||
| padding-right: 0.5em; | ||
| } | ||
| table.highlighttable td.code { | ||
| flex: 1; | ||
| overflow: hidden; | ||
| } | ||
| .highlight .hll { | ||
| display: block; | ||
| } | ||
| div.highlight pre, | ||
| table.highlighttable pre { | ||
| margin: 0; | ||
| } | ||
| div.code-block-caption + div { | ||
| margin-top: 0; | ||
| } | ||
| div.code-block-caption { | ||
| margin-top: 1em; | ||
| padding: 2px 5px; | ||
| font-size: small; | ||
| } | ||
| div.code-block-caption code { | ||
| background-color: transparent; | ||
| } | ||
| table.highlighttable td.linenos, | ||
| span.linenos, | ||
| div.highlight span.gp { /* gp: Generic.Prompt */ | ||
| user-select: none; | ||
| -webkit-user-select: text; /* Safari fallback only */ | ||
| -webkit-user-select: none; /* Chrome/Safari */ | ||
| -moz-user-select: none; /* Firefox */ | ||
| -ms-user-select: none; /* IE10+ */ | ||
| } | ||
| div.code-block-caption span.caption-number { | ||
| padding: 0.1em 0.3em; | ||
| font-style: italic; | ||
| } | ||
| div.code-block-caption span.caption-text { | ||
| } | ||
| div.literal-block-wrapper { | ||
| margin: 1em 0; | ||
| } | ||
| code.xref, a code { | ||
| background-color: transparent; | ||
| font-weight: bold; | ||
| } | ||
| h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { | ||
| background-color: transparent; | ||
| } | ||
| .viewcode-link { | ||
| float: right; | ||
| } | ||
| .viewcode-back { | ||
| float: right; | ||
| font-family: sans-serif; | ||
| } | ||
| div.viewcode-block:target { | ||
| margin: -1px -10px; | ||
| padding: 0 10px; | ||
| } | ||
| /* -- math display ---------------------------------------------------------- */ | ||
| img.math { | ||
| vertical-align: middle; | ||
| } | ||
| div.body div.math p { | ||
| text-align: center; | ||
| } | ||
| span.eqno { | ||
| float: right; | ||
| } | ||
| span.eqno a.headerlink { | ||
| position: absolute; | ||
| z-index: 1; | ||
| } | ||
| div.math:hover a.headerlink { | ||
| visibility: visible; | ||
| } | ||
| /* -- printout stylesheet --------------------------------------------------- */ | ||
| @media print { | ||
| div.document, | ||
| div.documentwrapper, | ||
| div.bodywrapper { | ||
| margin: 0 !important; | ||
| width: 100%; | ||
| } | ||
| div.sphinxsidebar, | ||
| div.related, | ||
| div.footer, | ||
| #top-link { | ||
| display: none; | ||
| } | ||
| } |
| .fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} |
| @import url("theme.css"); | ||
| h1 { | ||
| border-bottom: 2px solid #bbb; | ||
| } | ||
| h2 { | ||
| border-bottom: 1px solid #ddd; | ||
| } | ||
| h3 { | ||
| border-bottom: 1px solid #eee; | ||
| } |
Sorry, the diff of this file is too big to display
| /* | ||
| * doctools.js | ||
| * ~~~~~~~~~~~ | ||
| * | ||
| * Base JavaScript utilities for all Sphinx HTML documentation. | ||
| * | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
| * | ||
| */ | ||
| "use strict"; | ||
| const _ready = (callback) => { | ||
| if (document.readyState !== "loading") { | ||
| callback(); | ||
| } else { | ||
| document.addEventListener("DOMContentLoaded", callback); | ||
| } | ||
| }; | ||
| /** | ||
| * highlight a given string on a node by wrapping it in | ||
| * span elements with the given class name. | ||
| */ | ||
| const _highlight = (node, addItems, text, className) => { | ||
| if (node.nodeType === Node.TEXT_NODE) { | ||
| const val = node.nodeValue; | ||
| const parent = node.parentNode; | ||
| const pos = val.toLowerCase().indexOf(text); | ||
| if ( | ||
| pos >= 0 && | ||
| !parent.classList.contains(className) && | ||
| !parent.classList.contains("nohighlight") | ||
| ) { | ||
| let span; | ||
| const closestNode = parent.closest("body, svg, foreignObject"); | ||
| const isInSVG = closestNode && closestNode.matches("svg"); | ||
| if (isInSVG) { | ||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
| } else { | ||
| span = document.createElement("span"); | ||
| span.classList.add(className); | ||
| } | ||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
| parent.insertBefore( | ||
| span, | ||
| parent.insertBefore( | ||
| document.createTextNode(val.substr(pos + text.length)), | ||
| node.nextSibling | ||
| ) | ||
| ); | ||
| node.nodeValue = val.substr(0, pos); | ||
| if (isInSVG) { | ||
| const rect = document.createElementNS( | ||
| "http://www.w3.org/2000/svg", | ||
| "rect" | ||
| ); | ||
| const bbox = parent.getBBox(); | ||
| rect.x.baseVal.value = bbox.x; | ||
| rect.y.baseVal.value = bbox.y; | ||
| rect.width.baseVal.value = bbox.width; | ||
| rect.height.baseVal.value = bbox.height; | ||
| rect.setAttribute("class", className); | ||
| addItems.push({ parent: parent, target: rect }); | ||
| } | ||
| } | ||
| } else if (node.matches && !node.matches("button, select, textarea")) { | ||
| node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); | ||
| } | ||
| }; | ||
| const _highlightText = (thisNode, text, className) => { | ||
| let addItems = []; | ||
| _highlight(thisNode, addItems, text, className); | ||
| addItems.forEach((obj) => | ||
| obj.parent.insertAdjacentElement("beforebegin", obj.target) | ||
| ); | ||
| }; | ||
| /** | ||
| * Small JavaScript module for the documentation. | ||
| */ | ||
| const Documentation = { | ||
| init: () => { | ||
| Documentation.highlightSearchWords(); | ||
| Documentation.initDomainIndexTable(); | ||
| Documentation.initOnKeyListeners(); | ||
| }, | ||
| /** | ||
| * i18n support | ||
| */ | ||
| TRANSLATIONS: {}, | ||
| PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), | ||
| LOCALE: "unknown", | ||
| // gettext and ngettext don't access this so that the functions | ||
| // can safely bound to a different name (_ = Documentation.gettext) | ||
| gettext: (string) => { | ||
| const translated = Documentation.TRANSLATIONS[string]; | ||
| switch (typeof translated) { | ||
| case "undefined": | ||
| return string; // no translation | ||
| case "string": | ||
| return translated; // translation exists | ||
| default: | ||
| return translated[0]; // (singular, plural) translation tuple exists | ||
| } | ||
| }, | ||
| ngettext: (singular, plural, n) => { | ||
| const translated = Documentation.TRANSLATIONS[singular]; | ||
| if (typeof translated !== "undefined") | ||
| return translated[Documentation.PLURAL_EXPR(n)]; | ||
| return n === 1 ? singular : plural; | ||
| }, | ||
| addTranslations: (catalog) => { | ||
| Object.assign(Documentation.TRANSLATIONS, catalog.messages); | ||
| Documentation.PLURAL_EXPR = new Function( | ||
| "n", | ||
| `return (${catalog.plural_expr})` | ||
| ); | ||
| Documentation.LOCALE = catalog.locale; | ||
| }, | ||
| /** | ||
| * highlight the search words provided in the url in the text | ||
| */ | ||
| highlightSearchWords: () => { | ||
| const highlight = | ||
| new URLSearchParams(window.location.search).get("highlight") || ""; | ||
| const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); | ||
| if (terms.length === 0) return; // nothing to do | ||
| // There should never be more than one element matching "div.body" | ||
| const divBody = document.querySelectorAll("div.body"); | ||
| const body = divBody.length ? divBody[0] : document.querySelector("body"); | ||
| window.setTimeout(() => { | ||
| terms.forEach((term) => _highlightText(body, term, "highlighted")); | ||
| }, 10); | ||
| const searchBox = document.getElementById("searchbox"); | ||
| if (searchBox === null) return; | ||
| searchBox.appendChild( | ||
| document | ||
| .createRange() | ||
| .createContextualFragment( | ||
| '<p class="highlight-link">' + | ||
| '<a href="javascript:Documentation.hideSearchWords()">' + | ||
| Documentation.gettext("Hide Search Matches") + | ||
| "</a></p>" | ||
| ) | ||
| ); | ||
| }, | ||
| /** | ||
| * helper function to hide the search marks again | ||
| */ | ||
| hideSearchWords: () => { | ||
| document | ||
| .querySelectorAll("#searchbox .highlight-link") | ||
| .forEach((el) => el.remove()); | ||
| document | ||
| .querySelectorAll("span.highlighted") | ||
| .forEach((el) => el.classList.remove("highlighted")); | ||
| const url = new URL(window.location); | ||
| url.searchParams.delete("highlight"); | ||
| window.history.replaceState({}, "", url); | ||
| }, | ||
| /** | ||
| * helper function to focus on search bar | ||
| */ | ||
| focusSearchBar: () => { | ||
| document.querySelectorAll("input[name=q]")[0]?.focus(); | ||
| }, | ||
| /** | ||
| * Initialise the domain index toggle buttons | ||
| */ | ||
| initDomainIndexTable: () => { | ||
| const toggler = (el) => { | ||
| const idNumber = el.id.substr(7); | ||
| const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); | ||
| if (el.src.substr(-9) === "minus.png") { | ||
| el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; | ||
| toggledRows.forEach((el) => (el.style.display = "none")); | ||
| } else { | ||
| el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; | ||
| toggledRows.forEach((el) => (el.style.display = "")); | ||
| } | ||
| }; | ||
| const togglerElements = document.querySelectorAll("img.toggler"); | ||
| togglerElements.forEach((el) => | ||
| el.addEventListener("click", (event) => toggler(event.currentTarget)) | ||
| ); | ||
| togglerElements.forEach((el) => (el.style.display = "")); | ||
| if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); | ||
| }, | ||
| initOnKeyListeners: () => { | ||
| // only install a listener if it is really needed | ||
| if ( | ||
| !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && | ||
| !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS | ||
| ) | ||
| return; | ||
| const blacklistedElements = new Set([ | ||
| "TEXTAREA", | ||
| "INPUT", | ||
| "SELECT", | ||
| "BUTTON", | ||
| ]); | ||
| document.addEventListener("keydown", (event) => { | ||
| if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements | ||
| if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys | ||
| if (!event.shiftKey) { | ||
| switch (event.key) { | ||
| case "ArrowLeft": | ||
| if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; | ||
| const prevLink = document.querySelector('link[rel="prev"]'); | ||
| if (prevLink && prevLink.href) { | ||
| window.location.href = prevLink.href; | ||
| event.preventDefault(); | ||
| } | ||
| break; | ||
| case "ArrowRight": | ||
| if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; | ||
| const nextLink = document.querySelector('link[rel="next"]'); | ||
| if (nextLink && nextLink.href) { | ||
| window.location.href = nextLink.href; | ||
| event.preventDefault(); | ||
| } | ||
| break; | ||
| case "Escape": | ||
| if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; | ||
| Documentation.hideSearchWords(); | ||
| event.preventDefault(); | ||
| } | ||
| } | ||
| // some keyboard layouts may need Shift to get / | ||
| switch (event.key) { | ||
| case "/": | ||
| if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; | ||
| Documentation.focusSearchBar(); | ||
| event.preventDefault(); | ||
| } | ||
| }); | ||
| }, | ||
| }; | ||
| // quick alias for translations | ||
| const _ = Documentation.gettext; | ||
| _ready(Documentation.init); |
| var DOCUMENTATION_OPTIONS = { | ||
| URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), | ||
| VERSION: '', | ||
| LANGUAGE: 'en', | ||
| COLLAPSE_INDEX: false, | ||
| BUILDER: 'html', | ||
| FILE_SUFFIX: '.html', | ||
| LINK_SUFFIX: '.html', | ||
| HAS_SOURCE: false, | ||
| SOURCELINK_SUFFIX: '.txt', | ||
| NAVIGATION_WITH_KEYS: false, | ||
| SHOW_SEARCH_SUMMARY: true, | ||
| ENABLE_SEARCH_SHORTCUTS: false, | ||
| }; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| /* Modernizr 2.6.2 (Custom Build) | MIT & BSD | ||
| * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load | ||
| */ | ||
| ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))}; |
| /* sphinx_rtd_theme version 0.4.3 | MIT license */ | ||
| /* Built 20190212 16:02 */ | ||
| require=function r(s,a,l){function c(e,n){if(!a[e]){if(!s[e]){var i="function"==typeof require&&require;if(!n&&i)return i(e,!0);if(u)return u(e,!0);var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=a[e]={exports:{}};s[e][0].call(o.exports,function(n){return c(s[e][1][n]||n)},o,o.exports,r,s,a,l)}return a[e].exports}for(var u="function"==typeof require&&require,n=0;n<l.length;n++)c(l[n]);return c}({"sphinx-rtd-theme":[function(n,e,i){var jQuery="undefined"!=typeof window?window.jQuery:n("jquery");e.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(e){var i=this;void 0===e&&(e=!0),i.isRunning||(i.isRunning=!0,jQuery(function(n){i.init(n),i.reset(),i.win.on("hashchange",i.reset),e&&i.win.on("scroll",function(){i.linkScroll||i.winScroll||(i.winScroll=!0,requestAnimationFrame(function(){i.onScroll()}))}),i.win.on("resize",function(){i.winResize||(i.winResize=!0,requestAnimationFrame(function(){i.onResize()}))}),i.onResize()}))},enableSticky:function(){this.enable(!0)},init:function(i){i(document);var t=this;this.navBar=i("div.wy-side-scroll:first"),this.win=i(window),i(document).on("click","[data-toggle='wy-nav-top']",function(){i("[data-toggle='wy-nav-shift']").toggleClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift")}).on("click",".wy-menu-vertical .current ul li a",function(){var n=i(this);i("[data-toggle='wy-nav-shift']").removeClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift"),t.toggleCurrent(n),t.hashChange()}).on("click","[data-toggle='rst-current-version']",function(){i("[data-toggle='rst-versions']").toggleClass("shift-up")}),i("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),i("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),i("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),i(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var e=i(this);expand=i('<span class="toctree-expand"></span>'),expand.on("click",function(n){return t.toggleCurrent(e),n.stopPropagation(),!1}),e.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}0<i.length&&($(".wy-menu-vertical .current").removeClass("current"),i.addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l1").parent().addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l2").addClass("current"),i.closest("li.toctree-l3").addClass("current"),i.closest("li.toctree-l4").addClass("current"),i[0].scrollIntoView())}catch(o){console.log("Error expanding nav for anchor",o)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,i=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var r=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,e){var i=(new Date).getTime(),t=Math.max(0,16-(i-r)),o=window.setTimeout(function(){n(i+t)},t);return r=i+t,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()},{jquery:"jquery"}]},{},["sphinx-rtd-theme"]); |
| /* | ||
| * language_data.js | ||
| * ~~~~~~~~~~~~~~~~ | ||
| * | ||
| * This script contains the language-specific data used by searchtools.js, | ||
| * namely the list of stopwords, stemmer, scorer and splitter. | ||
| * | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
| * | ||
| */ | ||
| var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; | ||
| /* Non-minified version is copied as a separate JS file, is available */ | ||
| /** | ||
| * Porter Stemmer | ||
| */ | ||
| var Stemmer = function() { | ||
| var step2list = { | ||
| ational: 'ate', | ||
| tional: 'tion', | ||
| enci: 'ence', | ||
| anci: 'ance', | ||
| izer: 'ize', | ||
| bli: 'ble', | ||
| alli: 'al', | ||
| entli: 'ent', | ||
| eli: 'e', | ||
| ousli: 'ous', | ||
| ization: 'ize', | ||
| ation: 'ate', | ||
| ator: 'ate', | ||
| alism: 'al', | ||
| iveness: 'ive', | ||
| fulness: 'ful', | ||
| ousness: 'ous', | ||
| aliti: 'al', | ||
| iviti: 'ive', | ||
| biliti: 'ble', | ||
| logi: 'log' | ||
| }; | ||
| var step3list = { | ||
| icate: 'ic', | ||
| ative: '', | ||
| alize: 'al', | ||
| iciti: 'ic', | ||
| ical: 'ic', | ||
| ful: '', | ||
| ness: '' | ||
| }; | ||
| var c = "[^aeiou]"; // consonant | ||
| var v = "[aeiouy]"; // vowel | ||
| var C = c + "[^aeiouy]*"; // consonant sequence | ||
| var V = v + "[aeiou]*"; // vowel sequence | ||
| var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 | ||
| var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 | ||
| var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 | ||
| var s_v = "^(" + C + ")?" + v; // vowel in stem | ||
| this.stemWord = function (w) { | ||
| var stem; | ||
| var suffix; | ||
| var firstch; | ||
| var origword = w; | ||
| if (w.length < 3) | ||
| return w; | ||
| var re; | ||
| var re2; | ||
| var re3; | ||
| var re4; | ||
| firstch = w.substr(0,1); | ||
| if (firstch == "y") | ||
| w = firstch.toUpperCase() + w.substr(1); | ||
| // Step 1a | ||
| re = /^(.+?)(ss|i)es$/; | ||
| re2 = /^(.+?)([^s])s$/; | ||
| if (re.test(w)) | ||
| w = w.replace(re,"$1$2"); | ||
| else if (re2.test(w)) | ||
| w = w.replace(re2,"$1$2"); | ||
| // Step 1b | ||
| re = /^(.+?)eed$/; | ||
| re2 = /^(.+?)(ed|ing)$/; | ||
| if (re.test(w)) { | ||
| var fp = re.exec(w); | ||
| re = new RegExp(mgr0); | ||
| if (re.test(fp[1])) { | ||
| re = /.$/; | ||
| w = w.replace(re,""); | ||
| } | ||
| } | ||
| else if (re2.test(w)) { | ||
| var fp = re2.exec(w); | ||
| stem = fp[1]; | ||
| re2 = new RegExp(s_v); | ||
| if (re2.test(stem)) { | ||
| w = stem; | ||
| re2 = /(at|bl|iz)$/; | ||
| re3 = new RegExp("([^aeiouylsz])\\1$"); | ||
| re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); | ||
| if (re2.test(w)) | ||
| w = w + "e"; | ||
| else if (re3.test(w)) { | ||
| re = /.$/; | ||
| w = w.replace(re,""); | ||
| } | ||
| else if (re4.test(w)) | ||
| w = w + "e"; | ||
| } | ||
| } | ||
| // Step 1c | ||
| re = /^(.+?)y$/; | ||
| if (re.test(w)) { | ||
| var fp = re.exec(w); | ||
| stem = fp[1]; | ||
| re = new RegExp(s_v); | ||
| if (re.test(stem)) | ||
| w = stem + "i"; | ||
| } | ||
| // Step 2 | ||
| re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; | ||
| if (re.test(w)) { | ||
| var fp = re.exec(w); | ||
| stem = fp[1]; | ||
| suffix = fp[2]; | ||
| re = new RegExp(mgr0); | ||
| if (re.test(stem)) | ||
| w = stem + step2list[suffix]; | ||
| } | ||
| // Step 3 | ||
| re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; | ||
| if (re.test(w)) { | ||
| var fp = re.exec(w); | ||
| stem = fp[1]; | ||
| suffix = fp[2]; | ||
| re = new RegExp(mgr0); | ||
| if (re.test(stem)) | ||
| w = stem + step3list[suffix]; | ||
| } | ||
| // Step 4 | ||
| re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; | ||
| re2 = /^(.+?)(s|t)(ion)$/; | ||
| if (re.test(w)) { | ||
| var fp = re.exec(w); | ||
| stem = fp[1]; | ||
| re = new RegExp(mgr1); | ||
| if (re.test(stem)) | ||
| w = stem; | ||
| } | ||
| else if (re2.test(w)) { | ||
| var fp = re2.exec(w); | ||
| stem = fp[1] + fp[2]; | ||
| re2 = new RegExp(mgr1); | ||
| if (re2.test(stem)) | ||
| w = stem; | ||
| } | ||
| // Step 5 | ||
| re = /^(.+?)e$/; | ||
| if (re.test(w)) { | ||
| var fp = re.exec(w); | ||
| stem = fp[1]; | ||
| re = new RegExp(mgr1); | ||
| re2 = new RegExp(meq1); | ||
| re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); | ||
| if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) | ||
| w = stem; | ||
| } | ||
| re = /ll$/; | ||
| re2 = new RegExp(mgr1); | ||
| if (re.test(w) && re2.test(w)) { | ||
| re = /.$/; | ||
| w = w.replace(re,""); | ||
| } | ||
| // and turn initial Y back to y | ||
| if (firstch == "y") | ||
| w = firstch.toLowerCase() + w.substr(1); | ||
| return w; | ||
| } | ||
| } | ||
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
| pre { line-height: 125%; } | ||
| td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | ||
| span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | ||
| td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | ||
| span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | ||
| .highlight .hll { background-color: #ffffcc } | ||
| .highlight { background: #eeffcc; } | ||
| .highlight .c { color: #408090; font-style: italic } /* Comment */ | ||
| .highlight .err { border: 1px solid #FF0000 } /* Error */ | ||
| .highlight .k { color: #007020; font-weight: bold } /* Keyword */ | ||
| .highlight .o { color: #666666 } /* Operator */ | ||
| .highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ | ||
| .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ | ||
| .highlight .cp { color: #007020 } /* Comment.Preproc */ | ||
| .highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ | ||
| .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ | ||
| .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ | ||
| .highlight .gd { color: #A00000 } /* Generic.Deleted */ | ||
| .highlight .ge { font-style: italic } /* Generic.Emph */ | ||
| .highlight .gr { color: #FF0000 } /* Generic.Error */ | ||
| .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ | ||
| .highlight .gi { color: #00A000 } /* Generic.Inserted */ | ||
| .highlight .go { color: #333333 } /* Generic.Output */ | ||
| .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ | ||
| .highlight .gs { font-weight: bold } /* Generic.Strong */ | ||
| .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ | ||
| .highlight .gt { color: #0044DD } /* Generic.Traceback */ | ||
| .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ | ||
| .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ | ||
| .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ | ||
| .highlight .kp { color: #007020 } /* Keyword.Pseudo */ | ||
| .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ | ||
| .highlight .kt { color: #902000 } /* Keyword.Type */ | ||
| .highlight .m { color: #208050 } /* Literal.Number */ | ||
| .highlight .s { color: #4070a0 } /* Literal.String */ | ||
| .highlight .na { color: #4070a0 } /* Name.Attribute */ | ||
| .highlight .nb { color: #007020 } /* Name.Builtin */ | ||
| .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ | ||
| .highlight .no { color: #60add5 } /* Name.Constant */ | ||
| .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ | ||
| .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ | ||
| .highlight .ne { color: #007020 } /* Name.Exception */ | ||
| .highlight .nf { color: #06287e } /* Name.Function */ | ||
| .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ | ||
| .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ | ||
| .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ | ||
| .highlight .nv { color: #bb60d5 } /* Name.Variable */ | ||
| .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ | ||
| .highlight .w { color: #bbbbbb } /* Text.Whitespace */ | ||
| .highlight .mb { color: #208050 } /* Literal.Number.Bin */ | ||
| .highlight .mf { color: #208050 } /* Literal.Number.Float */ | ||
| .highlight .mh { color: #208050 } /* Literal.Number.Hex */ | ||
| .highlight .mi { color: #208050 } /* Literal.Number.Integer */ | ||
| .highlight .mo { color: #208050 } /* Literal.Number.Oct */ | ||
| .highlight .sa { color: #4070a0 } /* Literal.String.Affix */ | ||
| .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ | ||
| .highlight .sc { color: #4070a0 } /* Literal.String.Char */ | ||
| .highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ | ||
| .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ | ||
| .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ | ||
| .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ | ||
| .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ | ||
| .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ | ||
| .highlight .sx { color: #c65d09 } /* Literal.String.Other */ | ||
| .highlight .sr { color: #235388 } /* Literal.String.Regex */ | ||
| .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ | ||
| .highlight .ss { color: #517918 } /* Literal.String.Symbol */ | ||
| .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ | ||
| .highlight .fm { color: #06287e } /* Name.Function.Magic */ | ||
| .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ | ||
| .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ | ||
| .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ | ||
| .highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ | ||
| .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ |
| /* | ||
| * searchtools.js | ||
| * ~~~~~~~~~~~~~~~~ | ||
| * | ||
| * Sphinx JavaScript utilities for the full-text search. | ||
| * | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
| * | ||
| */ | ||
| "use strict"; | ||
| /** | ||
| * Simple result scoring code. | ||
| */ | ||
| if (typeof Scorer === "undefined") { | ||
| var Scorer = { | ||
| // Implement the following function to further tweak the score for each result | ||
| // The function takes a result array [docname, title, anchor, descr, score, filename] | ||
| // and returns the new score. | ||
| /* | ||
| score: result => { | ||
| const [docname, title, anchor, descr, score, filename] = result | ||
| return score | ||
| }, | ||
| */ | ||
| // query matches the full name of an object | ||
| objNameMatch: 11, | ||
| // or matches in the last dotted part of the object name | ||
| objPartialMatch: 6, | ||
| // Additive scores depending on the priority of the object | ||
| objPrio: { | ||
| 0: 15, // used to be importantResults | ||
| 1: 5, // used to be objectResults | ||
| 2: -5, // used to be unimportantResults | ||
| }, | ||
| // Used when the priority is not in the mapping. | ||
| objPrioDefault: 0, | ||
| // query found in title | ||
| title: 15, | ||
| partialTitle: 7, | ||
| // query found in terms | ||
| term: 5, | ||
| partialTerm: 2, | ||
| }; | ||
| } | ||
| const _removeChildren = (element) => { | ||
| while (element && element.lastChild) element.removeChild(element.lastChild); | ||
| }; | ||
| /** | ||
| * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping | ||
| */ | ||
| const _escapeRegExp = (string) => | ||
| string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string | ||
| const _displayItem = (item, highlightTerms, searchTerms) => { | ||
| const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; | ||
| const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; | ||
| const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; | ||
| const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; | ||
| const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; | ||
| const [docName, title, anchor, descr] = item; | ||
| let listItem = document.createElement("li"); | ||
| let requestUrl; | ||
| let linkUrl; | ||
| if (docBuilder === "dirhtml") { | ||
| // dirhtml builder | ||
| let dirname = docName + "/"; | ||
| if (dirname.match(/\/index\/$/)) | ||
| dirname = dirname.substring(0, dirname.length - 6); | ||
| else if (dirname === "index/") dirname = ""; | ||
| requestUrl = docUrlRoot + dirname; | ||
| linkUrl = requestUrl; | ||
| } else { | ||
| // normal html builders | ||
| requestUrl = docUrlRoot + docName + docFileSuffix; | ||
| linkUrl = docName + docLinkSuffix; | ||
| } | ||
| const params = new URLSearchParams(); | ||
| params.set("highlight", [...highlightTerms].join(" ")); | ||
| let linkEl = listItem.appendChild(document.createElement("a")); | ||
| linkEl.href = linkUrl + "?" + params.toString() + anchor; | ||
| linkEl.innerHTML = title; | ||
| if (descr) | ||
| listItem.appendChild(document.createElement("span")).innerText = | ||
| " (" + descr + ")"; | ||
| else if (showSearchSummary) | ||
| fetch(requestUrl) | ||
| .then((responseData) => responseData.text()) | ||
| .then((data) => { | ||
| if (data) | ||
| listItem.appendChild( | ||
| Search.makeSearchSummary(data, searchTerms, highlightTerms) | ||
| ); | ||
| }); | ||
| Search.output.appendChild(listItem); | ||
| }; | ||
| const _finishSearch = (resultCount) => { | ||
| Search.stopPulse(); | ||
| Search.title.innerText = _("Search Results"); | ||
| if (!resultCount) | ||
| Search.status.innerText = Documentation.gettext( | ||
| "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." | ||
| ); | ||
| else | ||
| Search.status.innerText = _( | ||
| `Search finished, found ${resultCount} page(s) matching the search query.` | ||
| ); | ||
| }; | ||
| const _displayNextItem = ( | ||
| results, | ||
| resultCount, | ||
| highlightTerms, | ||
| searchTerms | ||
| ) => { | ||
| // results left, load the summary and display it | ||
| // this is intended to be dynamic (don't sub resultsCount) | ||
| if (results.length) { | ||
| _displayItem(results.pop(), highlightTerms, searchTerms); | ||
| setTimeout( | ||
| () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), | ||
| 5 | ||
| ); | ||
| } | ||
| // search finished, update title and status message | ||
| else _finishSearch(resultCount); | ||
| }; | ||
| /** | ||
| * Default splitQuery function. Can be overridden in ``sphinx.search`` with a | ||
| * custom function per language. | ||
| * | ||
| * The regular expression works by splitting the string on consecutive characters | ||
| * that are not Unicode letters, numbers, underscores, or emoji characters. | ||
| * This is the same as ``\W+`` in Python, preserving the surrogate pair area. | ||
| */ | ||
| if (typeof splitQuery === "undefined") { | ||
| var splitQuery = (query) => query | ||
| .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) | ||
| .filter(term => term) // remove remaining empty strings | ||
| } | ||
| /** | ||
| * Search Module | ||
| */ | ||
| const Search = { | ||
| _index: null, | ||
| _queued_query: null, | ||
| _pulse_status: -1, | ||
| htmlToText: (htmlString) => { | ||
| const htmlElement = document | ||
| .createRange() | ||
| .createContextualFragment(htmlString); | ||
| _removeChildren(htmlElement.querySelectorAll(".headerlink")); | ||
| const docContent = htmlElement.querySelector('[role="main"]'); | ||
| if (docContent !== undefined) return docContent.textContent; | ||
| console.warn( | ||
| "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." | ||
| ); | ||
| return ""; | ||
| }, | ||
| init: () => { | ||
| const query = new URLSearchParams(window.location.search).get("q"); | ||
| document | ||
| .querySelectorAll('input[name="q"]') | ||
| .forEach((el) => (el.value = query)); | ||
| if (query) Search.performSearch(query); | ||
| }, | ||
| loadIndex: (url) => | ||
| (document.body.appendChild(document.createElement("script")).src = url), | ||
| setIndex: (index) => { | ||
| Search._index = index; | ||
| if (Search._queued_query !== null) { | ||
| const query = Search._queued_query; | ||
| Search._queued_query = null; | ||
| Search.query(query); | ||
| } | ||
| }, | ||
| hasIndex: () => Search._index !== null, | ||
| deferQuery: (query) => (Search._queued_query = query), | ||
| stopPulse: () => (Search._pulse_status = -1), | ||
| startPulse: () => { | ||
| if (Search._pulse_status >= 0) return; | ||
| const pulse = () => { | ||
| Search._pulse_status = (Search._pulse_status + 1) % 4; | ||
| Search.dots.innerText = ".".repeat(Search._pulse_status); | ||
| if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); | ||
| }; | ||
| pulse(); | ||
| }, | ||
| /** | ||
| * perform a search for something (or wait until index is loaded) | ||
| */ | ||
| performSearch: (query) => { | ||
| // create the required interface elements | ||
| const searchText = document.createElement("h2"); | ||
| searchText.textContent = _("Searching"); | ||
| const searchSummary = document.createElement("p"); | ||
| searchSummary.classList.add("search-summary"); | ||
| searchSummary.innerText = ""; | ||
| const searchList = document.createElement("ul"); | ||
| searchList.classList.add("search"); | ||
| const out = document.getElementById("search-results"); | ||
| Search.title = out.appendChild(searchText); | ||
| Search.dots = Search.title.appendChild(document.createElement("span")); | ||
| Search.status = out.appendChild(searchSummary); | ||
| Search.output = out.appendChild(searchList); | ||
| const searchProgress = document.getElementById("search-progress"); | ||
| // Some themes don't use the search progress node | ||
| if (searchProgress) { | ||
| searchProgress.innerText = _("Preparing search..."); | ||
| } | ||
| Search.startPulse(); | ||
| // index already loaded, the browser was quick! | ||
| if (Search.hasIndex()) Search.query(query); | ||
| else Search.deferQuery(query); | ||
| }, | ||
| /** | ||
| * execute search (requires search index to be loaded) | ||
| */ | ||
| query: (query) => { | ||
| // stem the search terms and add them to the correct list | ||
| const stemmer = new Stemmer(); | ||
| const searchTerms = new Set(); | ||
| const excludedTerms = new Set(); | ||
| const highlightTerms = new Set(); | ||
| const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); | ||
| splitQuery(query.trim()).forEach((queryTerm) => { | ||
| const queryTermLower = queryTerm.toLowerCase(); | ||
| // maybe skip this "word" | ||
| // stopwords array is from language_data.js | ||
| if ( | ||
| stopwords.indexOf(queryTermLower) !== -1 || | ||
| queryTerm.match(/^\d+$/) | ||
| ) | ||
| return; | ||
| // stem the word | ||
| let word = stemmer.stemWord(queryTermLower); | ||
| // select the correct list | ||
| if (word[0] === "-") excludedTerms.add(word.substr(1)); | ||
| else { | ||
| searchTerms.add(word); | ||
| highlightTerms.add(queryTermLower); | ||
| } | ||
| }); | ||
| // console.debug("SEARCH: searching for:"); | ||
| // console.info("required: ", [...searchTerms]); | ||
| // console.info("excluded: ", [...excludedTerms]); | ||
| // array of [docname, title, anchor, descr, score, filename] | ||
| let results = []; | ||
| _removeChildren(document.getElementById("search-progress")); | ||
| // lookup as object | ||
| objectTerms.forEach((term) => | ||
| results.push(...Search.performObjectSearch(term, objectTerms)) | ||
| ); | ||
| // lookup as search terms in fulltext | ||
| results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); | ||
| // let the scorer override scores with a custom scoring function | ||
| if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); | ||
| // now sort the results by score (in opposite order of appearance, since the | ||
| // display function below uses pop() to retrieve items) and then | ||
| // alphabetically | ||
| results.sort((a, b) => { | ||
| const leftScore = a[4]; | ||
| const rightScore = b[4]; | ||
| if (leftScore === rightScore) { | ||
| // same score: sort alphabetically | ||
| const leftTitle = a[1].toLowerCase(); | ||
| const rightTitle = b[1].toLowerCase(); | ||
| if (leftTitle === rightTitle) return 0; | ||
| return leftTitle > rightTitle ? -1 : 1; // inverted is intentional | ||
| } | ||
| return leftScore > rightScore ? 1 : -1; | ||
| }); | ||
| // remove duplicate search results | ||
| // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept | ||
| let seen = new Set(); | ||
| results = results.reverse().reduce((acc, result) => { | ||
| let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); | ||
| if (!seen.has(resultStr)) { | ||
| acc.push(result); | ||
| seen.add(resultStr); | ||
| } | ||
| return acc; | ||
| }, []); | ||
| results = results.reverse(); | ||
| // for debugging | ||
| //Search.lastresults = results.slice(); // a copy | ||
| // console.info("search results:", Search.lastresults); | ||
| // print the results | ||
| _displayNextItem(results, results.length, highlightTerms, searchTerms); | ||
| }, | ||
| /** | ||
| * search for object names | ||
| */ | ||
| performObjectSearch: (object, objectTerms) => { | ||
| const filenames = Search._index.filenames; | ||
| const docNames = Search._index.docnames; | ||
| const objects = Search._index.objects; | ||
| const objNames = Search._index.objnames; | ||
| const titles = Search._index.titles; | ||
| const results = []; | ||
| const objectSearchCallback = (prefix, match) => { | ||
| const name = match[4] | ||
| const fullname = (prefix ? prefix + "." : "") + name; | ||
| const fullnameLower = fullname.toLowerCase(); | ||
| if (fullnameLower.indexOf(object) < 0) return; | ||
| let score = 0; | ||
| const parts = fullnameLower.split("."); | ||
| // check for different match types: exact matches of full name or | ||
| // "last name" (i.e. last dotted part) | ||
| if (fullnameLower === object || parts.slice(-1)[0] === object) | ||
| score += Scorer.objNameMatch; | ||
| else if (parts.slice(-1)[0].indexOf(object) > -1) | ||
| score += Scorer.objPartialMatch; // matches in last name | ||
| const objName = objNames[match[1]][2]; | ||
| const title = titles[match[0]]; | ||
| // If more than one term searched for, we require other words to be | ||
| // found in the name/title/description | ||
| const otherTerms = new Set(objectTerms); | ||
| otherTerms.delete(object); | ||
| if (otherTerms.size > 0) { | ||
| const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); | ||
| if ( | ||
| [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) | ||
| ) | ||
| return; | ||
| } | ||
| let anchor = match[3]; | ||
| if (anchor === "") anchor = fullname; | ||
| else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; | ||
| const descr = objName + _(", in ") + title; | ||
| // add custom score for some objects according to scorer | ||
| if (Scorer.objPrio.hasOwnProperty(match[2])) | ||
| score += Scorer.objPrio[match[2]]; | ||
| else score += Scorer.objPrioDefault; | ||
| results.push([ | ||
| docNames[match[0]], | ||
| fullname, | ||
| "#" + anchor, | ||
| descr, | ||
| score, | ||
| filenames[match[0]], | ||
| ]); | ||
| }; | ||
| Object.keys(objects).forEach((prefix) => | ||
| objects[prefix].forEach((array) => | ||
| objectSearchCallback(prefix, array) | ||
| ) | ||
| ); | ||
| return results; | ||
| }, | ||
| /** | ||
| * search for full-text terms in the index | ||
| */ | ||
| performTermsSearch: (searchTerms, excludedTerms) => { | ||
| // prepare search | ||
| const terms = Search._index.terms; | ||
| const titleTerms = Search._index.titleterms; | ||
| const docNames = Search._index.docnames; | ||
| const filenames = Search._index.filenames; | ||
| const titles = Search._index.titles; | ||
| const scoreMap = new Map(); | ||
| const fileMap = new Map(); | ||
| // perform the search on the required terms | ||
| searchTerms.forEach((word) => { | ||
| const files = []; | ||
| const arr = [ | ||
| { files: terms[word], score: Scorer.term }, | ||
| { files: titleTerms[word], score: Scorer.title }, | ||
| ]; | ||
| // add support for partial matches | ||
| if (word.length > 2) { | ||
| const escapedWord = _escapeRegExp(word); | ||
| Object.keys(terms).forEach((term) => { | ||
| if (term.match(escapedWord) && !terms[word]) | ||
| arr.push({ files: terms[term], score: Scorer.partialTerm }); | ||
| }); | ||
| Object.keys(titleTerms).forEach((term) => { | ||
| if (term.match(escapedWord) && !titleTerms[word]) | ||
| arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); | ||
| }); | ||
| } | ||
| // no match but word was a required one | ||
| if (arr.every((record) => record.files === undefined)) return; | ||
| // found search word in contents | ||
| arr.forEach((record) => { | ||
| if (record.files === undefined) return; | ||
| let recordFiles = record.files; | ||
| if (recordFiles.length === undefined) recordFiles = [recordFiles]; | ||
| files.push(...recordFiles); | ||
| // set score for the word in each file | ||
| recordFiles.forEach((file) => { | ||
| if (!scoreMap.has(file)) scoreMap.set(file, {}); | ||
| scoreMap.get(file)[word] = record.score; | ||
| }); | ||
| }); | ||
| // create the mapping | ||
| files.forEach((file) => { | ||
| if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) | ||
| fileMap.get(file).push(word); | ||
| else fileMap.set(file, [word]); | ||
| }); | ||
| }); | ||
| // now check if the files don't contain excluded terms | ||
| const results = []; | ||
| for (const [file, wordList] of fileMap) { | ||
| // check if all requirements are matched | ||
| // as search terms with length < 3 are discarded | ||
| const filteredTermCount = [...searchTerms].filter( | ||
| (term) => term.length > 2 | ||
| ).length; | ||
| if ( | ||
| wordList.length !== searchTerms.size && | ||
| wordList.length !== filteredTermCount | ||
| ) | ||
| continue; | ||
| // ensure that none of the excluded terms is in the search result | ||
| if ( | ||
| [...excludedTerms].some( | ||
| (term) => | ||
| terms[term] === file || | ||
| titleTerms[term] === file || | ||
| (terms[term] || []).includes(file) || | ||
| (titleTerms[term] || []).includes(file) | ||
| ) | ||
| ) | ||
| break; | ||
| // select one (max) score for the file. | ||
| const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); | ||
| // add result to the result list | ||
| results.push([ | ||
| docNames[file], | ||
| titles[file], | ||
| "", | ||
| null, | ||
| score, | ||
| filenames[file], | ||
| ]); | ||
| } | ||
| return results; | ||
| }, | ||
| /** | ||
| * helper function to return a node containing the | ||
| * search summary for a given text. keywords is a list | ||
| * of stemmed words, highlightWords is the list of normal, unstemmed | ||
| * words. the first one is used to find the occurrence, the | ||
| * latter for highlighting it. | ||
| */ | ||
| makeSearchSummary: (htmlText, keywords, highlightWords) => { | ||
| const text = Search.htmlToText(htmlText).toLowerCase(); | ||
| if (text === "") return null; | ||
| const actualStartPosition = [...keywords] | ||
| .map((k) => text.indexOf(k.toLowerCase())) | ||
| .filter((i) => i > -1) | ||
| .slice(-1)[0]; | ||
| const startWithContext = Math.max(actualStartPosition - 120, 0); | ||
| const top = startWithContext === 0 ? "" : "..."; | ||
| const tail = startWithContext + 240 < text.length ? "..." : ""; | ||
| let summary = document.createElement("div"); | ||
| summary.classList.add("context"); | ||
| summary.innerText = top + text.substr(startWithContext, 240).trim() + tail; | ||
| highlightWords.forEach((highlightWord) => | ||
| _highlightText(summary, highlightWord, "highlighted") | ||
| ); | ||
| return summary; | ||
| }, | ||
| }; | ||
| _ready(Search.init); |
Sorry, the diff of this file is too big to display
| !function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ | ||
| // Underscore.js 1.13.1 | ||
| // https://underscorejs.org | ||
| // (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors | ||
| // Underscore may be freely distributed under the MIT license. | ||
| var n="1.13.1",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}function x(n){var r="[object "+n+"]";return function(n){return a.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k&&(T=function(n){return"function"==typeof n||!1});var D=T,R=x("Object"),F=l&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x("Array");function W(n,r){return null!=n&&f.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return("function"===o||"object"===o||"object"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return u.valueOf.call(r)===u.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,o)}var f="[object Array]"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if("object"!=typeof r||"object"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&"constructor"in r&&"constructor"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn="forEach",ln="has",sn=["clear","delete"],pn=["get",ln,"set"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=["add"].concat(sn,cn,ln),dn=V?fn(vn):x("Map"),gn=V?fn(hn):x("WeakMap"),bn=V?fn(yn):x("Set"),mn=x("WeakSet");function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Object(t)),e<2||null==t)return t;for(var u=1;u<e;u++)for(var o=arguments[u],i=n(o),a=i.length,f=0;f<a;f++){var c=i[f];r&&void 0!==t[c]||(t[c]=o[c])}return t}}var xn=An(an),Sn=An(nn),On=An(an,!0);function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.prototype=n;var t=new r;return r.prototype=null,t}function En(n){return _(n)?U(n)?n.slice():xn({},n):n}function Bn(n){return U(n)?n:[n]}function Nn(n){return tn.toPath(n)}function In(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function Tn(n,r,t){var e=In(n,Nn(r));return w(e)?t:e}function kn(n){return n}function Dn(n){return n=Sn({},n),function(r){return rn(r,n)}}function Rn(n){return n=Nn(n),function(r){return In(r,n)}}function Fn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:return function(t){return n.call(r,t)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return function(){return n.apply(r,arguments)}}function Vn(n,r,t){return null==n?kn:D(n)?Fn(n,r,t):_(n)&&!U(n)?Dn(n):Rn(n)}function Pn(n,r){return Vn(n,r,1/0)}function qn(n,r,t){return tn.iteratee!==Pn?tn.iteratee(n,r):Vn(n,r,t)}function Un(){}function Wn(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=Bn,tn.iteratee=Pn;var zn=Date.now||function(){return(new Date).getTime()};function Ln(n){var r=function(r){return n[r]},t="(?:"+nn(n).join("|")+")",e=RegExp(t),u=RegExp(t,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,r):n}}var $n={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=/^\s*(\w|\$)+\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a<o;a++)i[a]=r[a]===t?arguments[u++]:r[a];for(;u<arguments.length;)i.push(arguments[u++]);return nr(n,e,this,this,i)};return e}));rr.placeholder=tn;var tr=j((function(n,r,t){if(!D(n))throw new TypeError("Bind must be called on a function");var e=j((function(u){return nr(n,e,r,this,t.concat(u))}));return e})),er=K(Y);function ur(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,o=0,i=Y(n);o<i;o++){var a=n[o];if(er(a)&&(U(a)||L(a)))if(r>1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else t||(e[u++]=a)}return e}var or=j((function(n,r){var t=(r=ur(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=tr(n[e],n)}return n}));var ir=j((function(n,r,t){return setTimeout((function(){return n.apply(null,t)}),r)})),ar=rr(ir,tn,1);function fr(n){return function(){return!n.apply(this,arguments)}}function cr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function pr(n){return function(r,t,e){t=qn(t,e);for(var u=Y(r),o=n>0?0:u-1;o>=0&&o<u;o+=n)if(t(r[o],o,r))return o;return-1}}var vr=pr(1),hr=pr(-1);function yr(n,r,t,e){for(var u=(t=qn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function dr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if("number"==typeof o)n>0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o<f;o+=n)if(e[o]===u)return o;return-1}}var gr=dr(1,vr,yr),br=dr(-1,hr);function mr(n,r,t){var e=(er(n)?vr:sr)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function jr(n,r,t){var e,u;if(r=Fn(r,t),er(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=nn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function _r(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function wr(n){var r=function(r,t,e,u){var o=!er(r)&&nn(r),i=(o||r).length,a=n>0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a<i;a+=n){var f=o?o[a]:a;e=t(e,r[f],f,r)}return e};return function(n,t,e,u){var o=arguments.length>=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function Mr(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function Er(n,r,t,e){return er(n)||(n=jn(n)),("number"!=typeof t||e)&&(t=0),gr(n,r,t)>=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e>o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=Wn(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function kr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=qn(e,u),jr(t,(function(r,u){var i=e(r,u,t);n(o,r,i)})),o}}var Dr=kr((function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]})),Rr=kr((function(n,r,t){n[t]=r})),Fr=kr((function(n,r,t){W(n,t)?n[t]++:n[t]=1})),Vr=kr((function(n,r,t){n[t?0:1].push(r)}),!0),Pr=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function qr(n,r,t){return r in t}var Ur=j((function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(r.length>1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t})),Wr=j((function(n,r){var t,e=r[0];return D(e)?(e=fr(e),r.length>1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?Er(o,c)||(o.push(c),u.push(f)):Er(u,f)||u.push(f)}return u}var Gr=j((function(n){return Jr(ur(n,!0,!0))}));function Hr(n){for(var r=n&&Ir(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Nr(n,e);return t}var Qr=j(Hr);function Xr(n,r){return n._chain?tn(r).chain():r}function Yr(n){return jr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototype[r]=function(){var n=[this._wrapped];return o.apply(n,arguments),Xr(this,t.apply(tn,n))}})),tn}jr(["pop","push","reverse","shift","sort","splice","unshift"],(function(n){var r=t[n];tn.prototype[n]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),"shift"!==n&&"splice"!==n||0!==t.length||delete t[0]),Xr(this,t)}})),jr(["concat","join","slice"],(function(n){var r=t[n];tn.prototype[n]=function(){var n=this._wrapped;return null!=n&&(n=r.apply(n,arguments)),Xr(this,n)}}));var Zr=Yr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return"number"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:dn,isWeakMap:gn,isSet:bn,isWeakSet:mn,keys:nn,allKeys:an,values:jn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:_n,functions:wn,methods:wn,extend:xn,extendOwn:Sn,assign:Sn,defaults:On,create:function(n,r){var t=Mn(n);return r&&Sn(t,r),t},clone:En,tap:function(n,r){return r(n),n},get:Tn,has:function(n,r){for(var t=(r=Nn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=qn(r,t);for(var e=nn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},identity:kn,constant:C,noop:Un,toPath:Bn,property:Rn,propertyOf:function(n){return null==n?Un:function(r){return Tn(n,r)}},matcher:Dn,matches:Dn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Fn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Wn,now:zn,escape:Cn,unescape:Kn,templateSettings:Jn,template:function(n,r,t){!r&&t&&(r=t),r=On({},r,tn.templateSettings);var e=RegExp([(r.escape||Gn).source,(r.interpolate||Gn).source,(r.evaluate||Gn).source].join("|")+"|$","g"),u=0,o="__p+='";n.replace(e,(function(r,t,e,i,a){return o+=n.slice(u,a).replace(Qn,Xn),u=a+r.length,t?o+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?o+="'+\n((__t=("+e+"))==null?'':__t)+\n'":i&&(o+="';\n"+i+"\n__p+='"),r})),o+="';\n";var i,a=r.variable;if(a){if(!Yn.test(a))throw new Error("variable is not a bare identifier: "+a)}else o="with(obj||{}){\n"+o+"}\n",a="obj";o="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{i=new Function(a,"_",o)}catch(n){throw n.source=o,n}var f=function(n){return i.call(this,n,tn)};return f.source="function("+a+"){\n"+o+"}",f},result:function(n,r,t){var e=(r=Nn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=D(o)?o.call(n):o}return n},uniqueId:function(n){var r=++Zn+"";return n?n+r:r},chain:function(n){var r=tn(n);return r._chain=!0,r},iteratee:Pn,partial:rr,bind:tr,bindAll:or,memoize:function(n,r){var t=function(e){var u=t.cache,o=""+(r?r.apply(this,arguments):e);return W(u,o)||(u[o]=n.apply(this,arguments)),u[o]};return t.cache={},t},delay:ir,defer:ar,throttle:function(n,r,t){var e,u,o,i,a=0;t||(t={});var f=function(){a=!1===t.leading?0:zn(),e=null,i=n.apply(u,o),e||(u=o=null)},c=function(){var c=zn();a||!1!==t.leading||(a=c);var l=r-(c-a);return u=this,o=arguments,l<=0||l>r?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e<o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))<i||u===1/0&&o===1/0)&&(o=n,i=u)}));return o},shuffle:function(n){return Tr(n,1/0)},sample:Tr,sortBy:function(n,r,t){var e=0;return r=qn(r,t),Nr(_r(n,(function(n,t,u){return{value:n,index:e++,criteria:r(n,t,u)}})).sort((function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(t>e||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index})),"value")},groupBy:Dr,indexBy:Rr,countBy:Fr,partition:Vr,toArray:function(n){return n?U(n)?i.call(n):S(n)?n.match(Pr):er(n)?_r(n,kn):jn(n):[]},size:function(n){return null==n?0:er(n)?n.length:nn(n).length},pick:Ur,omit:Wr,first:Lr,head:Lr,take:Lr,initial:zr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:$r(n,Math.max(0,n.length-r))},rest:$r,tail:$r,drop:$r,compact:function(n){return Sr(n,Boolean)},flatten:function(n,r){return ur(n,r,!1)},without:Kr,uniq:Jr,unique:Jr,union:Gr,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var o=n[e];if(!Er(r,o)){var i;for(i=1;i<t&&Er(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:Cr,unzip:Hr,transpose:Hr,zip:Qr,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(i.call(n,e,e+=r));return t},mixin:Yr,default:tn});return Zr._=Zr,Zr})); |
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>API Documentation — spAudio documentation</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
| <link rel="search" title="Search" href="search.html" /> | ||
| <link rel="next" title="spaudio module" href="spaudio.html" /> | ||
| <link rel="prev" title="Introduction" href="main.html" /> | ||
| </head> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
| <input type="hidden" name="area" value="default" /> | ||
| </form> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul class="current"> | ||
| <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1 current"><a class="current reference internal" href="#">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| </nav> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>API Documentation</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
| </div> | ||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
| <div itemprop="articleBody"> | ||
| <section id="api-documentation"> | ||
| <h1>API Documentation<a class="headerlink" href="#api-documentation" title="Permalink to this heading">¶</a></h1> | ||
| <div class="toctree-wrapper compound"> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l1"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="spaudio.html" class="btn btn-neutral float-right" title="spaudio module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| <a href="main.html" class="btn btn-neutral float-left" title="Introduction" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> | ||
| </div> | ||
| <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2022-07-24 11:53:26 PM. | ||
| </span> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </body> | ||
| </html> |
Sorry, the diff of this file is too big to display
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Index — spAudio documentation</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="index" title="Index" href="#" /> | ||
| <link rel="search" title="Search" href="search.html" /> | ||
| </head> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
| <input type="hidden" name="area" value="default" /> | ||
| </form> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="apidoc.html">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| </nav> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Index</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
| </div> | ||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
| <div itemprop="articleBody"> | ||
| <h1 id="index">Index</h1> | ||
| <div class="genindex-jumpbox"> | ||
| <a href="#A"><strong>A</strong></a> | ||
| | <a href="#B"><strong>B</strong></a> | ||
| | <a href="#C"><strong>C</strong></a> | ||
| | <a href="#D"><strong>D</strong></a> | ||
| | <a href="#E"><strong>E</strong></a> | ||
| | <a href="#F"><strong>F</strong></a> | ||
| | <a href="#G"><strong>G</strong></a> | ||
| | <a href="#M"><strong>M</strong></a> | ||
| | <a href="#N"><strong>N</strong></a> | ||
| | <a href="#O"><strong>O</strong></a> | ||
| | <a href="#R"><strong>R</strong></a> | ||
| | <a href="#S"><strong>S</strong></a> | ||
| | <a href="#T"><strong>T</strong></a> | ||
| | <a href="#W"><strong>W</strong></a> | ||
| </div> | ||
| <h2 id="A">A</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.appendsonginfo">appendsonginfo() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.audioread">audioread() (in module spplugin)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.audiowrite">audiowrite() (in module spplugin)</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="B">B</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.BogusFileError">BogusFileError</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="C">C</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.callbacksignature">callbacksignature() (in module spaudio)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.close">close() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.close">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.copyarray2raw">copyarray2raw() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.copyraw2array">copyraw2array() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.createarray">createarray() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.createarray">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.createndarray">createndarray() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.createndarray">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.createrawarray">createrawarray() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.createrawarray">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.createrawndarray">createrawndarray() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.createrawndarray">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="D">D</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.DeviceError">DeviceError</a> | ||
| </li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.DriverError">DriverError</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="E">E</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.Error">Error</a>, <a href="spplugin.html#spplugin.Error">[1]</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="F">F</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.FileError">FileError</a> | ||
| </li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.FileTypeError">FileTypeError</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="G">G</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getarraytypecode">getarraytypecode() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getarraytypecode">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getblockingmode">getblockingmode() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getbuffersize">getbuffersize() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getcompname">getcompname() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getcompname">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getcomptype">getcomptype() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getcomptype">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getdevicelist">getdevicelist() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getdevicename">getdevicename() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.getdriverdevicename">getdriverdevicename() (in module spaudio)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.getdriverlist">getdriverlist() (in module spaudio)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.getdrivername">getdrivername() (in module spaudio)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getfiledesc">getfiledesc() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getfilefilter">getfilefilter() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getfiletype">getfiletype() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getframerate">getframerate() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getframerate">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getmark">getmark() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getmarkers">getmarkers() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getnbuffers">getnbuffers() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getnchannels">getnchannels() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getnchannels">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getndarraydtype">getndarraydtype() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getndarraydtype">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getndevices">getndevices() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.getndriverdevices">getndriverdevices() (in module spaudio)</a> | ||
| </li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.getndrivers">getndrivers() (in module spaudio)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getnframes">getnframes() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getparams">getparams() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getparams">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getparamstuple">getparamstuple() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getparamstuple">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.getplugindesc">getplugindesc() (in module spplugin)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getplugindesc">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getpluginid">getpluginid() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.getplugininfo">getplugininfo() (in module spplugin)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getplugininfo">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getpluginname">getpluginname() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getpluginversion">getpluginversion() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getrawarraytypecode">getrawarraytypecode() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getrawarraytypecode">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getrawndarraydtype">getrawndarraydtype() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getrawndarraydtype">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getrawsampbit">getrawsampbit() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getrawsampbit">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getrawsampwidth">getrawsampwidth() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getrawsampwidth">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getsampbit">getsampbit() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getsampbit">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getsamprate">getsamprate() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getsamprate">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.getsampwidth">getsampwidth() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getsampwidth">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.getsonginfo">getsonginfo() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="M">M</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li> | ||
| module | ||
| <ul> | ||
| <li><a href="spaudio.html#module-spaudio">spaudio</a> | ||
| </li> | ||
| <li><a href="spplugin.html#module-spplugin">spplugin</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="N">N</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.NChannelsError">NChannelsError</a> | ||
| </li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.NFramesRequiredError">NFramesRequiredError</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="O">O</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.open">open() (in module spaudio)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.open">(in module spplugin)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.open">(spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.open">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="R">R</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.read">read() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.read">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.readframes">readframes() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.readframes">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.readraw">readraw() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.readraw">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.readrawframes">readrawframes() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.readrawframes">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.reload">reload() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.rewind">rewind() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="S">S</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.SampleBitError">SampleBitError</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SampleRateError">SampleRateError</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.selectdevice">selectdevice() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setblockingmode">setblockingmode() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setbuffersize">setbuffersize() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setcallback">setcallback() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setcomptype">setcomptype() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setcomptype">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setfiletype">setfiletype() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setframerate">setframerate() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setframerate">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setmark">setmark() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setnbuffers">setnbuffers() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setnchannels">setnchannels() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setnchannels">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setnframes">setnframes() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setparams">setparams() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setparams">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setpos">setpos() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setsampbit">setsampbit() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setsampbit">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setsamprate">setsamprate() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setsamprate">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setsampwidth">setsampwidth() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setsampwidth">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setsonginfo">setsonginfo() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| <li> | ||
| spaudio | ||
| <ul> | ||
| <li><a href="spaudio.html#module-spaudio">module</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio">SpAudio (class in spaudio)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin">SpFilePlugin (class in spplugin)</a> | ||
| </li> | ||
| <li> | ||
| spplugin | ||
| <ul> | ||
| <li><a href="spplugin.html#module-spplugin">module</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.stop">stop() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SuitableNotFoundError">SuitableNotFoundError</a> | ||
| </li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.sync">sync() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="T">T</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.tell">tell() (spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.terminate">terminate() (spaudio.SpAudio method)</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="W">W</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.write">write() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.write">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.writeframes">writeframes() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.writeframes">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.writeraw">writeraw() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.writeraw">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.writerawframes">writerawframes() (spaudio.SpAudio method)</a> | ||
| <ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.writerawframes">(spplugin.SpFilePlugin method)</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spplugin.html#spplugin.WrongPluginError">WrongPluginError</a> | ||
| </li> | ||
| </ul></td> | ||
| </tr></table> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2022-07-24 11:53:26 PM. | ||
| </span> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </body> | ||
| </html> |
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>spAudio for Python — spAudio documentation</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
| <link rel="search" title="Search" href="search.html" /> | ||
| <link rel="next" title="Introduction" href="main.html" /> | ||
| </head> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="#" class="icon icon-home"> spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
| <input type="hidden" name="area" value="default" /> | ||
| </form> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="apidoc.html">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| </nav> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="#">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="#">Docs</a> »</li> | ||
| <li>spAudio for Python</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
| </div> | ||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
| <div itemprop="articleBody"> | ||
| <section id="spaudio-for-python"> | ||
| <h1>spAudio for Python<a class="headerlink" href="#spaudio-for-python" title="Permalink to this heading">¶</a></h1> | ||
| <p>A python package for audio I/O based on <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spAudio</a>.</p> | ||
| <div class="toctree-wrapper compound"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="apidoc.html">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </section> | ||
| <section id="indices-and-tables"> | ||
| <h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this heading">¶</a></h1> | ||
| <ul class="simple"> | ||
| <li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li> | ||
| <li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li> | ||
| </ul> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="main.html" class="btn btn-neutral float-right" title="Introduction" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| </div> | ||
| <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2022-07-24 11:53:26 PM. | ||
| </span> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </body> | ||
| </html> |
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Introduction — spAudio documentation</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
| <link rel="search" title="Search" href="search.html" /> | ||
| <link rel="next" title="API Documentation" href="apidoc.html" /> | ||
| <link rel="prev" title="spAudio for Python" href="index.html" /> | ||
| </head> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
| <input type="hidden" name="area" value="default" /> | ||
| </form> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul class="current"> | ||
| <li class="toctree-l1 current"><a class="current reference internal" href="#">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="apidoc.html">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| </nav> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Introduction</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
| </div> | ||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
| <div itemprop="articleBody"> | ||
| <section id="introduction"> | ||
| <h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this heading">¶</a></h1> | ||
| <p>This package is the Python version of <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spAudio library</a> | ||
| providing <a class="reference internal" href="spaudio.html"><span class="doc">spaudio</span></a> module which enables fullduplex audio device I/O and | ||
| <a class="reference internal" href="spplugin.html"><span class="doc">spplugin</span></a> module which enables plugin-based file I/O | ||
| supporting many sound formats including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| The spplugin module also supports 24/32-bit sample size used in high-resolution audio files, so | ||
| you can easily load data with 24/32-bit sample size into <a class="reference external" href="http://www.numpy.org/">NumPy</a>’s ndarray.</p> | ||
| <section id="installation"> | ||
| <h2>Installation<a class="headerlink" href="#installation" title="Permalink to this heading">¶</a></h2> | ||
| <p>You can use <code class="docutils literal notranslate"><span class="pre">pip</span></code> command to install the binary package:</p> | ||
| <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">spaudio</span> | ||
| </pre></div> | ||
| </div> | ||
| <p>If you use <a class="reference external" href="https://www.anaconda.com/distribution/">Anaconda</a> | ||
| or <a class="reference external" href="https://docs.conda.io/en/latest/miniconda.html">Miniconda</a> , | ||
| <code class="docutils literal notranslate"><span class="pre">conda</span></code> command with “bannohideki” channel can be used:</p> | ||
| <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">bannohideki</span> <span class="n">spaudio</span> | ||
| </pre></div> | ||
| </div> | ||
| <p><a class="reference external" href="http://www.numpy.org/">NumPy</a> package is needed only if you want to | ||
| use NumPy arrays. If you don’t use NumPy arrays, no external package is required. | ||
| Note that this package doesn’t support Python 2.</p> | ||
| <p>The linux version also requires <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spPlugin</a> | ||
| installation (audio device I/O requires the pulsesimple plugin | ||
| based on <a class="reference external" href="https://www.freedesktop.org/wiki/Software/PulseAudio/">PulseAudio</a> ). | ||
| You can install it by using <code class="docutils literal notranslate"><span class="pre">dpkg</span></code> (Ubuntu) or <code class="docutils literal notranslate"><span class="pre">rpm</span></code> (CentOS) command with one of the following | ||
| packages.</p> | ||
| <ul class="simple"> | ||
| <li><p>Ubuntu 20</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.5-5_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 18</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 16</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 14</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>CentOS 7</p> | ||
| <ul> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>CentOS 6</p> | ||
| <ul> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm</a></p></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| <p>If you want to use <code class="docutils literal notranslate"><span class="pre">apt</span></code> (Ubuntu) or <code class="docutils literal notranslate"><span class="pre">yum</span></code> (CentOS), | ||
| see <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg">this page (for Ubuntu)</a> | ||
| or <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum">this page (for CentOS)</a> .</p> | ||
| </section> | ||
| <section id="change-log"> | ||
| <h2>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading">¶</a></h2> | ||
| <ul class="simple"> | ||
| <li><p>Version 0.7.16</p> | ||
| <ul> | ||
| <li><p>Added high-level functions of audioread and audiowrite to spplugin module.</p></li> | ||
| <li><p>Added functions of readframes/readrawframes and writeframes/writerawframes | ||
| to spaudio module and spplugin module.</p></li> | ||
| <li><p>Changed some specification of spplugin.</p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Version 0.7.15</p> | ||
| <ul> | ||
| <li><p>Added spaudio.open function to spaudio module.</p></li> | ||
| <li><p>Added support for open call of spaudio module with keyword arguments.</p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Version 0.7.14</p> | ||
| <ul> | ||
| <li><p>Added <a class="reference internal" href="spplugin.html"><span class="doc">spplugin</span></a> module which enables plugin-based audio file I/O.</p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Version 0.7.13</p> | ||
| <ul> | ||
| <li><p>Initial public release.</p></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </section> | ||
| <section id="build"> | ||
| <h2>Build<a class="headerlink" href="#build" title="Permalink to this heading">¶</a></h2> | ||
| <p>To build this package, the following are required.</p> | ||
| <ul class="simple"> | ||
| <li><p><a class="reference external" href="http://www.swig.org/">SWIG</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spBase and spAudio</a></p></li> | ||
| </ul> | ||
| </section> | ||
| <section id="official-site"> | ||
| <h2>Official Site<a class="headerlink" href="#official-site" title="Permalink to this heading">¶</a></h2> | ||
| <p>The official web site is: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html">https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html</a></p> | ||
| <p>Japanese web site is also available: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html">https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html</a></p> | ||
| </section> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="apidoc.html" class="btn btn-neutral float-right" title="API Documentation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| <a href="index.html" class="btn btn-neutral float-left" title="spAudio for Python" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> | ||
| </div> | ||
| <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2022-07-24 11:53:26 PM. | ||
| </span> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </body> | ||
| </html> |
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>spAudio — spAudio documentation</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
| <link rel="search" title="Search" href="search.html" /> | ||
| </head> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
| <input type="hidden" name="area" value="default" /> | ||
| </form> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="apidoc.html">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| </nav> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>spAudio</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
| </div> | ||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
| <div itemprop="articleBody"> | ||
| <section id="spaudio"> | ||
| <h1>spAudio<a class="headerlink" href="#spaudio" title="Permalink to this heading">¶</a></h1> | ||
| <div class="toctree-wrapper compound"> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l1"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2022-07-24 11:53:26 PM. | ||
| </span> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </body> | ||
| </html> |
Sorry, the diff of this file is not supported yet
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Python Module Index — spAudio documentation</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
| <link rel="search" title="Search" href="search.html" /> | ||
| <script> | ||
| DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true; | ||
| </script> | ||
| </head> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
| <input type="hidden" name="area" value="default" /> | ||
| </form> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="apidoc.html">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| </nav> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Python Module Index</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
| </div> | ||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
| <div itemprop="articleBody"> | ||
| <h1>Python Module Index</h1> | ||
| <div class="modindex-jumpbox"> | ||
| <a href="#cap-s"><strong>s</strong></a> | ||
| </div> | ||
| <table class="indextable modindextable"> | ||
| <tr class="pcap"><td></td><td> </td><td></td></tr> | ||
| <tr class="cap" id="cap-s"><td></td><td> | ||
| <strong>s</strong></td><td></td></tr> | ||
| <tr> | ||
| <td></td> | ||
| <td> | ||
| <a href="spaudio.html#module-spaudio"><code class="xref">spaudio</code></a></td><td> | ||
| <em></em></td></tr> | ||
| <tr> | ||
| <td></td> | ||
| <td> | ||
| <a href="spplugin.html#module-spplugin"><code class="xref">spplugin</code></a></td><td> | ||
| <em></em></td></tr> | ||
| </table> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2022-07-24 11:53:26 PM. | ||
| </span> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </body> | ||
| </html> |
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Search — spAudio documentation</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/searchtools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
| <link rel="search" title="Search" href="#" /> | ||
| </head> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="#" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
| <input type="hidden" name="area" value="default" /> | ||
| </form> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
| <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#installation">Installation</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#change-log">Change Log</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#build">Build</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="main.html#official-site">Official Site</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="apidoc.html">API Documentation</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="spaudio.html">spaudio module</a></li> | ||
| <li class="toctree-l2"><a class="reference internal" href="spplugin.html">spplugin module</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spaudio"><span class="xref std std-doc">spaudio</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o">Fullduplex I/O</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#fullduplex-i-o-using-with-statement-version-0-7-15">Fullduplex I/O (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-python-array-version">Read and plot (Python array version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-raw-data-version">Read and plot (raw data version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">Read and plot (NumPy ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">Read and plot (NumPy raw ndarray version)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">Play a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-using-with-statement-version-0-7-15">Play a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback">Play a WAV file with callback</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file-with-callback-using-with-statement-version-0-7-15">Play a WAV file with callback (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file">Record to a WAV file</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#record-to-a-wav-file-using-with-statement-version-0-7-15">Record to a WAV file (using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-read-version-0-7-15">Block read (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-raw-file-contents-by-plugin">Play a raw file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-by-plugin-and-write-it">Read an audio file by plugin and write it</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-an-audio-file-and-write-it-by-plugin">Read an audio file and write it by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| </div> | ||
| </div> | ||
| </nav> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Search</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
| </div> | ||
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
| <div itemprop="articleBody"> | ||
| <noscript> | ||
| <div id="fallback" class="admonition warning"> | ||
| <p class="last"> | ||
| Please activate JavaScript to enable the search | ||
| functionality. | ||
| </p> | ||
| </div> | ||
| </noscript> | ||
| <div id="search-results"> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2022-07-24 11:53:26 PM. | ||
| </span> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| <script type="text/javascript"> | ||
| jQuery(function() { Search.loadIndex("searchindex.js"); }); | ||
| </script> | ||
| <script type="text/javascript" id="searchindexloader"></script> | ||
| </body> | ||
| </html> |
| Search.setIndex({"docnames": ["apidoc", "examples", "index", "main", "modules", "spaudio", "spplugin"], "filenames": ["apidoc.rst", "examples.rst", "index.rst", "main.rst", "modules.rst", "spaudio.rst", "spplugin.rst"], "titles": ["API Documentation", "Examples", "spAudio for Python", "Introduction", "spAudio", "spaudio module", "spplugin module"], "terms": {"spaudio": [0, 3, 6], "modul": [0, 2, 3, 4], "spplugin": [0, 2, 3, 4], "iotest": 1, "py": 1, "usr": 1, "bin": 1, "env": 1, "python3": 1, "code": [1, 5, 6], "utf": 1, "8": [1, 3, 6], "import": [1, 5, 6], "setnchannel": [1, 5, 6], "2": [1, 3, 5, 6], "setsampr": [1, 5, 6], "44100": [1, 5, 6], "setbuffers": [1, 5], "2048": [1, 5], "nloop": [1, 5], "500": [1, 5], "b": [1, 5, 6], "bytearrai": [1, 5, 6], "4096": [1, 5], "open": [1, 3, 5, 6], "r": [1, 5, 6], "w": [1, 5, 6], "rang": [1, 5, 6], "readraw": [1, 5, 6], "writeraw": [1, 5, 6], "close": [1, 5, 6], "iotestwith": 1, "requir": [1, 3, 5, 6], "rw": [1, 5], "nchannel": [1, 5, 6], "samprat": [1, 5, 6], "buffers": [1, 5], "readplot": 1, "matplotlib": [1, 6], "pyplot": [1, 6], "plt": [1, 6], "1": [1, 5, 6], "8000": 1, "ro": [1, 5, 6], "createarrai": [1, 5, 6], "16000": 1, "nread": [1, 6], "print": [1, 6], "d": [1, 6], "wo": [1, 5, 6], "nwrite": 1, "show": [1, 6], "readplotraw": 1, "createrawarrai": [1, 5, 6], "readndarrai": 1, "np": [1, 6], "y": [1, 6], "createndarrai": [1, 5, 6], "x": [1, 6], "linspac": [1, 6], "xlim": [1, 6], "xlabel": [1, 6], "time": [1, 6], "s": [1, 3, 6], "ylabel": [1, 6], "amplitud": [1, 6], "normal": [1, 6], "readndarray2": 1, "channelwis": [1, 5, 6], "true": [1, 5, 6], "len": [1, 6], "getnchannel": [1, 5, 6], "readrawndarrai": 1, "createrawndarrai": [1, 5, 6], "playfromwav": 1, "os": [1, 6], "sy": [1, 6], "wave": [1, 5, 6], "def": [1, 6], "filenam": [1, 6], "rb": 1, "wf": 1, "getframer": [1, 5, 6], "sampwidth": [1, 5, 6], "getsampwidth": [1, 5, 6], "nframe": [1, 5, 6], "getnfram": [1, 6], "setsampwidth": [1, 5, 6], "__name__": [1, 6], "__main__": [1, 6], "argv": [1, 6], "usag": [1, 6], "path": [1, 6], "basenam": [1, 6], "stderr": [1, 6], "quit": [1, 6], "playfromwav2": 1, "paramstupl": 1, "getparam": [1, 5, 6], "framer": [1, 5, 6], "param": [1, 5, 6], "playfromwavcb": 1, "myaudiocb": 1, "cbtype": 1, "cbdata": [1, 5], "arg": [1, 5], "output_position_callback": [1, 5], "posit": [1, 5, 6], "position_": 1, "float": [1, 5, 6], "total_": 1, "stdout": 1, "3f": 1, "elif": 1, "output_buffer_callback": [1, 5], "buf": 1, "buffer": [1, 5], "type": [1, 5, 6], "size": [1, 3, 5, 6], "return": [1, 5, 6], "1024": 1, "setcallback": [1, 5], "playfromwavcb2": 1, "rectowav": 1, "argpars": 1, "durat": [1, 6], "wb": 1, "round": [1, 6], "setframer": [1, 5, 6], "setnfram": [1, 6], "output": [1, 5, 6], "parser": 1, "argumentpars": 1, "descript": [1, 6], "add_argu": 1, "help": 1, "name": [1, 5, 6], "f": 1, "int": [1, 5, 6], "default": [1, 5, 6], "sampl": [1, 3, 5, 6], "rate": [1, 5, 6], "hz": 1, "c": [1, 3], "number": [1, 5, 6], "channel": [1, 3, 5, 6], "width": 1, "byte": [1, 5, 6], "parse_arg": 1, "rectowav2": 1, "sampbit": [1, 5, 6], "getparamstupl": [1, 5, 6], "setparam": [1, 5, 6], "blockread": 1, "blocklen": 1, "8192": 1, "88200": 1, "ceil": 1, "offset": [1, 5, 6], "length": [1, 5, 6], "blockwrit": 1, "rwframesexampl": 1, "arraytyp": [1, 5, 6], "nwframe": [1, 6], "frame": [1, 5, 6], "audioreadexampl": [1, 6], "str": [1, 5, 6], "n": [1, 6], "audiowriteexampl": [1, 6], "getsampr": [1, 5, 6], "audiorwexampl": 1, "ifilenam": 1, "ofilenam": 1, "fals": [1, 5, 6], "els": 1, "data2": 1, "samprate2": 1, "params2": 1, "reload": [1, 5], "plotfilebyplugin": [1, 6], "pf": [1, 6], "input": [1, 6], "getpluginid": [1, 6], "getplugindesc": [1, 6], "getpluginvers": [1, 6], "getsampbit": [1, 5, 6], "2f": 1, "In": [1, 5, 6], "resiz": [1, 5, 6], "can": [1, 3, 5, 6], "omit": 1, "playfilebyplugin": 1, "filetyp": [1, 6], "getfiletyp": [1, 6], "filedesc": 1, "getfiledesc": [1, 6], "filefilt": 1, "getfilefilt": [1, 6], "songinfo": [1, 6], "getsonginfo": [1, 6], "playrawbyplugin": 1, "pluginnam": [1, 6], "input_raw": [1, 6], "includ": [1, 3, 5, 6], "bit": [1, 3, 5, 6], "t": [1, 3, 5], "string": [1, 5, 6], "writefrombyplugin": 1, "aifc": [1, 5, 6], "sunau": [1, 5, 6], "inputfil": 1, "outputfil": 1, "_": 1, "ofileext": 1, "splitext": 1, "sndlib": 1, "decodebyt": [1, 5, 6], "obigendian_or_signed8bit": 1, "au": 1, "aif": 1, "aiff": [1, 3, 6], "afc": 1, "rais": [1, 5, 6], "runtimeerror": 1, "format": [1, 3, 6], "support": [1, 3, 5, 6], "sf": 1, "copyarray2raw": [1, 6], "bigendian_or_signed8bit": [1, 6], "writetobyplugin": 1, "ifileext": 1, "ibigendian_or_signed8bit": 1, "comptyp": [1, 5, 6], "compnam": [1, 5, 6], "copyraw2arrai": [1, 6], "convbyplugin": 1, "A": [2, 5, 6], "packag": [2, 3], "audio": [2, 3, 5, 6], "i": [2, 3, 5, 6], "o": [2, 3, 5, 6], "base": [2, 3, 5, 6], "introduct": 2, "instal": 2, "chang": 2, "log": 2, "build": 2, "offici": 2, "site": 2, "api": 2, "document": [2, 5], "exampl": 2, "fullduplex": [2, 3, 5], "us": [2, 3, 5, 6], "statement": [2, 5, 6], "version": [2, 3, 5, 6], "0": [2, 3, 5, 6], "7": [2, 3, 5, 6], "15": [2, 3, 5, 6], "read": [2, 5, 6], "plot": [2, 6], "arrai": [2, 3, 5, 6], "raw": [2, 3, 5, 6], "data": [2, 3, 5, 6], "numpi": [2, 3, 5, 6], "ndarrai": [2, 3, 5, 6], "16": [2, 3, 5, 6], "plai": 2, "wav": [2, 3, 6], "file": [2, 3, 5, 6], "callback": [2, 5], "record": 2, "block": [2, 5], "write": [2, 5, 6], "an": [2, 5, 6], "readfram": [2, 3, 5, 6], "writefram": [2, 3, 5, 6], "audioread": [2, 3, 6], "audiowrit": [2, 3, 6], "plugin": [2, 3, 6], "convert": [2, 6], "index": [2, 3, 5], "thi": [3, 5, 6], "python": [3, 5, 6], "librari": [3, 5, 6], "provid": [3, 6], "which": [3, 5, 6], "enabl": 3, "devic": [3, 5], "mani": 3, "sound": [3, 6], "mp3": [3, 6], "ogg": [3, 6], "vorbi": [3, 6], "flac": [3, 6], "alac": [3, 6], "more": [3, 6], "The": [3, 5, 6], "also": [3, 5, 6], "24": 3, "32": [3, 6], "high": [3, 6], "resolut": 3, "so": 3, "you": [3, 5, 6], "easili": 3, "load": 3, "pip": 3, "command": 3, "binari": 3, "If": [3, 5, 6], "anaconda": 3, "miniconda": 3, "conda": 3, "bannohideki": 3, "need": 3, "onli": [3, 5, 6], "want": [3, 5, 6], "don": [3, 5], "extern": 3, "note": [3, 5, 6], "doesn": 3, "linux": 3, "pulsesimpl": 3, "pulseaudio": 3, "dpkg": 3, "ubuntu": 3, "rpm": 3, "cento": 3, "one": [3, 6], "follow": [3, 5, 6], "20": 3, "amd64": 3, "http": 3, "www": 3, "ie": 3, "meijo": 3, "u": 3, "ac": 3, "jp": 3, "lab": 3, "rj001": 3, "archiv": 3, "deb": 3, "ubuntu20": 3, "spplugin_0": 3, "5": 3, "5_amd64": 3, "18": 3, "ubuntu18": 3, "i386": 3, "5_i386": 3, "ubuntu16": 3, "14": 3, "ubuntu14": 3, "el7": 3, "x86_64": 3, "6": 3, "el6": 3, "apt": 3, "yum": 3, "see": 3, "page": 3, "ad": [3, 5], "level": [3, 6], "function": [3, 5, 6], "readrawfram": [3, 5, 6], "writerawfram": [3, 5, 6], "some": [3, 5, 6], "specif": 3, "call": [3, 6], "keyword": [3, 5, 6], "argument": [3, 5, 6], "13": 3, "initi": [3, 5], "public": 3, "releas": 3, "To": 3, "ar": [3, 5, 6], "swig": 3, "spbase": 3, "web": 3, "splib": 3, "en": 3, "html": 3, "japanes": 3, "avail": 3, "ja": 3, "realiz": 5, "except": [5, 6], "deviceerror": 5, "sourc": [5, 6], "error": [5, 6], "problem": [5, 6], "drivererror": 5, "driver": 5, "class": [5, 6], "drivernam": 5, "none": [5, 6], "object": [5, 6], "paramet": [5, 6], "current": [5, 6], "nframesflag": [5, 6], "creat": [5, 6], "doubl": [5, 6], "precis": [5, 6], "set": [5, 6], "ident": [5, 6], "specifi": [5, 6], "second": [5, 6], "must": [5, 6], "bool": [5, 6], "option": [5, 6], "make": [5, 6], "first": [5, 6], "treat": [5, 6], "matrix": [5, 6], "introduc": [5, 6], "getarraytypecod": [5, 6], "get": [5, 6], "store": [5, 6], "char": [5, 6], "getblockingmod": 5, "mode": [5, 6], "nonblock": 5, "getbuffers": 5, "getcompnam": [5, 6], "human": [5, 6], "readabl": [5, 6], "compress": [5, 6], "getcomptyp": [5, 6], "getdevicelist": 5, "list": 5, "getdevicenam": 5, "deviceindex": 5, "getnbuff": 5, "getndarraydtyp": [5, 6], "dtype": [5, 6], "getndevic": 5, "all": [5, 6], "dict": [5, 6], "whose": [5, 6], "kei": [5, 6], "blockingmod": 5, "nbuffer": 5, "namedtupl": [5, 6], "decod": [5, 6], "standard": [5, 6], "expect": [5, 6], "while": [5, 6], "otherwis": [5, 6], "4th": 5, "element": [5, 6], "tupl": [5, 6], "entri": [5, 6], "compat": [5, 6], "getrawarraytypecod": [5, 6], "getrawndarraydtyp": [5, 6], "getrawsampbit": [5, 6], "getrawsampwidth": [5, 6], "33": [5, 6], "mean": [5, 6], "32bit": [5, 6], "although": 5, "valid": [5, 6], "environ": 5, "reciev": 5, "benefit": 5, "process": 5, "becom": 5, "faster": 5, "contain": [5, 6], "method": [5, 6], "ani": 5, "abov": [5, 6], "from": [5, 6], "wa": [5, 6], "weight": [5, 6], "receiv": [5, 6], "factor": [5, 6], "multipli": [5, 6], "after": [5, 6], "locat": [5, 6], "success": [5, 6], "were": [5, 6], "next": [5, 6], "valu": [5, 6], "case": [5, 6], "new": [5, 6], "selectdevic": 5, "select": 5, "ha": [5, 6], "associ": [5, 6], "valueerror": 5, "greater": 5, "than": 5, "equal": 5, "cannot": [5, 6], "setblockingmod": 5, "calltyp": 5, "func": 5, "combin": 5, "callabl": 5, "have": 5, "signatur": 5, "callbacksignatur": 5, "variabl": 5, "setcomptyp": [5, 6], "encodestr": [5, 6], "ignor": [5, 6], "setnbuff": 5, "describ": [5, 6], "gener": [5, 6], "accept": [5, 6], "setsampbit": [5, 6], "floatflag": [5, 6], "stop": 5, "sync": 5, "synchron": 5, "termin": 5, "send": [5, 6], "befor": [5, 6], "written": [5, 6], "instanc": [5, 6], "depend": 5, "doe": [5, 6], "prefix": 5, "fire": 5, "anymor": 5, "getdriverdevicenam": 5, "getdriverlist": 5, "getdrivernam": 5, "getndriverdevic": 5, "getndriv": 5, "mai": [5, 6], "sever": 6, "waveform": 6, "anoth": 6, "similar": 6, "matlab": 6, "bogusfileerror": 6, "bogu": 6, "fileerror": 6, "filetypeerror": 6, "nchannelserror": 6, "nframesrequirederror": 6, "total": 6, "samplebiterror": 6, "samplerateerror": 6, "spfileplugin": 6, "differ": 6, "appendsonginfo": 6, "append": 6, "song": 6, "inform": 6, "intern": 6, "inarrai": 6, "copi": 6, "content": 6, "endian": 6, "big": 6, "sign": 6, "rawdata": 6, "For": 6, "microsoft": 6, "pcm": 6, "filter": 6, "e": 6, "g": 6, "getmark": 6, "id": 6, "noth": 6, "obtain": 6, "short": 6, "getplugininfo": 6, "detail": 6, "getpluginnam": 6, "when": 6, "find": 6, "suitabl": 6, "suitablenotfounderror": 6, "found": 6, "neg": 6, "rewind": 6, "begin": 6, "setfiletyp": 6, "setmark": 6, "po": 6, "setpo": 6, "seek": 6, "setsonginfo": 6, "tell": 6, "wrongpluginerror": 6, "wrong": 6, "datatyp": 6, "form": 6, "start": 6, "finish": 6, "end": 6, "same": 6, "detect": 6, "automat": 6, "output_raw": 6}, "objects": {"": [[5, 0, 0, "-", "spaudio"], [6, 0, 0, "-", "spplugin"]], "spaudio": [[5, 1, 1, "", "DeviceError"], [5, 1, 1, "", "DriverError"], [5, 1, 1, "", "Error"], [5, 2, 1, "", "SpAudio"], [5, 4, 1, "", "callbacksignature"], [5, 4, 1, "", "getdriverdevicename"], [5, 4, 1, "", "getdriverlist"], [5, 4, 1, "", "getdrivername"], [5, 4, 1, "", "getndriverdevices"], [5, 4, 1, "", "getndrivers"], [5, 4, 1, "", "open"]], "spaudio.SpAudio": [[5, 3, 1, "", "close"], [5, 3, 1, "", "createarray"], [5, 3, 1, "", "createndarray"], [5, 3, 1, "", "createrawarray"], [5, 3, 1, "", "createrawndarray"], [5, 3, 1, "", "getarraytypecode"], [5, 3, 1, "", "getblockingmode"], [5, 3, 1, "", "getbuffersize"], [5, 3, 1, "", "getcompname"], [5, 3, 1, "", "getcomptype"], [5, 3, 1, "", "getdevicelist"], [5, 3, 1, "", "getdevicename"], [5, 3, 1, "", "getframerate"], [5, 3, 1, "", "getnbuffers"], [5, 3, 1, "", "getnchannels"], [5, 3, 1, "", "getndarraydtype"], [5, 3, 1, "", "getndevices"], [5, 3, 1, "", "getparams"], [5, 3, 1, "", "getparamstuple"], [5, 3, 1, "", "getrawarraytypecode"], [5, 3, 1, "", "getrawndarraydtype"], [5, 3, 1, "", "getrawsampbit"], [5, 3, 1, "", "getrawsampwidth"], [5, 3, 1, "", "getsampbit"], [5, 3, 1, "", "getsamprate"], [5, 3, 1, "", "getsampwidth"], [5, 3, 1, "", "open"], [5, 3, 1, "", "read"], [5, 3, 1, "", "readframes"], [5, 3, 1, "", "readraw"], [5, 3, 1, "", "readrawframes"], [5, 3, 1, "", "reload"], [5, 3, 1, "", "selectdevice"], [5, 3, 1, "", "setblockingmode"], [5, 3, 1, "", "setbuffersize"], [5, 3, 1, "", "setcallback"], [5, 3, 1, "", "setcomptype"], [5, 3, 1, "", "setframerate"], [5, 3, 1, "", "setnbuffers"], [5, 3, 1, "", "setnchannels"], [5, 3, 1, "", "setparams"], [5, 3, 1, "", "setsampbit"], [5, 3, 1, "", "setsamprate"], [5, 3, 1, "", "setsampwidth"], [5, 3, 1, "", "stop"], [5, 3, 1, "", "sync"], [5, 3, 1, "", "terminate"], [5, 3, 1, "", "write"], [5, 3, 1, "", "writeframes"], [5, 3, 1, "", "writeraw"], [5, 3, 1, "", "writerawframes"]], "spplugin": [[6, 1, 1, "", "BogusFileError"], [6, 1, 1, "", "Error"], [6, 1, 1, "", "FileError"], [6, 1, 1, "", "FileTypeError"], [6, 1, 1, "", "NChannelsError"], [6, 1, 1, "", "NFramesRequiredError"], [6, 1, 1, "", "SampleBitError"], [6, 1, 1, "", "SampleRateError"], [6, 2, 1, "", "SpFilePlugin"], [6, 1, 1, "", "SuitableNotFoundError"], [6, 1, 1, "", "WrongPluginError"], [6, 4, 1, "", "audioread"], [6, 4, 1, "", "audiowrite"], [6, 4, 1, "", "getplugindesc"], [6, 4, 1, "", "getplugininfo"], [6, 4, 1, "", "open"]], "spplugin.SpFilePlugin": [[6, 3, 1, "", "appendsonginfo"], [6, 3, 1, "", "close"], [6, 3, 1, "", "copyarray2raw"], [6, 3, 1, "", "copyraw2array"], [6, 3, 1, "", "createarray"], [6, 3, 1, "", "createndarray"], [6, 3, 1, "", "createrawarray"], [6, 3, 1, "", "createrawndarray"], [6, 3, 1, "", "getarraytypecode"], [6, 3, 1, "", "getcompname"], [6, 3, 1, "", "getcomptype"], [6, 3, 1, "", "getfiledesc"], [6, 3, 1, "", "getfilefilter"], [6, 3, 1, "", "getfiletype"], [6, 3, 1, "", "getframerate"], [6, 3, 1, "", "getmark"], [6, 3, 1, "", "getmarkers"], [6, 3, 1, "", "getnchannels"], [6, 3, 1, "", "getndarraydtype"], [6, 3, 1, "", "getnframes"], [6, 3, 1, "", "getparams"], [6, 3, 1, "", "getparamstuple"], [6, 3, 1, "", "getplugindesc"], [6, 3, 1, "", "getpluginid"], [6, 3, 1, "", "getplugininfo"], [6, 3, 1, "", "getpluginname"], [6, 3, 1, "", "getpluginversion"], [6, 3, 1, "", "getrawarraytypecode"], [6, 3, 1, "", "getrawndarraydtype"], [6, 3, 1, "", "getrawsampbit"], [6, 3, 1, "", "getrawsampwidth"], [6, 3, 1, "", "getsampbit"], [6, 3, 1, "", "getsamprate"], [6, 3, 1, "", "getsampwidth"], [6, 3, 1, "", "getsonginfo"], [6, 3, 1, "", "open"], [6, 3, 1, "", "read"], [6, 3, 1, "", "readframes"], [6, 3, 1, "", "readraw"], [6, 3, 1, "", "readrawframes"], [6, 3, 1, "", "rewind"], [6, 3, 1, "", "setcomptype"], [6, 3, 1, "", "setfiletype"], [6, 3, 1, "", "setframerate"], [6, 3, 1, "", "setmark"], [6, 3, 1, "", "setnchannels"], [6, 3, 1, "", "setnframes"], [6, 3, 1, "", "setparams"], [6, 3, 1, "", "setpos"], [6, 3, 1, "", "setsampbit"], [6, 3, 1, "", "setsamprate"], [6, 3, 1, "", "setsampwidth"], [6, 3, 1, "", "setsonginfo"], [6, 3, 1, "", "tell"], [6, 3, 1, "", "write"], [6, 3, 1, "", "writeframes"], [6, 3, 1, "", "writeraw"], [6, 3, 1, "", "writerawframes"]]}, "objtypes": {"0": "py:module", "1": "py:exception", "2": "py:class", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "exception", "Python exception"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"api": 0, "document": 0, "exampl": [1, 5, 6], "spaudio": [1, 2, 4, 5], "fullduplex": 1, "i": 1, "o": 1, "us": 1, "statement": 1, "version": 1, "0": 1, "7": 1, "15": 1, "read": 1, "plot": 1, "python": [1, 2], "arrai": 1, "raw": 1, "data": 1, "numpi": 1, "ndarrai": 1, "16": 1, "plai": 1, "wav": 1, "file": 1, "callback": 1, "record": 1, "block": 1, "write": 1, "an": 1, "readfram": 1, "writefram": 1, "spplugin": [1, 6], "audioread": 1, "audiowrit": 1, "audio": 1, "content": [1, 2], "plugin": 1, "convert": 1, "indic": 2, "tabl": 2, "introduct": 3, "instal": 3, "chang": 3, "log": 3, "build": 3, "offici": 3, "site": 3, "modul": [5, 6]}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import sys | ||
| import argparse | ||
| import wave | ||
| import spaudio | ||
| def rectowav2(filename, samprate, nchannels, sampwidth, duration): | ||
| with wave.open(filename, 'wb') as wf: | ||
| nframes = round(duration * samprate) | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| with spaudio.open('ro', nchannels=nchannels, samprate=samprate, | ||
| sampbit=(8 * sampwidth)) as a: | ||
| b = a.createrawarray(nframes * nchannels) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| paramstuple = a.getparamstuple(True, nframes) | ||
| wf.setparams(paramstuple) | ||
| wf.writeframes(b) | ||
| print('output file: %s' % filename, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Record to a wave file') | ||
| parser.add_argument('filename', help='name of output wave file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-w', '--sampwidth', type=int, | ||
| default=2, help='sample width [byte]') | ||
| parser.add_argument('-d', '--duration', type=float, | ||
| default=2.0, help='recording duration [s]') | ||
| args = parser.parse_args() | ||
| rectowav2(args.filename, args.samprate, args.nchannels, | ||
| args.sampwidth, args.duration) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import aifc | ||
| import wave | ||
| import sunau | ||
| import spplugin | ||
| def writefrombyplugin(inputfile, outputfile): | ||
| _, ifileext = os.path.splitext(inputfile) | ||
| if ifileext in ('.wav', '.wave'): | ||
| sndlib = wave | ||
| decodebytes = True | ||
| ibigendian_or_signed8bit = False | ||
| elif ifileext == '.au': | ||
| sndlib = sunau | ||
| decodebytes = True | ||
| ibigendian_or_signed8bit = True | ||
| elif ifileext in ('.aif', '.aiff', '.aifc', '.afc'): | ||
| sndlib = aifc | ||
| decodebytes = False | ||
| ibigendian_or_signed8bit = True | ||
| else: | ||
| raise RuntimeError('input file format is not supported') | ||
| with sndlib.open(inputfile, 'rb') as sf: | ||
| params = sf.getparams() | ||
| print('nchannels = %d, framerate = %d, sampwidth = %d, nframes = %d' | ||
| % (params.nchannels, params.framerate, params.sampwidth, params.nframes)) | ||
| if params.comptype: | ||
| print('comptype = %s %s' | ||
| % (params.comptype, '(' + params.compname + | ||
| ')' if params.compname else '')) | ||
| y = sf.readframes(params.nframes) | ||
| with spplugin.open(outputfile, 'w', params=params) as pf: | ||
| print('output plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| b = pf.copyraw2array(y, params.sampwidth, bigendian_or_signed8bit=ibigendian_or_signed8bit) | ||
| nwrite = pf.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| writefrombyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| def convbyplugin(inputfile, outputfile): | ||
| with spplugin.open(inputfile, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| params = pf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (params['nchannels'], params['samprate'], params['sampbit'], | ||
| params['nframes'])) | ||
| if params['filetype']: | ||
| print('filetype = %s %s' | ||
| % (params['filetype'], '(' + params['filedesc'] + | ||
| ('; ' + params['filefilter'] if params['filefilter'] else '') + | ||
| ')' if params['filedesc'] else '')) | ||
| if params['songinfo']: | ||
| print('songinfo = ' + str(params['songinfo'])) | ||
| b = pf.createrawarray(params['nframes'], True) | ||
| nread = pf.readraw(b) | ||
| print('nread = %d' % nread) | ||
| with spplugin.open(outputfile, 'w', params=params) as pf: | ||
| print('output plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nwrite = pf.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| convbyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| y = a.createrawndarray(16000) | ||
| nread = a.readraw(y) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.writeraw(y) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| x = np.linspace(0.0, 2.0, 16000) | ||
| plt.plot(x, y) | ||
| plt.xlim(0.0, 2.0) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (raw)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import argparse | ||
| import spplugin | ||
| import spaudio | ||
| def playrawbyplugin(filename, samprate, nchannels, sampbit, filetype): | ||
| with spplugin.open(filename, 'r', pluginname='input_raw', samprate=samprate, | ||
| nchannels=nchannels, sampbit=sampbit, filetype=filetype) as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (nchannels, samprate, sampbit, nframes)) | ||
| filetype = pf.getfiletype() | ||
| filedesc = pf.getfiledesc() | ||
| filefilter = pf.getfilefilter() | ||
| if filetype: | ||
| print('filetype = %s %s' | ||
| % (filetype, '(' + filedesc + | ||
| ('; ' + filefilter if filefilter else '') + ')' if filedesc else '')) | ||
| songinfo = pf.getsonginfo() | ||
| if songinfo: | ||
| print('songinfo = ' + str(songinfo)) | ||
| with spaudio.open('wo', nchannels=nchannels, samprate=samprate, | ||
| sampbit=sampbit) as a: | ||
| b = pf.readframes(nframes) | ||
| print('nread = %d' % len(b)) | ||
| nwframes = a.writeframes(b) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Play an audio file including a raw file') | ||
| parser.add_argument('filename', help='name of input file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-b', '--sampbit', type=int, | ||
| default=16, help='bits/sample') | ||
| parser.add_argument('-t', '--filetype', help='file type string') | ||
| args = parser.parse_args() | ||
| playrawbyplugin(args.filename, args.samprate, args.nchannels, | ||
| args.sampbit, args.filetype) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(2) | ||
| a.setsamprate(44100) | ||
| a.setbuffersize(2048) | ||
| nloop = 500 | ||
| b = bytearray(4096) | ||
| a.open('r') | ||
| a.open('w') | ||
| for i in range(nloop): | ||
| a.readraw(b) | ||
| a.writeraw(b) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| y = a.createndarray(16000) | ||
| nread = a.read(y) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.write(y) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| x = np.linspace(0.0, 2.0, 16000) | ||
| plt.plot(x, y) | ||
| plt.xlim(0.0, 2.0) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.createarray(nframes, True) | ||
| nloop = ((nframes * nchannels) + blocklen - 1) // blocklen # ceil | ||
| for i in range(nloop): | ||
| nread = a.read(b, offset=(i * blocklen), length=blocklen) | ||
| print('%d: nread = %d' % (i, nread)) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| def audiorwexample(ifilename, ofilename): | ||
| data, samprate, params = spplugin.audioread(ifilename) | ||
| print('nread = %d' % len(data)) | ||
| print('samprate = ' + str(samprate) + ', params =\n' + str(params)) | ||
| if False: | ||
| nwframes = spplugin.audiowrite(ofilename, data, samprate, | ||
| sampbit=params['sampbit']) | ||
| else: | ||
| nwframes = spplugin.audiowrite(ofilename, data, params=params) | ||
| print('write frames = %d' % nwframes) | ||
| data2, samprate2, params2 = spplugin.audioread(ofilename) | ||
| print('reload: nread = %d' % len(data2)) | ||
| print('reload: samprate = ' + str(samprate2) + ', params =\n' + str(params2)) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s ifilename ofilename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audiorwexample(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def playfromwav2(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| paramstuple = wf.getparams() | ||
| print('nchannels = %d, framerate = %d, sampwidth = %d, nframes = %d' | ||
| % (paramstuple.nchannels, paramstuple.framerate, | ||
| paramstuple.sampwidth, paramstuple.nframes)) | ||
| with spaudio.open('wo', params=paramstuple) as a: | ||
| b = wf.readframes(paramstuple.nframes) | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav2(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def audiowriteexample(filename): | ||
| duration = 2.0 | ||
| with spaudio.open('ro', nchannels=2, samprate=44100) as a: | ||
| nframes = round(duration * a.getsamprate()) | ||
| data = a.readframes(nframes, channelwise=True) | ||
| print('nread = %d' % len(data)) | ||
| nwframes = spplugin.audiowrite(filename, data, a.getsamprate()) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audiowriteexample(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| with spaudio.open('rw', nchannels=2, samprate=44100, buffersize=2048) as a: | ||
| nloop = 500 | ||
| b = bytearray(4096) | ||
| for i in range(nloop): | ||
| a.readraw(b) | ||
| a.writeraw(b) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| with spaudio.open('ro', nchannels=2, samprate=44100) as a: | ||
| y = a.readframes(44100, channelwise=True) | ||
| print('nread = %d' % len(y)) | ||
| x = np.linspace(0.0, 1.0, 44100) | ||
| for i in range(a.getnchannels()): | ||
| plt.plot(x, y[:, i]) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| import matplotlib.pyplot as plt | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| b = a.createarray(16000) | ||
| nread = a.read(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| plt.plot(b) | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spplugin | ||
| def plotfilebyplugin(filename): | ||
| with spplugin.open(filename, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| duration = nframes / samprate | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d, duration = %.2f' | ||
| % (nchannels, samprate, sampbit, nframes, duration)) | ||
| # In version 0.7.16+, y.resize() can be omitted by channelwise=True. | ||
| # y = pf.createndarray(nframes, True, channelwise=True) | ||
| y = pf.createndarray(nframes, True) | ||
| nread = pf.read(y) | ||
| print('nread = %d' % nread) | ||
| y.resize((nframes, nchannels)) | ||
| x = np.linspace(0.0, duration, nframes) | ||
| for i in range(nchannels): | ||
| plt.plot(x, y[:, i]) | ||
| plt.xlim(0.0, duration) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| plotfilebyplugin(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def playfilebyplugin(filename): | ||
| with spplugin.open(filename, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (nchannels, samprate, sampbit, nframes)) | ||
| filetype = pf.getfiletype() | ||
| filedesc = pf.getfiledesc() | ||
| filefilter = pf.getfilefilter() | ||
| if filetype: | ||
| print('filetype = %s %s' | ||
| % (filetype, '(' + filedesc + | ||
| ('; ' + filefilter if filefilter else '') + ')' if filedesc else '')) | ||
| songinfo = pf.getsonginfo() | ||
| if songinfo: | ||
| print('songinfo = ' + str(songinfo)) | ||
| with spaudio.open('wo', nchannels=nchannels, samprate=samprate, | ||
| sampbit=sampbit) as a: | ||
| b = a.createarray(nframes, True) | ||
| nread = pf.read(b) | ||
| print('nread = %d' % nread) | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfilebyplugin(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| import matplotlib.pyplot as plt | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| b = a.createrawarray(16000) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| plt.plot(b) | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import aifc | ||
| import wave | ||
| import sunau | ||
| import spplugin | ||
| def writefrombyplugin(inputfile, outputfile): | ||
| _, ofileext = os.path.splitext(outputfile) | ||
| if ofileext in ('.wav', '.wave'): | ||
| sndlib = wave | ||
| decodebytes = True | ||
| obigendian_or_signed8bit = False | ||
| elif ofileext == '.au': | ||
| sndlib = sunau | ||
| decodebytes = True | ||
| obigendian_or_signed8bit = True | ||
| elif ofileext in ('.aif', '.aiff', '.aifc', '.afc'): | ||
| sndlib = aifc | ||
| decodebytes = False | ||
| obigendian_or_signed8bit = True | ||
| else: | ||
| raise RuntimeError('output file format is not supported') | ||
| with spplugin.open(inputfile, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| params = pf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (params['nchannels'], params['samprate'], params['sampbit'], params['nframes'])) | ||
| if params['filetype']: | ||
| print('filetype = %s %s' | ||
| % (params['filetype'], '(' + params['filedesc'] + | ||
| ('; ' + params['filefilter'] if params['filefilter'] else '') + | ||
| ')' if params['filedesc'] else '')) | ||
| if params['songinfo']: | ||
| print('songinfo = ' + str(params['songinfo'])) | ||
| b = pf.createrawarray(params['nframes'], True) | ||
| nread = pf.readraw(b) | ||
| print('nread = %d' % nread) | ||
| paramstuple = pf.getparamstuple(decodebytes) | ||
| with sndlib.open(outputfile, 'wb') as sf: | ||
| sf.setparams(paramstuple) | ||
| y = pf.copyarray2raw(b, paramstuple.sampwidth, bigendian_or_signed8bit=obigendian_or_signed8bit) | ||
| sf.writeframes(y) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| writefrombyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.createarray(nframes, True) | ||
| nread = a.read(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nloop = ((nframes * nchannels) + blocklen - 1) // blocklen # ceil | ||
| for i in range(nloop): | ||
| nwrite = a.write(b, offset=(i * blocklen), length=blocklen) | ||
| print('%d: write = %d' % (i, nwrite)) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import sys | ||
| import argparse | ||
| import wave | ||
| import spaudio | ||
| def rectowav(filename, samprate, nchannels, sampwidth, duration): | ||
| with wave.open(filename, 'wb') as wf: | ||
| nframes = round(duration * samprate) | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| a.open('ro') | ||
| b = a.createrawarray(nframes * nchannels) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| wf.setnchannels(nchannels) | ||
| wf.setframerate(samprate) | ||
| wf.setsampwidth(sampwidth) | ||
| wf.setnframes(nframes) | ||
| wf.writeframes(b) | ||
| print('output file: %s' % filename, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Record to a wave file') | ||
| parser.add_argument('filename', help='name of output wave file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-w', '--sampwidth', type=int, | ||
| default=2, help='sample width [byte]') | ||
| parser.add_argument('-d', '--duration', type=float, | ||
| default=2.0, help='recording duration [s]') | ||
| args = parser.parse_args() | ||
| rectowav(args.filename, args.samprate, args.nchannels, | ||
| args.sampwidth, args.duration) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def audioreadexample(filename): | ||
| data, samprate, params = spplugin.audioread(filename) | ||
| print('samprate = ' + str(samprate) + ', params =\n' + str(params)) | ||
| with spaudio.open('wo', params=params) as a: | ||
| nwframes = a.writeframes(data) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audioreadexample(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def myaudiocb(audio, cbtype, cbdata, args): | ||
| if cbtype == spaudio.OUTPUT_POSITION_CALLBACK: | ||
| position = cbdata | ||
| samprate = args[0] | ||
| nframes = args[1] | ||
| position_s = float(position) / float(samprate) | ||
| total_s = float(nframes) / float(samprate) | ||
| sys.stdout.write('Time: %.3f / %.3f\r' % (position_s, total_s)) | ||
| elif cbtype == spaudio.OUTPUT_BUFFER_CALLBACK: | ||
| buf = cbdata | ||
| # print('OUTPUT_BUFFER_CALLBACK: buffer type = %s, size = %d' % (type(buf), len(buf))) | ||
| return True | ||
| def playfromwav(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| nchannels = wf.getnchannels() | ||
| samprate = wf.getframerate() | ||
| sampwidth = wf.getsampwidth() | ||
| nframes = wf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setbuffersize(1024) | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| b = wf.readframes(nframes) | ||
| a.setcallback(spaudio.OUTPUT_POSITION_CALLBACK | spaudio.OUTPUT_BUFFER_CALLBACK, | ||
| myaudiocb, samprate, nframes) | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| # print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def myaudiocb(audio, cbtype, cbdata, args): | ||
| if cbtype == spaudio.OUTPUT_POSITION_CALLBACK: | ||
| position = cbdata | ||
| samprate = args[0] | ||
| nframes = args[1] | ||
| position_s = float(position) / float(samprate) | ||
| total_s = float(nframes) / float(samprate) | ||
| sys.stdout.write('Time: %.3f / %.3f\r' % (position_s, total_s)) | ||
| elif cbtype == spaudio.OUTPUT_BUFFER_CALLBACK: | ||
| buf = cbdata | ||
| # print('OUTPUT_BUFFER_CALLBACK: buffer type = %s, size = %d' % (type(buf), len(buf))) | ||
| return True | ||
| def playfromwav2(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| paramstuple = wf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (paramstuple.nchannels, paramstuple.framerate, | ||
| paramstuple.sampwidth, paramstuple.nframes)) | ||
| with spaudio.open('wo', params=paramstuple, buffersize=1024, | ||
| callback=(spaudio.OUTPUT_POSITION_CALLBACK | spaudio.OUTPUT_BUFFER_CALLBACK, | ||
| myaudiocb, paramstuple.framerate, paramstuple.nframes)) as a: | ||
| b = wf.readframes(paramstuple.nframes) | ||
| nwrite = a.writeraw(b) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav2(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def playfromwav(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| nchannels = wf.getnchannels() | ||
| samprate = wf.getframerate() | ||
| sampwidth = wf.getsampwidth() | ||
| nframes = wf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| b = wf.readframes(nframes) | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.readframes(nframes, arraytype='array') | ||
| print('nread = %d' % len(b)) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nwframes = a.writeframes(b) | ||
| print('write frames = %d' % nwframes) | ||
| a.close() |
| /* | ||
| * _sphinx_javascript_frameworks_compat.js | ||
| * ~~~~~~~~~~ | ||
| * | ||
| * Compatability shim for jQuery and underscores.js. | ||
| * | ||
| * WILL BE REMOVED IN Sphinx 6.0 | ||
| * xref RemovedInSphinx60Warning | ||
| * | ||
| */ | ||
| /** | ||
| * select a different prefix for underscore | ||
| */ | ||
| $u = _.noConflict(); | ||
| /** | ||
| * small helper function to urldecode strings | ||
| * | ||
| * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL | ||
| */ | ||
| jQuery.urldecode = function(x) { | ||
| if (!x) { | ||
| return x | ||
| } | ||
| return decodeURIComponent(x.replace(/\+/g, ' ')); | ||
| }; | ||
| /** | ||
| * small helper function to urlencode strings | ||
| */ | ||
| jQuery.urlencode = encodeURIComponent; | ||
| /** | ||
| * This function returns the parsed url parameters of the | ||
| * current request. Multiple values per key are supported, | ||
| * it will always return arrays of strings for the value parts. | ||
| */ | ||
| jQuery.getQueryParameters = function(s) { | ||
| if (typeof s === 'undefined') | ||
| s = document.location.search; | ||
| var parts = s.substr(s.indexOf('?') + 1).split('&'); | ||
| var result = {}; | ||
| for (var i = 0; i < parts.length; i++) { | ||
| var tmp = parts[i].split('=', 2); | ||
| var key = jQuery.urldecode(tmp[0]); | ||
| var value = jQuery.urldecode(tmp[1]); | ||
| if (key in result) | ||
| result[key].push(value); | ||
| else | ||
| result[key] = [value]; | ||
| } | ||
| return result; | ||
| }; | ||
| /** | ||
| * highlight a given string on a jquery object by wrapping it in | ||
| * span elements with the given class name. | ||
| */ | ||
| jQuery.fn.highlightText = function(text, className) { | ||
| function highlight(node, addItems) { | ||
| if (node.nodeType === 3) { | ||
| var val = node.nodeValue; | ||
| var pos = val.toLowerCase().indexOf(text); | ||
| if (pos >= 0 && | ||
| !jQuery(node.parentNode).hasClass(className) && | ||
| !jQuery(node.parentNode).hasClass("nohighlight")) { | ||
| var span; | ||
| var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); | ||
| if (isInSVG) { | ||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
| } else { | ||
| span = document.createElement("span"); | ||
| span.className = className; | ||
| } | ||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
| node.parentNode.insertBefore(span, node.parentNode.insertBefore( | ||
| document.createTextNode(val.substr(pos + text.length)), | ||
| node.nextSibling)); | ||
| node.nodeValue = val.substr(0, pos); | ||
| if (isInSVG) { | ||
| var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | ||
| var bbox = node.parentElement.getBBox(); | ||
| rect.x.baseVal.value = bbox.x; | ||
| rect.y.baseVal.value = bbox.y; | ||
| rect.width.baseVal.value = bbox.width; | ||
| rect.height.baseVal.value = bbox.height; | ||
| rect.setAttribute('class', className); | ||
| addItems.push({ | ||
| "parent": node.parentNode, | ||
| "target": rect}); | ||
| } | ||
| } | ||
| } | ||
| else if (!jQuery(node).is("button, select, textarea")) { | ||
| jQuery.each(node.childNodes, function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| } | ||
| } | ||
| var addItems = []; | ||
| var result = this.each(function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| for (var i = 0; i < addItems.length; ++i) { | ||
| jQuery(addItems[i].parent).before(addItems[i].target); | ||
| } | ||
| return result; | ||
| }; | ||
| /* | ||
| * backward compatibility for jQuery.browser | ||
| * This will be supported until firefox bug is fixed. | ||
| */ | ||
| if (!jQuery.browser) { | ||
| jQuery.uaMatch = function(ua) { | ||
| ua = ua.toLowerCase(); | ||
| var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || | ||
| /(webkit)[ \/]([\w.]+)/.exec(ua) || | ||
| /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || | ||
| /(msie) ([\w.]+)/.exec(ua) || | ||
| ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || | ||
| []; | ||
| return { | ||
| browser: match[ 1 ] || "", | ||
| version: match[ 2 ] || "0" | ||
| }; | ||
| }; | ||
| jQuery.browser = {}; | ||
| jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}}); |
| /** | ||
| * @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed | ||
| */ | ||
| !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); |
| /** | ||
| * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed | ||
| */ | ||
| !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); |
Sorry, the diff of this file is too big to display
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import sys | ||
| import argparse | ||
| import wave | ||
| import spaudio | ||
| def rectowav2(filename, samprate, nchannels, sampwidth, duration): | ||
| with wave.open(filename, 'wb') as wf: | ||
| nframes = round(duration * samprate) | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| with spaudio.open('ro', nchannels=nchannels, samprate=samprate, | ||
| sampbit=(8 * sampwidth)) as a: | ||
| b = a.createrawarray(nframes * nchannels) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| paramstuple = a.getparamstuple(True, nframes) | ||
| wf.setparams(paramstuple) | ||
| wf.writeframes(b) | ||
| print('output file: %s' % filename, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Record to a wave file') | ||
| parser.add_argument('filename', help='name of output wave file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-w', '--sampwidth', type=int, | ||
| default=2, help='sample width [byte]') | ||
| parser.add_argument('-d', '--duration', type=float, | ||
| default=2.0, help='recording duration [s]') | ||
| args = parser.parse_args() | ||
| rectowav2(args.filename, args.samprate, args.nchannels, | ||
| args.sampwidth, args.duration) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import aifc | ||
| import wave | ||
| import sunau | ||
| import spplugin | ||
| def writefrombyplugin(inputfile, outputfile): | ||
| _, ifileext = os.path.splitext(inputfile) | ||
| if ifileext in ('.wav', '.wave'): | ||
| sndlib = wave | ||
| decodebytes = True | ||
| ibigendian_or_signed8bit = False | ||
| elif ifileext == '.au': | ||
| sndlib = sunau | ||
| decodebytes = True | ||
| ibigendian_or_signed8bit = True | ||
| elif ifileext in ('.aif', '.aiff', '.aifc', '.afc'): | ||
| sndlib = aifc | ||
| decodebytes = False | ||
| ibigendian_or_signed8bit = True | ||
| else: | ||
| raise RuntimeError('input file format is not supported') | ||
| with sndlib.open(inputfile, 'rb') as sf: | ||
| params = sf.getparams() | ||
| print('nchannels = %d, framerate = %d, sampwidth = %d, nframes = %d' | ||
| % (params.nchannels, params.framerate, params.sampwidth, params.nframes)) | ||
| if params.comptype: | ||
| print('comptype = %s %s' | ||
| % (params.comptype, '(' + params.compname + | ||
| ')' if params.compname else '')) | ||
| y = sf.readframes(params.nframes) | ||
| with spplugin.open(outputfile, 'w', params=params) as pf: | ||
| print('output plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| b = pf.copyraw2array(y, params.sampwidth, bigendian_or_signed8bit=ibigendian_or_signed8bit) | ||
| nwrite = pf.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| writefrombyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| def convbyplugin(inputfile, outputfile): | ||
| with spplugin.open(inputfile, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| params = pf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (params['nchannels'], params['samprate'], params['sampbit'], | ||
| params['nframes'])) | ||
| if params['filetype']: | ||
| print('filetype = %s %s' | ||
| % (params['filetype'], '(' + params['filedesc'] + | ||
| ('; ' + params['filefilter'] if params['filefilter'] else '') + | ||
| ')' if params['filedesc'] else '')) | ||
| if params['songinfo']: | ||
| print('songinfo = ' + str(params['songinfo'])) | ||
| b = pf.createrawarray(params['nframes'], True) | ||
| nread = pf.readraw(b) | ||
| print('nread = %d' % nread) | ||
| with spplugin.open(outputfile, 'w', params=params) as pf: | ||
| print('output plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nwrite = pf.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| convbyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| y = a.createrawndarray(16000) | ||
| nread = a.readraw(y) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.writeraw(y) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| x = np.linspace(0.0, 2.0, 16000) | ||
| plt.plot(x, y) | ||
| plt.xlim(0.0, 2.0) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (raw)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import argparse | ||
| import spplugin | ||
| import spaudio | ||
| def playrawbyplugin(filename, samprate, nchannels, sampbit, filetype): | ||
| with spplugin.open(filename, 'r', pluginname='input_raw', samprate=samprate, | ||
| nchannels=nchannels, sampbit=sampbit, filetype=filetype) as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (nchannels, samprate, sampbit, nframes)) | ||
| filetype = pf.getfiletype() | ||
| filedesc = pf.getfiledesc() | ||
| filefilter = pf.getfilefilter() | ||
| if filetype: | ||
| print('filetype = %s %s' | ||
| % (filetype, '(' + filedesc + | ||
| ('; ' + filefilter if filefilter else '') + ')' if filedesc else '')) | ||
| songinfo = pf.getsonginfo() | ||
| if songinfo: | ||
| print('songinfo = ' + str(songinfo)) | ||
| with spaudio.open('wo', nchannels=nchannels, samprate=samprate, | ||
| sampbit=sampbit) as a: | ||
| b = pf.readframes(nframes) | ||
| print('nread = %d' % len(b)) | ||
| nwframes = a.writeframes(b) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Play an audio file including a raw file') | ||
| parser.add_argument('filename', help='name of input file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-b', '--sampbit', type=int, | ||
| default=16, help='bits/sample') | ||
| parser.add_argument('-t', '--filetype', help='file type string') | ||
| args = parser.parse_args() | ||
| playrawbyplugin(args.filename, args.samprate, args.nchannels, | ||
| args.sampbit, args.filetype) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(2) | ||
| a.setsamprate(44100) | ||
| a.setbuffersize(2048) | ||
| nloop = 500 | ||
| b = bytearray(4096) | ||
| a.open('r') | ||
| a.open('w') | ||
| for i in range(nloop): | ||
| a.readraw(b) | ||
| a.writeraw(b) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| y = a.createndarray(16000) | ||
| nread = a.read(y) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.write(y) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| x = np.linspace(0.0, 2.0, 16000) | ||
| plt.plot(x, y) | ||
| plt.xlim(0.0, 2.0) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.createarray(nframes, True) | ||
| nloop = ((nframes * nchannels) + blocklen - 1) // blocklen # ceil | ||
| for i in range(nloop): | ||
| nread = a.read(b, offset=(i * blocklen), length=blocklen) | ||
| print('%d: nread = %d' % (i, nread)) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| def audiorwexample(ifilename, ofilename): | ||
| data, samprate, params = spplugin.audioread(ifilename) | ||
| print('nread = %d' % len(data)) | ||
| print('samprate = ' + str(samprate) + ', params =\n' + str(params)) | ||
| if False: | ||
| nwframes = spplugin.audiowrite(ofilename, data, samprate, | ||
| sampbit=params['sampbit']) | ||
| else: | ||
| nwframes = spplugin.audiowrite(ofilename, data, params=params) | ||
| print('write frames = %d' % nwframes) | ||
| data2, samprate2, params2 = spplugin.audioread(ofilename) | ||
| print('reload: nread = %d' % len(data2)) | ||
| print('reload: samprate = ' + str(samprate2) + ', params =\n' + str(params2)) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s ifilename ofilename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audiorwexample(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def playfromwav2(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| paramstuple = wf.getparams() | ||
| print('nchannels = %d, framerate = %d, sampwidth = %d, nframes = %d' | ||
| % (paramstuple.nchannels, paramstuple.framerate, | ||
| paramstuple.sampwidth, paramstuple.nframes)) | ||
| with spaudio.open('wo', params=paramstuple) as a: | ||
| b = wf.readframes(paramstuple.nframes) | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav2(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def audiowriteexample(filename): | ||
| duration = 2.0 | ||
| with spaudio.open('ro', nchannels=2, samprate=44100) as a: | ||
| nframes = round(duration * a.getsamprate()) | ||
| data = a.readframes(nframes, channelwise=True) | ||
| print('nread = %d' % len(data)) | ||
| nwframes = spplugin.audiowrite(filename, data, a.getsamprate()) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audiowriteexample(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| with spaudio.open('rw', nchannels=2, samprate=44100, buffersize=2048) as a: | ||
| nloop = 500 | ||
| b = bytearray(4096) | ||
| for i in range(nloop): | ||
| a.readraw(b) | ||
| a.writeraw(b) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spaudio | ||
| with spaudio.open('ro', nchannels=2, samprate=44100) as a: | ||
| y = a.readframes(44100, channelwise=True) | ||
| print('nread = %d' % len(y)) | ||
| x = np.linspace(0.0, 1.0, 44100) | ||
| for i in range(a.getnchannels()): | ||
| plt.plot(x, y[:, i]) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| import matplotlib.pyplot as plt | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| b = a.createarray(16000) | ||
| nread = a.read(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| plt.plot(b) | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import numpy as np | ||
| import matplotlib.pyplot as plt | ||
| import spplugin | ||
| def plotfilebyplugin(filename): | ||
| with spplugin.open(filename, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| duration = nframes / samprate | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d, duration = %.2f' | ||
| % (nchannels, samprate, sampbit, nframes, duration)) | ||
| # In version 0.7.16+, y.resize() can be omitted by channelwise=True. | ||
| # y = pf.createndarray(nframes, True, channelwise=True) | ||
| y = pf.createndarray(nframes, True) | ||
| nread = pf.read(y) | ||
| print('nread = %d' % nread) | ||
| y.resize((nframes, nchannels)) | ||
| x = np.linspace(0.0, duration, nframes) | ||
| for i in range(nchannels): | ||
| plt.plot(x, y[:, i]) | ||
| plt.xlim(0.0, duration) | ||
| plt.xlabel('Time [s]') | ||
| plt.ylabel('Amplitude (normalized)') | ||
| plt.show() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| plotfilebyplugin(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def playfilebyplugin(filename): | ||
| with spplugin.open(filename, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| nchannels = pf.getnchannels() | ||
| samprate = pf.getsamprate() | ||
| sampbit = pf.getsampbit() | ||
| nframes = pf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (nchannels, samprate, sampbit, nframes)) | ||
| filetype = pf.getfiletype() | ||
| filedesc = pf.getfiledesc() | ||
| filefilter = pf.getfilefilter() | ||
| if filetype: | ||
| print('filetype = %s %s' | ||
| % (filetype, '(' + filedesc + | ||
| ('; ' + filefilter if filefilter else '') + ')' if filedesc else '')) | ||
| songinfo = pf.getsonginfo() | ||
| if songinfo: | ||
| print('songinfo = ' + str(songinfo)) | ||
| with spaudio.open('wo', nchannels=nchannels, samprate=samprate, | ||
| sampbit=sampbit) as a: | ||
| b = a.createarray(nframes, True) | ||
| nread = pf.read(b) | ||
| print('nread = %d' % nread) | ||
| nwrite = a.write(b) | ||
| print('nwrite = %d' % nwrite) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfilebyplugin(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import spaudio | ||
| import matplotlib.pyplot as plt | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(1) | ||
| a.setsamprate(8000) | ||
| a.open('ro') | ||
| b = a.createrawarray(16000) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| plt.plot(b) | ||
| plt.show() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import aifc | ||
| import wave | ||
| import sunau | ||
| import spplugin | ||
| def writefrombyplugin(inputfile, outputfile): | ||
| _, ofileext = os.path.splitext(outputfile) | ||
| if ofileext in ('.wav', '.wave'): | ||
| sndlib = wave | ||
| decodebytes = True | ||
| obigendian_or_signed8bit = False | ||
| elif ofileext == '.au': | ||
| sndlib = sunau | ||
| decodebytes = True | ||
| obigendian_or_signed8bit = True | ||
| elif ofileext in ('.aif', '.aiff', '.aifc', '.afc'): | ||
| sndlib = aifc | ||
| decodebytes = False | ||
| obigendian_or_signed8bit = True | ||
| else: | ||
| raise RuntimeError('output file format is not supported') | ||
| with spplugin.open(inputfile, 'r') as pf: | ||
| print('input plugin: %s (%s)' % (pf.getpluginid(), pf.getplugindesc())) | ||
| print('plugin version: %d.%d' % pf.getpluginversion()) | ||
| params = pf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampbit = %d, nframes = %d' | ||
| % (params['nchannels'], params['samprate'], params['sampbit'], params['nframes'])) | ||
| if params['filetype']: | ||
| print('filetype = %s %s' | ||
| % (params['filetype'], '(' + params['filedesc'] + | ||
| ('; ' + params['filefilter'] if params['filefilter'] else '') + | ||
| ')' if params['filedesc'] else '')) | ||
| if params['songinfo']: | ||
| print('songinfo = ' + str(params['songinfo'])) | ||
| b = pf.createrawarray(params['nframes'], True) | ||
| nread = pf.readraw(b) | ||
| print('nread = %d' % nread) | ||
| paramstuple = pf.getparamstuple(decodebytes) | ||
| with sndlib.open(outputfile, 'wb') as sf: | ||
| sf.setparams(paramstuple) | ||
| y = pf.copyarray2raw(b, paramstuple.sampwidth, bigendian_or_signed8bit=obigendian_or_signed8bit) | ||
| sf.writeframes(y) | ||
| print('output file: %s' % outputfile, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 2: | ||
| print('usage: %s inputfile outputfile' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| writefrombyplugin(sys.argv[1], sys.argv[2]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.15+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.createarray(nframes, True) | ||
| nread = a.read(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nloop = ((nframes * nchannels) + blocklen - 1) // blocklen # ceil | ||
| for i in range(nloop): | ||
| nwrite = a.write(b, offset=(i * blocklen), length=blocklen) | ||
| print('%d: write = %d' % (i, nwrite)) | ||
| a.close() |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import sys | ||
| import argparse | ||
| import wave | ||
| import spaudio | ||
| def rectowav(filename, samprate, nchannels, sampwidth, duration): | ||
| with wave.open(filename, 'wb') as wf: | ||
| nframes = round(duration * samprate) | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| a.open('ro') | ||
| b = a.createrawarray(nframes * nchannels) | ||
| nread = a.readraw(b) | ||
| print('nread = %d' % nread) | ||
| a.close() | ||
| wf.setnchannels(nchannels) | ||
| wf.setframerate(samprate) | ||
| wf.setsampwidth(sampwidth) | ||
| wf.setnframes(nframes) | ||
| wf.writeframes(b) | ||
| print('output file: %s' % filename, file=sys.stderr) | ||
| if __name__ == '__main__': | ||
| parser = argparse.ArgumentParser(description='Record to a wave file') | ||
| parser.add_argument('filename', help='name of output wave file') | ||
| parser.add_argument('-f', '--samprate', type=int, | ||
| default=8000, help='sampling rate [Hz]') | ||
| parser.add_argument('-c', '--nchannels', type=int, | ||
| default=1, help='number of channels') | ||
| parser.add_argument('-w', '--sampwidth', type=int, | ||
| default=2, help='sample width [byte]') | ||
| parser.add_argument('-d', '--duration', type=float, | ||
| default=2.0, help='recording duration [s]') | ||
| args = parser.parse_args() | ||
| rectowav(args.filename, args.samprate, args.nchannels, | ||
| args.sampwidth, args.duration) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import os | ||
| import sys | ||
| import spplugin | ||
| import spaudio | ||
| def audioreadexample(filename): | ||
| data, samprate, params = spplugin.audioread(filename) | ||
| print('samprate = ' + str(samprate) + ', params =\n' + str(params)) | ||
| with spaudio.open('wo', params=params) as a: | ||
| nwframes = a.writeframes(data) | ||
| print('write frames = %d' % nwframes) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| audioreadexample(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def myaudiocb(audio, cbtype, cbdata, args): | ||
| if cbtype == spaudio.OUTPUT_POSITION_CALLBACK: | ||
| position = cbdata | ||
| samprate = args[0] | ||
| nframes = args[1] | ||
| position_s = float(position) / float(samprate) | ||
| total_s = float(nframes) / float(samprate) | ||
| sys.stdout.write('Time: %.3f / %.3f\r' % (position_s, total_s)) | ||
| elif cbtype == spaudio.OUTPUT_BUFFER_CALLBACK: | ||
| buf = cbdata | ||
| # print('OUTPUT_BUFFER_CALLBACK: buffer type = %s, size = %d' % (type(buf), len(buf))) | ||
| return True | ||
| def playfromwav(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| nchannels = wf.getnchannels() | ||
| samprate = wf.getframerate() | ||
| sampwidth = wf.getsampwidth() | ||
| nframes = wf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setbuffersize(1024) | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| b = wf.readframes(nframes) | ||
| a.setcallback(spaudio.OUTPUT_POSITION_CALLBACK | spaudio.OUTPUT_BUFFER_CALLBACK, | ||
| myaudiocb, samprate, nframes) | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| # print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def myaudiocb(audio, cbtype, cbdata, args): | ||
| if cbtype == spaudio.OUTPUT_POSITION_CALLBACK: | ||
| position = cbdata | ||
| samprate = args[0] | ||
| nframes = args[1] | ||
| position_s = float(position) / float(samprate) | ||
| total_s = float(nframes) / float(samprate) | ||
| sys.stdout.write('Time: %.3f / %.3f\r' % (position_s, total_s)) | ||
| elif cbtype == spaudio.OUTPUT_BUFFER_CALLBACK: | ||
| buf = cbdata | ||
| # print('OUTPUT_BUFFER_CALLBACK: buffer type = %s, size = %d' % (type(buf), len(buf))) | ||
| return True | ||
| def playfromwav2(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| paramstuple = wf.getparams() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (paramstuple.nchannels, paramstuple.framerate, | ||
| paramstuple.sampwidth, paramstuple.nframes)) | ||
| with spaudio.open('wo', params=paramstuple, buffersize=1024, | ||
| callback=(spaudio.OUTPUT_POSITION_CALLBACK | spaudio.OUTPUT_BUFFER_CALLBACK, | ||
| myaudiocb, paramstuple.framerate, paramstuple.nframes)) as a: | ||
| b = wf.readframes(paramstuple.nframes) | ||
| nwrite = a.writeraw(b) | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav2(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| import os | ||
| import sys | ||
| import wave | ||
| import spaudio | ||
| def playfromwav(filename): | ||
| with wave.open(filename, 'rb') as wf: | ||
| nchannels = wf.getnchannels() | ||
| samprate = wf.getframerate() | ||
| sampwidth = wf.getsampwidth() | ||
| nframes = wf.getnframes() | ||
| print('nchannels = %d, samprate = %d, sampwidth = %d, nframes = %d' | ||
| % (nchannels, samprate, sampwidth, nframes)) | ||
| a = spaudio.SpAudio() | ||
| a.setnchannels(nchannels) | ||
| a.setsamprate(samprate) | ||
| a.setsampwidth(sampwidth) | ||
| b = wf.readframes(nframes) | ||
| a.open('wo') | ||
| nwrite = a.writeraw(b) | ||
| print('nwrite = %d' % nwrite) | ||
| a.close() | ||
| if __name__ == '__main__': | ||
| if len(sys.argv) <= 1: | ||
| print('usage: %s filename' | ||
| % os.path.basename(sys.argv[0]), file=sys.stderr) | ||
| quit() | ||
| playfromwav(sys.argv[1]) |
| #!/usr/bin/env python3 | ||
| # -*- coding: utf-8 -*- | ||
| # Version 0.7.16+ required. | ||
| import spaudio | ||
| blocklen = 8192 | ||
| nchannels = 2 | ||
| samprate = 44100 | ||
| nframes = 88200 # 2.0 [s] | ||
| a = spaudio.SpAudio() | ||
| a.open('ro', nchannels=nchannels, samprate=samprate) | ||
| b = a.readframes(nframes, arraytype='array') | ||
| print('nread = %d' % len(b)) | ||
| a.close() | ||
| a.open('wo', nchannels=nchannels, samprate=samprate) | ||
| nwframes = a.writeframes(b) | ||
| print('write frames = %d' % nwframes) | ||
| a.close() |
| /* | ||
| * _sphinx_javascript_frameworks_compat.js | ||
| * ~~~~~~~~~~ | ||
| * | ||
| * Compatability shim for jQuery and underscores.js. | ||
| * | ||
| * WILL BE REMOVED IN Sphinx 6.0 | ||
| * xref RemovedInSphinx60Warning | ||
| * | ||
| */ | ||
| /** | ||
| * select a different prefix for underscore | ||
| */ | ||
| $u = _.noConflict(); | ||
| /** | ||
| * small helper function to urldecode strings | ||
| * | ||
| * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL | ||
| */ | ||
| jQuery.urldecode = function(x) { | ||
| if (!x) { | ||
| return x | ||
| } | ||
| return decodeURIComponent(x.replace(/\+/g, ' ')); | ||
| }; | ||
| /** | ||
| * small helper function to urlencode strings | ||
| */ | ||
| jQuery.urlencode = encodeURIComponent; | ||
| /** | ||
| * This function returns the parsed url parameters of the | ||
| * current request. Multiple values per key are supported, | ||
| * it will always return arrays of strings for the value parts. | ||
| */ | ||
| jQuery.getQueryParameters = function(s) { | ||
| if (typeof s === 'undefined') | ||
| s = document.location.search; | ||
| var parts = s.substr(s.indexOf('?') + 1).split('&'); | ||
| var result = {}; | ||
| for (var i = 0; i < parts.length; i++) { | ||
| var tmp = parts[i].split('=', 2); | ||
| var key = jQuery.urldecode(tmp[0]); | ||
| var value = jQuery.urldecode(tmp[1]); | ||
| if (key in result) | ||
| result[key].push(value); | ||
| else | ||
| result[key] = [value]; | ||
| } | ||
| return result; | ||
| }; | ||
| /** | ||
| * highlight a given string on a jquery object by wrapping it in | ||
| * span elements with the given class name. | ||
| */ | ||
| jQuery.fn.highlightText = function(text, className) { | ||
| function highlight(node, addItems) { | ||
| if (node.nodeType === 3) { | ||
| var val = node.nodeValue; | ||
| var pos = val.toLowerCase().indexOf(text); | ||
| if (pos >= 0 && | ||
| !jQuery(node.parentNode).hasClass(className) && | ||
| !jQuery(node.parentNode).hasClass("nohighlight")) { | ||
| var span; | ||
| var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); | ||
| if (isInSVG) { | ||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
| } else { | ||
| span = document.createElement("span"); | ||
| span.className = className; | ||
| } | ||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
| node.parentNode.insertBefore(span, node.parentNode.insertBefore( | ||
| document.createTextNode(val.substr(pos + text.length)), | ||
| node.nextSibling)); | ||
| node.nodeValue = val.substr(0, pos); | ||
| if (isInSVG) { | ||
| var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | ||
| var bbox = node.parentElement.getBBox(); | ||
| rect.x.baseVal.value = bbox.x; | ||
| rect.y.baseVal.value = bbox.y; | ||
| rect.width.baseVal.value = bbox.width; | ||
| rect.height.baseVal.value = bbox.height; | ||
| rect.setAttribute('class', className); | ||
| addItems.push({ | ||
| "parent": node.parentNode, | ||
| "target": rect}); | ||
| } | ||
| } | ||
| } | ||
| else if (!jQuery(node).is("button, select, textarea")) { | ||
| jQuery.each(node.childNodes, function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| } | ||
| } | ||
| var addItems = []; | ||
| var result = this.each(function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| for (var i = 0; i < addItems.length; ++i) { | ||
| jQuery(addItems[i].parent).before(addItems[i].target); | ||
| } | ||
| return result; | ||
| }; | ||
| /* | ||
| * backward compatibility for jQuery.browser | ||
| * This will be supported until firefox bug is fixed. | ||
| */ | ||
| if (!jQuery.browser) { | ||
| jQuery.uaMatch = function(ua) { | ||
| ua = ua.toLowerCase(); | ||
| var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || | ||
| /(webkit)[ \/]([\w.]+)/.exec(ua) || | ||
| /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || | ||
| /(msie) ([\w.]+)/.exec(ua) || | ||
| ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || | ||
| []; | ||
| return { | ||
| browser: match[ 1 ] || "", | ||
| version: match[ 2 ] || "0" | ||
| }; | ||
| }; | ||
| jQuery.browser = {}; | ||
| jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}}); |
| /** | ||
| * @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed | ||
| */ | ||
| !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); |
| /** | ||
| * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed | ||
| */ | ||
| !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); |
Sorry, the diff of this file is too big to display
+37
-107
| # This file was automatically generated by SWIG (http://www.swig.org). | ||
| # Version 3.0.10 | ||
| # Version 4.0.2 | ||
| # | ||
@@ -7,43 +7,11 @@ # Do not make changes to this file unless you know what you are doing--modify | ||
| from sys import version_info as _swig_python_version_info | ||
| if _swig_python_version_info < (2, 7, 0): | ||
| raise RuntimeError("Python 2.7 or later required") | ||
| from sys import version_info as _swig_python_version_info | ||
| if _swig_python_version_info >= (2, 7, 0): | ||
| def swig_import_helper(): | ||
| import importlib | ||
| pkg = __name__.rpartition('.')[0] | ||
| mname = '.'.join((pkg, '_spaudio_c')).lstrip('.') | ||
| try: | ||
| return importlib.import_module(mname) | ||
| except ImportError: | ||
| return importlib.import_module('_spaudio_c') | ||
| _spaudio_c = swig_import_helper() | ||
| del swig_import_helper | ||
| elif _swig_python_version_info >= (2, 6, 0): | ||
| def swig_import_helper(): | ||
| from os.path import dirname | ||
| import imp | ||
| fp = None | ||
| try: | ||
| fp, pathname, description = imp.find_module('_spaudio_c', [dirname(__file__)]) | ||
| except ImportError: | ||
| import _spaudio_c | ||
| return _spaudio_c | ||
| if fp is not None: | ||
| try: | ||
| _mod = imp.load_module('_spaudio_c', fp, pathname, description) | ||
| finally: | ||
| fp.close() | ||
| return _mod | ||
| _spaudio_c = swig_import_helper() | ||
| del swig_import_helper | ||
| # Import the low-level C/C++ module | ||
| if __package__ or "." in __name__: | ||
| from . import _spaudio_c | ||
| else: | ||
| import _spaudio_c | ||
| del _swig_python_version_info | ||
| try: | ||
| _swig_property = property | ||
| except NameError: | ||
| pass # Python < 2.2 doesn't have 'property'. | ||
@@ -55,31 +23,2 @@ try: | ||
| def _swig_setattr_nondynamic(self, class_type, name, value, static=1): | ||
| if (name == "thisown"): | ||
| return self.this.own(value) | ||
| if (name == "this"): | ||
| if type(value).__name__ == 'SwigPyObject': | ||
| self.__dict__[name] = value | ||
| return | ||
| method = class_type.__swig_setmethods__.get(name, None) | ||
| if method: | ||
| return method(self, value) | ||
| if (not static): | ||
| object.__setattr__(self, name, value) | ||
| else: | ||
| raise AttributeError("You cannot add attributes to %s" % self) | ||
| def _swig_setattr(self, class_type, name, value): | ||
| return _swig_setattr_nondynamic(self, class_type, name, value, 0) | ||
| def _swig_getattr(self, class_type, name): | ||
| if (name == "thisown"): | ||
| return self.this.own() | ||
| method = class_type.__swig_getmethods__.get(name, None) | ||
| if method: | ||
| return method(self) | ||
| raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) | ||
| def _swig_repr(self): | ||
@@ -93,142 +32,133 @@ try: | ||
| def _swig_setattr_nondynamic_method(set): | ||
| def set_attr(self, name, value): | ||
| if (name == "thisown"): | ||
| return self.this.own(value) | ||
| if hasattr(self, name) or (name == "this"): | ||
| def _swig_setattr_nondynamic_instance_variable(set): | ||
| def set_instance_attr(self, name, value): | ||
| if name == "thisown": | ||
| self.this.own(value) | ||
| elif name == "this": | ||
| set(self, name, value) | ||
| elif hasattr(self, name) and isinstance(getattr(type(self), name), property): | ||
| set(self, name, value) | ||
| else: | ||
| raise AttributeError("You cannot add attributes to %s" % self) | ||
| return set_attr | ||
| raise AttributeError("You cannot add instance attributes to %s" % self) | ||
| return set_instance_attr | ||
| def _swig_setattr_nondynamic_class_variable(set): | ||
| def set_class_attr(cls, name, value): | ||
| if hasattr(cls, name) and not isinstance(getattr(cls, name), property): | ||
| set(cls, name, value) | ||
| else: | ||
| raise AttributeError("You cannot add class attributes to %s" % cls) | ||
| return set_class_attr | ||
| def _swig_add_metaclass(metaclass): | ||
| """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass""" | ||
| def wrapper(cls): | ||
| return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy()) | ||
| return wrapper | ||
| class _SwigNonDynamicMeta(type): | ||
| """Meta class to enforce nondynamic attributes (no new attributes) for a class""" | ||
| __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__) | ||
| def spGetNumAudioDriver(): | ||
| return _spaudio_c.spGetNumAudioDriver() | ||
| spGetNumAudioDriver = _spaudio_c.spGetNumAudioDriver | ||
| def xspGetAudioDriverName(index): | ||
| return _spaudio_c.xspGetAudioDriverName(index) | ||
| xspGetAudioDriverName = _spaudio_c.xspGetAudioDriverName | ||
| def spGetNumAudioDriverDevice(driver_name): | ||
| return _spaudio_c.spGetNumAudioDriverDevice(driver_name) | ||
| spGetNumAudioDriverDevice = _spaudio_c.spGetNumAudioDriverDevice | ||
| def xspGetAudioDriverDeviceName(driver_name, index): | ||
| return _spaudio_c.xspGetAudioDriverDeviceName(driver_name, index) | ||
| xspGetAudioDriverDeviceName = _spaudio_c.xspGetAudioDriverDeviceName | ||
| def spInitAudioDriver(driver_name): | ||
| return _spaudio_c.spInitAudioDriver(driver_name) | ||
| spInitAudioDriver = _spaudio_c.spInitAudioDriver | ||
| def _spFreeAudioDriver(audio): | ||
| return _spaudio_c._spFreeAudioDriver(audio) | ||
| _spFreeAudioDriver = _spaudio_c._spFreeAudioDriver | ||
| def xspGetAudioDeviceName(audio, device_index): | ||
| return _spaudio_c.xspGetAudioDeviceName(audio, device_index) | ||
| xspGetAudioDeviceName = _spaudio_c.xspGetAudioDeviceName | ||
| def spSelectAudioDevice(audio, device_index): | ||
| return _spaudio_c.spSelectAudioDevice(audio, device_index) | ||
| spSelectAudioDevice = _spaudio_c.spSelectAudioDevice | ||
| def spSetAudioSampleRate(audio, samp_rate): | ||
| return _spaudio_c.spSetAudioSampleRate(audio, samp_rate) | ||
| spSetAudioSampleRate = _spaudio_c.spSetAudioSampleRate | ||
| def spSetAudioChannel(audio, num_channel): | ||
| return _spaudio_c.spSetAudioChannel(audio, num_channel) | ||
| spSetAudioChannel = _spaudio_c.spSetAudioChannel | ||
| def spSetAudioBufferSize(audio, buffer_size): | ||
| return _spaudio_c.spSetAudioBufferSize(audio, buffer_size) | ||
| spSetAudioBufferSize = _spaudio_c.spSetAudioBufferSize | ||
| def spSetAudioNumBuffer(audio, num_buffer): | ||
| return _spaudio_c.spSetAudioNumBuffer(audio, num_buffer) | ||
| spSetAudioNumBuffer = _spaudio_c.spSetAudioNumBuffer | ||
| def spSetAudioBlockingMode(audio, block_mode): | ||
| return _spaudio_c.spSetAudioBlockingMode(audio, block_mode) | ||
| spSetAudioBlockingMode = _spaudio_c.spSetAudioBlockingMode | ||
| def spSetAudioSampleBit(audio, samp_bit): | ||
| return _spaudio_c.spSetAudioSampleBit(audio, samp_bit) | ||
| spSetAudioSampleBit = _spaudio_c.spSetAudioSampleBit | ||
| def spGetNumAudioDevice(audio): | ||
| return _spaudio_c.spGetNumAudioDevice(audio) | ||
| spGetNumAudioDevice = _spaudio_c.spGetNumAudioDevice | ||
| def spGetAudioSampleRate(audio): | ||
| return _spaudio_c.spGetAudioSampleRate(audio) | ||
| spGetAudioSampleRate = _spaudio_c.spGetAudioSampleRate | ||
| def spGetAudioChannel(audio): | ||
| return _spaudio_c.spGetAudioChannel(audio) | ||
| spGetAudioChannel = _spaudio_c.spGetAudioChannel | ||
| def spGetAudioBufferSize(audio): | ||
| return _spaudio_c.spGetAudioBufferSize(audio) | ||
| spGetAudioBufferSize = _spaudio_c.spGetAudioBufferSize | ||
| def spGetAudioNumBuffer(audio): | ||
| return _spaudio_c.spGetAudioNumBuffer(audio) | ||
| spGetAudioNumBuffer = _spaudio_c.spGetAudioNumBuffer | ||
| def spGetAudioBlockingMode(audio): | ||
| return _spaudio_c.spGetAudioBlockingMode(audio) | ||
| spGetAudioBlockingMode = _spaudio_c.spGetAudioBlockingMode | ||
| def spGetAudioSampleBit(audio): | ||
| return _spaudio_c.spGetAudioSampleBit(audio) | ||
| spGetAudioSampleBit = _spaudio_c.spGetAudioSampleBit | ||
| def spGetAudioSpecifiedSampleBit(audio): | ||
| return _spaudio_c.spGetAudioSpecifiedSampleBit(audio) | ||
| spGetAudioSpecifiedSampleBit = _spaudio_c.spGetAudioSpecifiedSampleBit | ||
| def spGetAudioOutputPosition(audio, OUTPUT): | ||
| return _spaudio_c.spGetAudioOutputPosition(audio, OUTPUT) | ||
| spGetAudioOutputPosition = _spaudio_c.spGetAudioOutputPosition | ||
| def spOpenAudioDevice(audio, mode): | ||
| return _spaudio_c.spOpenAudioDevice(audio, mode) | ||
| spOpenAudioDevice = _spaudio_c.spOpenAudioDevice | ||
| def spCloseAudioDevice(audio): | ||
| return _spaudio_c.spCloseAudioDevice(audio) | ||
| spCloseAudioDevice = _spaudio_c.spCloseAudioDevice | ||
| def spStopAudio(audio): | ||
| return _spaudio_c.spStopAudio(audio) | ||
| spStopAudio = _spaudio_c.spStopAudio | ||
| def spSyncAudio(audio): | ||
| return _spaudio_c.spSyncAudio(audio) | ||
| spSyncAudio = _spaudio_c.spSyncAudio | ||
| def spWriteAudioBuffer_(audio, buffer, offset_byte, length_byte): | ||
| return _spaudio_c.spWriteAudioBuffer_(audio, buffer, offset_byte, length_byte) | ||
| spWriteAudioBuffer_ = _spaudio_c.spWriteAudioBuffer_ | ||
| def spWriteAudioDoubleBufferWeighted_(audio, buffer, weight, offset, length): | ||
| return _spaudio_c.spWriteAudioDoubleBufferWeighted_(audio, buffer, weight, offset, length) | ||
| spWriteAudioDoubleBufferWeighted_ = _spaudio_c.spWriteAudioDoubleBufferWeighted_ | ||
| def spReadAudioBuffer_(audio, buffer, offset_byte, length_byte): | ||
| return _spaudio_c.spReadAudioBuffer_(audio, buffer, offset_byte, length_byte) | ||
| spReadAudioBuffer_ = _spaudio_c.spReadAudioBuffer_ | ||
| def spReadAudioDoubleBufferWeighted_(audio, buffer, weight, offset, length): | ||
| return _spaudio_c.spReadAudioDoubleBufferWeighted_(audio, buffer, weight, offset, length) | ||
| spReadAudioDoubleBufferWeighted_ = _spaudio_c.spReadAudioDoubleBufferWeighted_ | ||
| def spSetAudioCallbackFunc_(audio, call_type, obj): | ||
| return _spaudio_c.spSetAudioCallbackFunc_(audio, call_type, obj) | ||
| spSetAudioCallbackFunc_ = _spaudio_c.spSetAudioCallbackFunc_ | ||
+70
-142
| # This file was automatically generated by SWIG (http://www.swig.org). | ||
| # Version 3.0.12 | ||
| # Version 4.0.2 | ||
| # | ||
@@ -8,41 +8,12 @@ # Do not make changes to this file unless you know what you are doing--modify | ||
| from sys import version_info as _swig_python_version_info | ||
| if _swig_python_version_info >= (2, 7, 0): | ||
| def swig_import_helper(): | ||
| import importlib | ||
| pkg = __name__.rpartition('.')[0] | ||
| mname = '.'.join((pkg, '_spplugin_c')).lstrip('.') | ||
| try: | ||
| return importlib.import_module(mname) | ||
| except ImportError: | ||
| return importlib.import_module('_spplugin_c') | ||
| _spplugin_c = swig_import_helper() | ||
| del swig_import_helper | ||
| elif _swig_python_version_info >= (2, 6, 0): | ||
| def swig_import_helper(): | ||
| from os.path import dirname | ||
| import imp | ||
| fp = None | ||
| try: | ||
| fp, pathname, description = imp.find_module('_spplugin_c', [dirname(__file__)]) | ||
| except ImportError: | ||
| import _spplugin_c | ||
| return _spplugin_c | ||
| try: | ||
| _mod = imp.load_module('_spplugin_c', fp, pathname, description) | ||
| finally: | ||
| if fp is not None: | ||
| fp.close() | ||
| return _mod | ||
| _spplugin_c = swig_import_helper() | ||
| del swig_import_helper | ||
| if _swig_python_version_info < (2, 7, 0): | ||
| raise RuntimeError("Python 2.7 or later required") | ||
| # Import the low-level C/C++ module | ||
| if __package__ or "." in __name__: | ||
| from . import _spplugin_c | ||
| else: | ||
| import _spplugin_c | ||
| del _swig_python_version_info | ||
| try: | ||
| _swig_property = property | ||
| except NameError: | ||
| pass # Python < 2.2 doesn't have 'property'. | ||
| try: | ||
| import builtins as __builtin__ | ||
@@ -52,31 +23,2 @@ except ImportError: | ||
| def _swig_setattr_nondynamic(self, class_type, name, value, static=1): | ||
| if (name == "thisown"): | ||
| return self.this.own(value) | ||
| if (name == "this"): | ||
| if type(value).__name__ == 'SwigPyObject': | ||
| self.__dict__[name] = value | ||
| return | ||
| method = class_type.__swig_setmethods__.get(name, None) | ||
| if method: | ||
| return method(self, value) | ||
| if (not static): | ||
| object.__setattr__(self, name, value) | ||
| else: | ||
| raise AttributeError("You cannot add attributes to %s" % self) | ||
| def _swig_setattr(self, class_type, name, value): | ||
| return _swig_setattr_nondynamic(self, class_type, name, value, 0) | ||
| def _swig_getattr(self, class_type, name): | ||
| if (name == "thisown"): | ||
| return self.this.own() | ||
| method = class_type.__swig_getmethods__.get(name, None) | ||
| if method: | ||
| return method(self) | ||
| raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) | ||
| def _swig_repr(self): | ||
@@ -90,13 +32,36 @@ try: | ||
| def _swig_setattr_nondynamic_method(set): | ||
| def set_attr(self, name, value): | ||
| if (name == "thisown"): | ||
| return self.this.own(value) | ||
| if hasattr(self, name) or (name == "this"): | ||
| def _swig_setattr_nondynamic_instance_variable(set): | ||
| def set_instance_attr(self, name, value): | ||
| if name == "thisown": | ||
| self.this.own(value) | ||
| elif name == "this": | ||
| set(self, name, value) | ||
| elif hasattr(self, name) and isinstance(getattr(type(self), name), property): | ||
| set(self, name, value) | ||
| else: | ||
| raise AttributeError("You cannot add attributes to %s" % self) | ||
| return set_attr | ||
| raise AttributeError("You cannot add instance attributes to %s" % self) | ||
| return set_instance_attr | ||
| def _swig_setattr_nondynamic_class_variable(set): | ||
| def set_class_attr(cls, name, value): | ||
| if hasattr(cls, name) and not isinstance(getattr(cls, name), property): | ||
| set(cls, name, value) | ||
| else: | ||
| raise AttributeError("You cannot add class attributes to %s" % cls) | ||
| return set_class_attr | ||
| def _swig_add_metaclass(metaclass): | ||
| """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass""" | ||
| def wrapper(cls): | ||
| return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy()) | ||
| return wrapper | ||
| class _SwigNonDynamicMeta(type): | ||
| """Meta class to enforce nondynamic attributes (no new attributes) for a class""" | ||
| __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__) | ||
| SP_PLUGIN_CR_NONE = _spplugin_c.SP_PLUGIN_CR_NONE | ||
@@ -112,171 +77,134 @@ SP_PLUGIN_CR_ERROR = _spplugin_c.SP_PLUGIN_CR_ERROR | ||
| class spWaveInfo(object): | ||
| thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') | ||
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") | ||
| __repr__ = _swig_repr | ||
| file_type = _swig_property(_spplugin_c.spWaveInfo_file_type_get, _spplugin_c.spWaveInfo_file_type_set) | ||
| file_desc = _swig_property(_spplugin_c.spWaveInfo_file_desc_get, _spplugin_c.spWaveInfo_file_desc_set) | ||
| file_filter = _swig_property(_spplugin_c.spWaveInfo_file_filter_get, _spplugin_c.spWaveInfo_file_filter_set) | ||
| buffer_size = _swig_property(_spplugin_c.spWaveInfo_buffer_size_get, _spplugin_c.spWaveInfo_buffer_size_set) | ||
| header_size = _swig_property(_spplugin_c.spWaveInfo_header_size_get, _spplugin_c.spWaveInfo_header_size_set) | ||
| samp_bit = _swig_property(_spplugin_c.spWaveInfo_samp_bit_get, _spplugin_c.spWaveInfo_samp_bit_set) | ||
| num_channel = _swig_property(_spplugin_c.spWaveInfo_num_channel_get, _spplugin_c.spWaveInfo_num_channel_set) | ||
| samp_rate = _swig_property(_spplugin_c.spWaveInfo_samp_rate_get, _spplugin_c.spWaveInfo_samp_rate_set) | ||
| bit_rate = _swig_property(_spplugin_c.spWaveInfo_bit_rate_get, _spplugin_c.spWaveInfo_bit_rate_set) | ||
| length = _swig_property(_spplugin_c.spWaveInfo_length_get, _spplugin_c.spWaveInfo_length_set) | ||
| file_type = property(_spplugin_c.spWaveInfo_file_type_get, _spplugin_c.spWaveInfo_file_type_set) | ||
| file_desc = property(_spplugin_c.spWaveInfo_file_desc_get, _spplugin_c.spWaveInfo_file_desc_set) | ||
| file_filter = property(_spplugin_c.spWaveInfo_file_filter_get, _spplugin_c.spWaveInfo_file_filter_set) | ||
| buffer_size = property(_spplugin_c.spWaveInfo_buffer_size_get, _spplugin_c.spWaveInfo_buffer_size_set) | ||
| header_size = property(_spplugin_c.spWaveInfo_header_size_get, _spplugin_c.spWaveInfo_header_size_set) | ||
| samp_bit = property(_spplugin_c.spWaveInfo_samp_bit_get, _spplugin_c.spWaveInfo_samp_bit_set) | ||
| num_channel = property(_spplugin_c.spWaveInfo_num_channel_get, _spplugin_c.spWaveInfo_num_channel_set) | ||
| samp_rate = property(_spplugin_c.spWaveInfo_samp_rate_get, _spplugin_c.spWaveInfo_samp_rate_set) | ||
| bit_rate = property(_spplugin_c.spWaveInfo_bit_rate_get, _spplugin_c.spWaveInfo_bit_rate_set) | ||
| length = property(_spplugin_c.spWaveInfo_length_get, _spplugin_c.spWaveInfo_length_set) | ||
| def __init__(self): | ||
| this = _spplugin_c.new_spWaveInfo() | ||
| try: | ||
| self.this.append(this) | ||
| except __builtin__.Exception: | ||
| self.this = this | ||
| _spplugin_c.spWaveInfo_swiginit(self, _spplugin_c.new_spWaveInfo()) | ||
| __swig_destroy__ = _spplugin_c.delete_spWaveInfo | ||
| __del__ = lambda self: None | ||
| spWaveInfo_swigregister = _spplugin_c.spWaveInfo_swigregister | ||
| spWaveInfo_swigregister(spWaveInfo) | ||
| # Register spWaveInfo in _spplugin_c: | ||
| _spplugin_c.spWaveInfo_swigregister(spWaveInfo) | ||
| class spSongInfo(object): | ||
| thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') | ||
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") | ||
| __repr__ = _swig_repr | ||
| info_mask = _swig_property(_spplugin_c.spSongInfo_info_mask_get, _spplugin_c.spSongInfo_info_mask_set) | ||
| track = _swig_property(_spplugin_c.spSongInfo_track_get, _spplugin_c.spSongInfo_track_set) | ||
| title = _swig_property(_spplugin_c.spSongInfo_title_get, _spplugin_c.spSongInfo_title_set) | ||
| artist = _swig_property(_spplugin_c.spSongInfo_artist_get, _spplugin_c.spSongInfo_artist_set) | ||
| album = _swig_property(_spplugin_c.spSongInfo_album_get, _spplugin_c.spSongInfo_album_set) | ||
| genre = _swig_property(_spplugin_c.spSongInfo_genre_get, _spplugin_c.spSongInfo_genre_set) | ||
| release = _swig_property(_spplugin_c.spSongInfo_release_get, _spplugin_c.spSongInfo_release_set) | ||
| copyright = _swig_property(_spplugin_c.spSongInfo_copyright_get, _spplugin_c.spSongInfo_copyright_set) | ||
| engineer = _swig_property(_spplugin_c.spSongInfo_engineer_get, _spplugin_c.spSongInfo_engineer_set) | ||
| source = _swig_property(_spplugin_c.spSongInfo_source_get, _spplugin_c.spSongInfo_source_set) | ||
| software = _swig_property(_spplugin_c.spSongInfo_software_get, _spplugin_c.spSongInfo_software_set) | ||
| subject = _swig_property(_spplugin_c.spSongInfo_subject_get, _spplugin_c.spSongInfo_subject_set) | ||
| comment = _swig_property(_spplugin_c.spSongInfo_comment_get, _spplugin_c.spSongInfo_comment_set) | ||
| info_mask = property(_spplugin_c.spSongInfo_info_mask_get, _spplugin_c.spSongInfo_info_mask_set) | ||
| track = property(_spplugin_c.spSongInfo_track_get, _spplugin_c.spSongInfo_track_set) | ||
| title = property(_spplugin_c.spSongInfo_title_get, _spplugin_c.spSongInfo_title_set) | ||
| artist = property(_spplugin_c.spSongInfo_artist_get, _spplugin_c.spSongInfo_artist_set) | ||
| album = property(_spplugin_c.spSongInfo_album_get, _spplugin_c.spSongInfo_album_set) | ||
| genre = property(_spplugin_c.spSongInfo_genre_get, _spplugin_c.spSongInfo_genre_set) | ||
| release = property(_spplugin_c.spSongInfo_release_get, _spplugin_c.spSongInfo_release_set) | ||
| copyright = property(_spplugin_c.spSongInfo_copyright_get, _spplugin_c.spSongInfo_copyright_set) | ||
| engineer = property(_spplugin_c.spSongInfo_engineer_get, _spplugin_c.spSongInfo_engineer_set) | ||
| source = property(_spplugin_c.spSongInfo_source_get, _spplugin_c.spSongInfo_source_set) | ||
| software = property(_spplugin_c.spSongInfo_software_get, _spplugin_c.spSongInfo_software_set) | ||
| subject = property(_spplugin_c.spSongInfo_subject_get, _spplugin_c.spSongInfo_subject_set) | ||
| comment = property(_spplugin_c.spSongInfo_comment_get, _spplugin_c.spSongInfo_comment_set) | ||
| def __init__(self): | ||
| this = _spplugin_c.new_spSongInfo() | ||
| try: | ||
| self.this.append(this) | ||
| except __builtin__.Exception: | ||
| self.this = this | ||
| _spplugin_c.spSongInfo_swiginit(self, _spplugin_c.new_spSongInfo()) | ||
| __swig_destroy__ = _spplugin_c.delete_spSongInfo | ||
| __del__ = lambda self: None | ||
| spSongInfo_swigregister = _spplugin_c.spSongInfo_swigregister | ||
| spSongInfo_swigregister(spSongInfo) | ||
| # Register spSongInfo in _spplugin_c: | ||
| _spplugin_c.spSongInfo_swigregister(spSongInfo) | ||
| def xspGetSongInfoStringField_(song_info, key): | ||
| return _spplugin_c.xspGetSongInfoStringField_(song_info, key) | ||
| xspGetSongInfoStringField_ = _spplugin_c.xspGetSongInfoStringField_ | ||
| def xspGetWaveInfoStringField_(wave_info, index): | ||
| return _spplugin_c.xspGetWaveInfoStringField_(wave_info, index) | ||
| xspGetWaveInfoStringField_ = _spplugin_c.xspGetWaveInfoStringField_ | ||
| def spGetDefaultDir(): | ||
| return _spplugin_c.spGetDefaultDir() | ||
| spGetDefaultDir = _spplugin_c.spGetDefaultDir | ||
| def spInitWaveInfo(wave_info): | ||
| return _spplugin_c.spInitWaveInfo(wave_info) | ||
| spInitWaveInfo = _spplugin_c.spInitWaveInfo | ||
| def spInitSongInfo(song_info): | ||
| return _spplugin_c.spInitSongInfo(song_info) | ||
| spInitSongInfo = _spplugin_c.spInitSongInfo | ||
| def spSetPluginSearchPath(pathlist): | ||
| return _spplugin_c.spSetPluginSearchPath(pathlist) | ||
| spSetPluginSearchPath = _spplugin_c.spSetPluginSearchPath | ||
| def spAppendPluginSearchPath(pathlist): | ||
| return _spplugin_c.spAppendPluginSearchPath(pathlist) | ||
| spAppendPluginSearchPath = _spplugin_c.spAppendPluginSearchPath | ||
| def spSearchPluginFile(index): | ||
| return _spplugin_c.spSearchPluginFile(index) | ||
| spSearchPluginFile = _spplugin_c.spSearchPluginFile | ||
| def spLoadPlugin(plugin_name): | ||
| return _spplugin_c.spLoadPlugin(plugin_name) | ||
| spLoadPlugin = _spplugin_c.spLoadPlugin | ||
| def spFreePlugin(plugin): | ||
| return _spplugin_c.spFreePlugin(plugin) | ||
| spFreePlugin = _spplugin_c.spFreePlugin | ||
| def spGetPluginName(plugin): | ||
| return _spplugin_c.spGetPluginName(plugin) | ||
| spGetPluginName = _spplugin_c.spGetPluginName | ||
| def spGetPluginId(plugin): | ||
| return _spplugin_c.spGetPluginId(plugin) | ||
| spGetPluginId = _spplugin_c.spGetPluginId | ||
| def spGetPluginDescription(plugin): | ||
| return _spplugin_c.spGetPluginDescription(plugin) | ||
| spGetPluginDescription = _spplugin_c.spGetPluginDescription | ||
| def spGetPluginInformation(plugin): | ||
| return _spplugin_c.spGetPluginInformation(plugin) | ||
| spGetPluginInformation = _spplugin_c.spGetPluginInformation | ||
| def spGetPluginVersionId(plugin): | ||
| return _spplugin_c.spGetPluginVersionId(plugin) | ||
| spGetPluginVersionId = _spplugin_c.spGetPluginVersionId | ||
| def spGetPluginVersion(plugin): | ||
| return _spplugin_c.spGetPluginVersion(plugin) | ||
| spGetPluginVersion = _spplugin_c.spGetPluginVersion | ||
| def spOpenFilePluginAuto_(plugin_name, filename, mode, device_type, wave_info, song_info): | ||
| return _spplugin_c.spOpenFilePluginAuto_(plugin_name, filename, mode, device_type, wave_info, song_info) | ||
| spOpenFilePluginAuto_ = _spplugin_c.spOpenFilePluginAuto_ | ||
| def spCloseFilePlugin(plugin): | ||
| return _spplugin_c.spCloseFilePlugin(plugin) | ||
| spCloseFilePlugin = _spplugin_c.spCloseFilePlugin | ||
| def spSeekPlugin(plugin, pos): | ||
| return _spplugin_c.spSeekPlugin(plugin, pos) | ||
| spSeekPlugin = _spplugin_c.spSeekPlugin | ||
| def spIsSongInfoNumberFieldKey_(key): | ||
| return _spplugin_c.spIsSongInfoNumberFieldKey_(key) | ||
| spIsSongInfoNumberFieldKey_ = _spplugin_c.spIsSongInfoNumberFieldKey_ | ||
| def spGetSongInfoNumberField_(song_info, key): | ||
| return _spplugin_c.spGetSongInfoNumberField_(song_info, key) | ||
| spGetSongInfoNumberField_ = _spplugin_c.spGetSongInfoNumberField_ | ||
| def spUpdateSongInfoNumberField_(song_info, key, value): | ||
| return _spplugin_c.spUpdateSongInfoNumberField_(song_info, key, value) | ||
| spUpdateSongInfoNumberField_ = _spplugin_c.spUpdateSongInfoNumberField_ | ||
| def spUpdateSongInfoStringField_(song_info, key, value): | ||
| return _spplugin_c.spUpdateSongInfoStringField_(song_info, key, value) | ||
| spUpdateSongInfoStringField_ = _spplugin_c.spUpdateSongInfoStringField_ | ||
| def spSetWaveInfoFileType_(wave_info, file_type): | ||
| return _spplugin_c.spSetWaveInfoFileType_(wave_info, file_type) | ||
| spSetWaveInfoFileType_ = _spplugin_c.spSetWaveInfoFileType_ | ||
| def spWritePluginInByte_(plugin, buffer, offset_byte, length_byte): | ||
| return _spplugin_c.spWritePluginInByte_(plugin, buffer, offset_byte, length_byte) | ||
| spWritePluginInByte_ = _spplugin_c.spWritePluginInByte_ | ||
| def spWritePluginDoubleWeighted_(plugin, buffer, weight, offset, length): | ||
| return _spplugin_c.spWritePluginDoubleWeighted_(plugin, buffer, weight, offset, length) | ||
| spWritePluginDoubleWeighted_ = _spplugin_c.spWritePluginDoubleWeighted_ | ||
| def spReadPluginInByte_(plugin, buffer, offset_byte, length_byte): | ||
| return _spplugin_c.spReadPluginInByte_(plugin, buffer, offset_byte, length_byte) | ||
| spReadPluginInByte_ = _spplugin_c.spReadPluginInByte_ | ||
| def spReadPluginDoubleWeighted_(plugin, buffer, weight, offset, length): | ||
| return _spplugin_c.spReadPluginDoubleWeighted_(plugin, buffer, weight, offset, length) | ||
| spReadPluginDoubleWeighted_ = _spplugin_c.spReadPluginDoubleWeighted_ | ||
| def spCopyBuffer_(dest_buffer, dest_samp_byte, dest_big_endian_or_signed8bit, src_buffer, src_samp_byte, src_big_endian_or_signed8bit, mult2432): | ||
| return _spplugin_c.spCopyBuffer_(dest_buffer, dest_samp_byte, dest_big_endian_or_signed8bit, src_buffer, src_samp_byte, src_big_endian_or_signed8bit, mult2432) | ||
| spCopyBuffer_ = _spplugin_c.spCopyBuffer_ | ||
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-aiff</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-alac</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-caf</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-flac</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-monkey</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18B75</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-mpeg</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10B61</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18B71</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1010</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10B61</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-nist</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-ogg</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-raw</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-sndfile</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-text</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.input-wav</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-aiff</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-alac</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-caf</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-flac</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-monkey</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-ogg</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-raw</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-sndfile</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-text</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
@@ -6,3 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18E226</string> | ||
| <string>23F79</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
@@ -13,3 +13,3 @@ <string>English</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <string>com.splibs.spplugin.output-wav</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
@@ -34,14 +34,18 @@ <string>6.0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10E125</string> | ||
| <string></string> | ||
| <key>DTPlatformName</key> | ||
| <string>macosx</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <string>14.4</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18E219</string> | ||
| <string>23E208</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <string>macosx14.4</string> | ||
| <key>DTXcode</key> | ||
| <string>1020</string> | ||
| <string>1530</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10E125</string> | ||
| <string>15E204a</string> | ||
| <key>LSMinimumSystemVersion</key> | ||
| <string>10.14</string> | ||
| </dict> | ||
| </plist> |
+1
-1
@@ -57,3 +57,3 @@ #!/usr/bin/env python3 | ||
| project = 'spAudio' | ||
| copyright = '2017-2019 Hideki Banno' | ||
| copyright = '2017-2024 Hideki Banno' | ||
| author = 'Hideki Banno' | ||
@@ -60,0 +60,0 @@ |
@@ -1,36 +0,19 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="en" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>Overview: module code — spAudio documentation</title> | ||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="../_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="../_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="../_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="../_static/jquery.js"></script> | ||
| <script type="text/javascript" src="../_static/underscore.js"></script> | ||
| <script type="text/javascript" src="../_static/doctools.js"></script> | ||
| <script type="text/javascript" src="../_static/language_data.js"></script> | ||
| <script type="text/javascript" src="../_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="../_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> | ||
| <script src="../_static/jquery.js"></script> | ||
| <script src="../_static/underscore.js"></script> | ||
| <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="../_static/doctools.js"></script> | ||
| <script src="../_static/js/theme.js"></script> | ||
| <link rel="index" title="Index" href="../genindex.html" /> | ||
@@ -40,28 +23,16 @@ <link rel="search" title="Search" href="../search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="../index.html" class="icon icon-home"> spAudio | ||
| <a href="../index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -71,14 +42,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
@@ -133,4 +94,2 @@ <li class="toctree-l1"><a class="reference internal" href="../main.html">Introduction</a><ul> | ||
| </div> | ||
@@ -140,49 +99,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="../index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="../index.html">Docs</a> »</li> | ||
| <li>Overview: module code</li> | ||
| <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">Overview: module code</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -192,3 +118,3 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <h1>All modules for which code is available</h1> | ||
@@ -200,6 +126,4 @@ <ul><li><a href="spaudio.html">spaudio</a></li> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -209,11 +133,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2019-05-04 11:27:25 PM. | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">Last updated on 2024-06-12 6:26:15 PM. | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -224,24 +148,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+256
-74
@@ -7,3 +7,3 @@ /* | ||
| * | ||
| * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
@@ -19,2 +19,8 @@ * | ||
| div.section::after { | ||
| display: block; | ||
| content: ''; | ||
| clear: left; | ||
| } | ||
| /* -- relbar ---------------------------------------------------------------- */ | ||
@@ -129,3 +135,3 @@ | ||
| ul.search li div.context { | ||
| ul.search li p.context { | ||
| color: #888; | ||
@@ -222,3 +228,3 @@ margin: 2px 0 0 30px; | ||
| div.body { | ||
| min-width: 450px; | ||
| min-width: 360px; | ||
| max-width: 800px; | ||
@@ -238,12 +244,2 @@ } | ||
| a.brackets:before, | ||
| span.brackets > a:before{ | ||
| content: "["; | ||
| } | ||
| a.brackets:after, | ||
| span.brackets > a:after { | ||
| content: "]"; | ||
| } | ||
| h1:hover > a.headerlink, | ||
@@ -279,3 +275,3 @@ h2:hover > a.headerlink, | ||
| img.align-left, .figure.align-left, object.align-left { | ||
| img.align-left, figure.align-left, .figure.align-left, object.align-left { | ||
| clear: left; | ||
@@ -286,3 +282,3 @@ float: left; | ||
| img.align-right, .figure.align-right, object.align-right { | ||
| img.align-right, figure.align-right, .figure.align-right, object.align-right { | ||
| clear: right; | ||
@@ -293,3 +289,3 @@ float: right; | ||
| img.align-center, .figure.align-center, object.align-center { | ||
| img.align-center, figure.align-center, .figure.align-center, object.align-center { | ||
| display: block; | ||
@@ -300,2 +296,8 @@ margin-left: auto; | ||
| img.align-default, figure.align-default, .figure.align-default { | ||
| display: block; | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| .align-left { | ||
@@ -309,2 +311,6 @@ text-align: left; | ||
| .align-default { | ||
| text-align: center; | ||
| } | ||
| .align-right { | ||
@@ -316,9 +322,12 @@ text-align: right; | ||
| div.sidebar { | ||
| div.sidebar, | ||
| aside.sidebar { | ||
| margin: 0 0 0.5em 1em; | ||
| border: 1px solid #ddb; | ||
| padding: 7px 7px 0 7px; | ||
| padding: 7px; | ||
| background-color: #ffe; | ||
| width: 40%; | ||
| float: right; | ||
| clear: right; | ||
| overflow-x: auto; | ||
| } | ||
@@ -329,8 +338,16 @@ | ||
| } | ||
| nav.contents, | ||
| aside.topic, | ||
| div.admonition, div.topic, blockquote { | ||
| clear: left; | ||
| } | ||
| /* -- topics ---------------------------------------------------------------- */ | ||
| nav.contents, | ||
| aside.topic, | ||
| div.topic { | ||
| border: 1px solid #ccc; | ||
| padding: 7px 7px 0 7px; | ||
| padding: 7px; | ||
| margin: 10px 0 10px 0; | ||
@@ -357,6 +374,2 @@ } | ||
| div.admonition dl { | ||
| margin-bottom: 0; | ||
| } | ||
| p.admonition-title { | ||
@@ -372,5 +385,32 @@ margin: 0px 10px 5px 0px; | ||
| /* -- content of sidebars/topics/admonitions -------------------------------- */ | ||
| div.sidebar > :last-child, | ||
| aside.sidebar > :last-child, | ||
| nav.contents > :last-child, | ||
| aside.topic > :last-child, | ||
| div.topic > :last-child, | ||
| div.admonition > :last-child { | ||
| margin-bottom: 0; | ||
| } | ||
| div.sidebar::after, | ||
| aside.sidebar::after, | ||
| nav.contents::after, | ||
| aside.topic::after, | ||
| div.topic::after, | ||
| div.admonition::after, | ||
| blockquote::after { | ||
| display: block; | ||
| content: ''; | ||
| clear: both; | ||
| } | ||
| /* -- tables ---------------------------------------------------------------- */ | ||
| table.docutils { | ||
| margin-top: 10px; | ||
| margin-bottom: 10px; | ||
| border: 0; | ||
@@ -385,2 +425,7 @@ border-collapse: collapse; | ||
| table.align-default { | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| table caption span.caption-number { | ||
@@ -401,6 +446,2 @@ font-style: italic; | ||
| table.footnote td, table.footnote th { | ||
| border: 0 !important; | ||
| } | ||
| th { | ||
@@ -420,9 +461,9 @@ text-align: left; | ||
| th > p:first-child, | ||
| td > p:first-child { | ||
| th > :first-child, | ||
| td > :first-child { | ||
| margin-top: 0px; | ||
| } | ||
| th > p:last-child, | ||
| td > p:last-child { | ||
| th > :last-child, | ||
| td > :last-child { | ||
| margin-bottom: 0px; | ||
@@ -433,3 +474,3 @@ } | ||
| div.figure { | ||
| div.figure, figure { | ||
| margin: 0.5em; | ||
@@ -439,11 +480,13 @@ padding: 0.5em; | ||
| div.figure p.caption { | ||
| div.figure p.caption, figcaption { | ||
| padding: 0.3em; | ||
| } | ||
| div.figure p.caption span.caption-number { | ||
| div.figure p.caption span.caption-number, | ||
| figcaption span.caption-number { | ||
| font-style: italic; | ||
| } | ||
| div.figure p.caption span.caption-text { | ||
| div.figure p.caption span.caption-text, | ||
| figcaption span.caption-text { | ||
| } | ||
@@ -475,2 +518,6 @@ | ||
| table.hlist { | ||
| margin: 1em 0; | ||
| } | ||
| table.hlist td { | ||
@@ -480,3 +527,60 @@ vertical-align: top; | ||
| /* -- object description styles --------------------------------------------- */ | ||
| .sig { | ||
| font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; | ||
| } | ||
| .sig-name, code.descname { | ||
| background-color: transparent; | ||
| font-weight: bold; | ||
| } | ||
| .sig-name { | ||
| font-size: 1.1em; | ||
| } | ||
| code.descname { | ||
| font-size: 1.2em; | ||
| } | ||
| .sig-prename, code.descclassname { | ||
| background-color: transparent; | ||
| } | ||
| .optional { | ||
| font-size: 1.3em; | ||
| } | ||
| .sig-paren { | ||
| font-size: larger; | ||
| } | ||
| .sig-param.n { | ||
| font-style: italic; | ||
| } | ||
| /* C++ specific styling */ | ||
| .sig-inline.c-texpr, | ||
| .sig-inline.cpp-texpr { | ||
| font-family: unset; | ||
| } | ||
| .sig.c .k, .sig.c .kt, | ||
| .sig.cpp .k, .sig.cpp .kt { | ||
| color: #0033B3; | ||
| } | ||
| .sig.c .m, | ||
| .sig.cpp .m { | ||
| color: #1750EB; | ||
| } | ||
| .sig.c .s, .sig.c .sc, | ||
| .sig.cpp .s, .sig.cpp .sc { | ||
| color: #067D17; | ||
| } | ||
| /* -- other body styles ----------------------------------------------------- */ | ||
@@ -504,13 +608,34 @@ | ||
| li > p:first-child { | ||
| :not(li) > ol > li:first-child > :first-child, | ||
| :not(li) > ul > li:first-child > :first-child { | ||
| margin-top: 0px; | ||
| } | ||
| li > p:last-child { | ||
| :not(li) > ol > li:last-child > :last-child, | ||
| :not(li) > ul > li:last-child > :last-child { | ||
| margin-bottom: 0px; | ||
| } | ||
| ol.simple ol p, | ||
| ol.simple ul p, | ||
| ul.simple ol p, | ||
| ul.simple ul p { | ||
| margin-top: 0; | ||
| } | ||
| ol.simple > li:not(:first-child) > p, | ||
| ul.simple > li:not(:first-child) > p { | ||
| margin-top: 0; | ||
| } | ||
| ol.simple p, | ||
| ul.simple p { | ||
| margin-bottom: 0; | ||
| } | ||
| /* Docutils 0.17 and older (footnotes & citations) */ | ||
| dl.footnote > dt, | ||
| dl.citation > dt { | ||
| float: left; | ||
| margin-right: 0.5em; | ||
| } | ||
@@ -529,11 +654,39 @@ | ||
| /* Docutils 0.18+ (footnotes & citations) */ | ||
| aside.footnote > span, | ||
| div.citation > span { | ||
| float: left; | ||
| } | ||
| aside.footnote > span:last-of-type, | ||
| div.citation > span:last-of-type { | ||
| padding-right: 0.5em; | ||
| } | ||
| aside.footnote > p { | ||
| margin-left: 2em; | ||
| } | ||
| div.citation > p { | ||
| margin-left: 4em; | ||
| } | ||
| aside.footnote > p:last-of-type, | ||
| div.citation > p:last-of-type { | ||
| margin-bottom: 0em; | ||
| } | ||
| aside.footnote > p:last-of-type:after, | ||
| div.citation > p:last-of-type:after { | ||
| content: ""; | ||
| clear: both; | ||
| } | ||
| /* Footnotes & citations ends */ | ||
| dl.field-list { | ||
| display: flex; | ||
| flex-wrap: wrap; | ||
| display: grid; | ||
| grid-template-columns: fit-content(30%) auto; | ||
| } | ||
| dl.field-list > dt { | ||
| flex-basis: 20%; | ||
| font-weight: bold; | ||
| word-break: break-word; | ||
| padding-left: 0.5em; | ||
| padding-right: 5px; | ||
| } | ||
@@ -546,4 +699,4 @@ | ||
| dl.field-list > dd { | ||
| flex-basis: 70%; | ||
| padding-left: 1em; | ||
| padding-left: 0.5em; | ||
| margin-top: 0em; | ||
| margin-left: 0em; | ||
@@ -557,3 +710,3 @@ margin-bottom: 0em; | ||
| dd > p:first-child { | ||
| dd > :first-child { | ||
| margin-top: 0px; | ||
@@ -572,2 +725,7 @@ } | ||
| dl > dd:last-child, | ||
| dl > dd:last-child > :last-child { | ||
| margin-bottom: 0; | ||
| } | ||
| dt:target, span.highlighted { | ||
@@ -586,10 +744,2 @@ background-color: #fbe54e; | ||
| .optional { | ||
| font-size: 1.3em; | ||
| } | ||
| .sig-paren { | ||
| font-size: larger; | ||
| } | ||
| .versionmodified { | ||
@@ -635,4 +785,5 @@ font-style: italic; | ||
| font-style: normal; | ||
| margin: 0.5em; | ||
| margin: 0 0.5em; | ||
| content: ":"; | ||
| display: inline-block; | ||
| } | ||
@@ -652,2 +803,6 @@ | ||
| pre, div[class*="highlight-"] { | ||
| clear: both; | ||
| } | ||
| span.pre { | ||
@@ -658,6 +813,10 @@ -moz-hyphens: none; | ||
| hyphens: none; | ||
| white-space: nowrap; | ||
| } | ||
| div[class*="highlight-"] { | ||
| margin: 1em 0; | ||
| } | ||
| td.linenos pre { | ||
| padding: 5px 0px; | ||
| border: 0; | ||
@@ -669,10 +828,42 @@ background-color: transparent; | ||
| table.highlighttable { | ||
| margin-left: 0.5em; | ||
| display: block; | ||
| } | ||
| table.highlighttable tbody { | ||
| display: block; | ||
| } | ||
| table.highlighttable tr { | ||
| display: flex; | ||
| } | ||
| table.highlighttable td { | ||
| padding: 0 0.5em 0 0.5em; | ||
| margin: 0; | ||
| padding: 0; | ||
| } | ||
| table.highlighttable td.linenos { | ||
| padding-right: 0.5em; | ||
| } | ||
| table.highlighttable td.code { | ||
| flex: 1; | ||
| overflow: hidden; | ||
| } | ||
| .highlight .hll { | ||
| display: block; | ||
| } | ||
| div.highlight pre, | ||
| table.highlighttable pre { | ||
| margin: 0; | ||
| } | ||
| div.code-block-caption + div { | ||
| margin-top: 0; | ||
| } | ||
| div.code-block-caption { | ||
| margin-top: 1em; | ||
| padding: 2px 5px; | ||
@@ -686,4 +877,10 @@ font-size: small; | ||
| div.code-block-caption + div > div.highlight > pre { | ||
| margin-top: 0; | ||
| table.highlighttable td.linenos, | ||
| span.linenos, | ||
| div.highlight span.gp { /* gp: Generic.Prompt */ | ||
| user-select: none; | ||
| -webkit-user-select: text; /* Safari fallback only */ | ||
| -webkit-user-select: none; /* Chrome/Safari */ | ||
| -moz-user-select: none; /* Firefox */ | ||
| -ms-user-select: none; /* IE10+ */ | ||
| } | ||
@@ -700,19 +897,5 @@ | ||
| div.literal-block-wrapper { | ||
| padding: 1em 1em 0; | ||
| margin: 1em 0; | ||
| } | ||
| div.literal-block-wrapper div.highlight { | ||
| margin: 0; | ||
| } | ||
| code.descname { | ||
| background-color: transparent; | ||
| font-weight: bold; | ||
| font-size: 1.2em; | ||
| } | ||
| code.descclassname { | ||
| background-color: transparent; | ||
| } | ||
| code.xref, a code { | ||
@@ -756,4 +939,3 @@ background-color: transparent; | ||
| span.eqno a.headerlink { | ||
| position: relative; | ||
| left: 0px; | ||
| position: absolute; | ||
| z-index: 1; | ||
@@ -760,0 +942,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| .fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} | ||
| .clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} |
+198
-248
@@ -5,152 +5,87 @@ /* | ||
| * | ||
| * Sphinx JavaScript utilities for all documentation. | ||
| * Base JavaScript utilities for all Sphinx HTML documentation. | ||
| * | ||
| * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
| * | ||
| */ | ||
| "use strict"; | ||
| /** | ||
| * select a different prefix for underscore | ||
| */ | ||
| $u = _.noConflict(); | ||
| /** | ||
| * make the code below compatible with browsers without | ||
| * an installed firebug like debugger | ||
| if (!window.console || !console.firebug) { | ||
| var names = ["log", "debug", "info", "warn", "error", "assert", "dir", | ||
| "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", | ||
| "profile", "profileEnd"]; | ||
| window.console = {}; | ||
| for (var i = 0; i < names.length; ++i) | ||
| window.console[names[i]] = function() {}; | ||
| } | ||
| */ | ||
| /** | ||
| * small helper function to urldecode strings | ||
| */ | ||
| jQuery.urldecode = function(x) { | ||
| return decodeURIComponent(x).replace(/\+/g, ' '); | ||
| const _ready = (callback) => { | ||
| if (document.readyState !== "loading") { | ||
| callback(); | ||
| } else { | ||
| document.addEventListener("DOMContentLoaded", callback); | ||
| } | ||
| }; | ||
| /** | ||
| * small helper function to urlencode strings | ||
| * highlight a given string on a node by wrapping it in | ||
| * span elements with the given class name. | ||
| */ | ||
| jQuery.urlencode = encodeURIComponent; | ||
| const _highlight = (node, addItems, text, className) => { | ||
| if (node.nodeType === Node.TEXT_NODE) { | ||
| const val = node.nodeValue; | ||
| const parent = node.parentNode; | ||
| const pos = val.toLowerCase().indexOf(text); | ||
| if ( | ||
| pos >= 0 && | ||
| !parent.classList.contains(className) && | ||
| !parent.classList.contains("nohighlight") | ||
| ) { | ||
| let span; | ||
| /** | ||
| * This function returns the parsed url parameters of the | ||
| * current request. Multiple values per key are supported, | ||
| * it will always return arrays of strings for the value parts. | ||
| */ | ||
| jQuery.getQueryParameters = function(s) { | ||
| if (typeof s === 'undefined') | ||
| s = document.location.search; | ||
| var parts = s.substr(s.indexOf('?') + 1).split('&'); | ||
| var result = {}; | ||
| for (var i = 0; i < parts.length; i++) { | ||
| var tmp = parts[i].split('=', 2); | ||
| var key = jQuery.urldecode(tmp[0]); | ||
| var value = jQuery.urldecode(tmp[1]); | ||
| if (key in result) | ||
| result[key].push(value); | ||
| else | ||
| result[key] = [value]; | ||
| } | ||
| return result; | ||
| }; | ||
| const closestNode = parent.closest("body, svg, foreignObject"); | ||
| const isInSVG = closestNode && closestNode.matches("svg"); | ||
| if (isInSVG) { | ||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
| } else { | ||
| span = document.createElement("span"); | ||
| span.classList.add(className); | ||
| } | ||
| /** | ||
| * highlight a given string on a jquery object by wrapping it in | ||
| * span elements with the given class name. | ||
| */ | ||
| jQuery.fn.highlightText = function(text, className) { | ||
| function highlight(node, addItems) { | ||
| if (node.nodeType === 3) { | ||
| var val = node.nodeValue; | ||
| var pos = val.toLowerCase().indexOf(text); | ||
| if (pos >= 0 && | ||
| !jQuery(node.parentNode).hasClass(className) && | ||
| !jQuery(node.parentNode).hasClass("nohighlight")) { | ||
| var span; | ||
| var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); | ||
| if (isInSVG) { | ||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
| } else { | ||
| span = document.createElement("span"); | ||
| span.className = className; | ||
| } | ||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
| node.parentNode.insertBefore(span, node.parentNode.insertBefore( | ||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
| parent.insertBefore( | ||
| span, | ||
| parent.insertBefore( | ||
| document.createTextNode(val.substr(pos + text.length)), | ||
| node.nextSibling)); | ||
| node.nodeValue = val.substr(0, pos); | ||
| if (isInSVG) { | ||
| var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | ||
| var bbox = node.parentElement.getBBox(); | ||
| rect.x.baseVal.value = bbox.x; | ||
| rect.y.baseVal.value = bbox.y; | ||
| rect.width.baseVal.value = bbox.width; | ||
| rect.height.baseVal.value = bbox.height; | ||
| rect.setAttribute('class', className); | ||
| addItems.push({ | ||
| "parent": node.parentNode, | ||
| "target": rect}); | ||
| } | ||
| node.nextSibling | ||
| ) | ||
| ); | ||
| node.nodeValue = val.substr(0, pos); | ||
| if (isInSVG) { | ||
| const rect = document.createElementNS( | ||
| "http://www.w3.org/2000/svg", | ||
| "rect" | ||
| ); | ||
| const bbox = parent.getBBox(); | ||
| rect.x.baseVal.value = bbox.x; | ||
| rect.y.baseVal.value = bbox.y; | ||
| rect.width.baseVal.value = bbox.width; | ||
| rect.height.baseVal.value = bbox.height; | ||
| rect.setAttribute("class", className); | ||
| addItems.push({ parent: parent, target: rect }); | ||
| } | ||
| } | ||
| else if (!jQuery(node).is("button, select, textarea")) { | ||
| jQuery.each(node.childNodes, function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| } | ||
| } else if (node.matches && !node.matches("button, select, textarea")) { | ||
| node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); | ||
| } | ||
| var addItems = []; | ||
| var result = this.each(function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| for (var i = 0; i < addItems.length; ++i) { | ||
| jQuery(addItems[i].parent).before(addItems[i].target); | ||
| } | ||
| return result; | ||
| }; | ||
| const _highlightText = (thisNode, text, className) => { | ||
| let addItems = []; | ||
| _highlight(thisNode, addItems, text, className); | ||
| addItems.forEach((obj) => | ||
| obj.parent.insertAdjacentElement("beforebegin", obj.target) | ||
| ); | ||
| }; | ||
| /* | ||
| * backward compatibility for jQuery.browser | ||
| * This will be supported until firefox bug is fixed. | ||
| */ | ||
| if (!jQuery.browser) { | ||
| jQuery.uaMatch = function(ua) { | ||
| ua = ua.toLowerCase(); | ||
| var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || | ||
| /(webkit)[ \/]([\w.]+)/.exec(ua) || | ||
| /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || | ||
| /(msie) ([\w.]+)/.exec(ua) || | ||
| ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || | ||
| []; | ||
| return { | ||
| browser: match[ 1 ] || "", | ||
| version: match[ 2 ] || "0" | ||
| }; | ||
| }; | ||
| jQuery.browser = {}; | ||
| jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; | ||
| } | ||
| /** | ||
| * Small JavaScript module for the documentation. | ||
| */ | ||
| var Documentation = { | ||
| init : function() { | ||
| this.fixFirefoxAnchorBug(); | ||
| this.highlightSearchWords(); | ||
| this.initIndexTable(); | ||
| if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { | ||
| this.initOnKeyListeners(); | ||
| } | ||
| const Documentation = { | ||
| init: () => { | ||
| Documentation.highlightSearchWords(); | ||
| Documentation.initDomainIndexTable(); | ||
| Documentation.initOnKeyListeners(); | ||
| }, | ||
@@ -161,156 +96,171 @@ | ||
| */ | ||
| TRANSLATIONS : {}, | ||
| PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, | ||
| LOCALE : 'unknown', | ||
| TRANSLATIONS: {}, | ||
| PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), | ||
| LOCALE: "unknown", | ||
| // gettext and ngettext don't access this so that the functions | ||
| // can safely bound to a different name (_ = Documentation.gettext) | ||
| gettext : function(string) { | ||
| var translated = Documentation.TRANSLATIONS[string]; | ||
| if (typeof translated === 'undefined') | ||
| return string; | ||
| return (typeof translated === 'string') ? translated : translated[0]; | ||
| gettext: (string) => { | ||
| const translated = Documentation.TRANSLATIONS[string]; | ||
| switch (typeof translated) { | ||
| case "undefined": | ||
| return string; // no translation | ||
| case "string": | ||
| return translated; // translation exists | ||
| default: | ||
| return translated[0]; // (singular, plural) translation tuple exists | ||
| } | ||
| }, | ||
| ngettext : function(singular, plural, n) { | ||
| var translated = Documentation.TRANSLATIONS[singular]; | ||
| if (typeof translated === 'undefined') | ||
| return (n == 1) ? singular : plural; | ||
| return translated[Documentation.PLURALEXPR(n)]; | ||
| ngettext: (singular, plural, n) => { | ||
| const translated = Documentation.TRANSLATIONS[singular]; | ||
| if (typeof translated !== "undefined") | ||
| return translated[Documentation.PLURAL_EXPR(n)]; | ||
| return n === 1 ? singular : plural; | ||
| }, | ||
| addTranslations : function(catalog) { | ||
| for (var key in catalog.messages) | ||
| this.TRANSLATIONS[key] = catalog.messages[key]; | ||
| this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); | ||
| this.LOCALE = catalog.locale; | ||
| addTranslations: (catalog) => { | ||
| Object.assign(Documentation.TRANSLATIONS, catalog.messages); | ||
| Documentation.PLURAL_EXPR = new Function( | ||
| "n", | ||
| `return (${catalog.plural_expr})` | ||
| ); | ||
| Documentation.LOCALE = catalog.locale; | ||
| }, | ||
| /** | ||
| * add context elements like header anchor links | ||
| * highlight the search words provided in the url in the text | ||
| */ | ||
| addContextElements : function() { | ||
| $('div[id] > :header:first').each(function() { | ||
| $('<a class="headerlink">\u00B6</a>'). | ||
| attr('href', '#' + this.id). | ||
| attr('title', _('Permalink to this headline')). | ||
| appendTo(this); | ||
| }); | ||
| $('dt[id]').each(function() { | ||
| $('<a class="headerlink">\u00B6</a>'). | ||
| attr('href', '#' + this.id). | ||
| attr('title', _('Permalink to this definition')). | ||
| appendTo(this); | ||
| }); | ||
| }, | ||
| highlightSearchWords: () => { | ||
| const highlight = | ||
| new URLSearchParams(window.location.search).get("highlight") || ""; | ||
| const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); | ||
| if (terms.length === 0) return; // nothing to do | ||
| /** | ||
| * workaround a firefox stupidity | ||
| * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 | ||
| */ | ||
| fixFirefoxAnchorBug : function() { | ||
| if (document.location.hash && $.browser.mozilla) | ||
| window.setTimeout(function() { | ||
| document.location.href += ''; | ||
| }, 10); | ||
| }, | ||
| // There should never be more than one element matching "div.body" | ||
| const divBody = document.querySelectorAll("div.body"); | ||
| const body = divBody.length ? divBody[0] : document.querySelector("body"); | ||
| window.setTimeout(() => { | ||
| terms.forEach((term) => _highlightText(body, term, "highlighted")); | ||
| }, 10); | ||
| /** | ||
| * highlight the search words provided in the url in the text | ||
| */ | ||
| highlightSearchWords : function() { | ||
| var params = $.getQueryParameters(); | ||
| var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; | ||
| if (terms.length) { | ||
| var body = $('div.body'); | ||
| if (!body.length) { | ||
| body = $('body'); | ||
| } | ||
| window.setTimeout(function() { | ||
| $.each(terms, function() { | ||
| body.highlightText(this.toLowerCase(), 'highlighted'); | ||
| }); | ||
| }, 10); | ||
| $('<p class="highlight-link"><a href="javascript:Documentation.' + | ||
| 'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>') | ||
| .appendTo($('#searchbox')); | ||
| } | ||
| const searchBox = document.getElementById("searchbox"); | ||
| if (searchBox === null) return; | ||
| searchBox.appendChild( | ||
| document | ||
| .createRange() | ||
| .createContextualFragment( | ||
| '<p class="highlight-link">' + | ||
| '<a href="javascript:Documentation.hideSearchWords()">' + | ||
| Documentation.gettext("Hide Search Matches") + | ||
| "</a></p>" | ||
| ) | ||
| ); | ||
| }, | ||
| /** | ||
| * init the domain index toggle buttons | ||
| * helper function to hide the search marks again | ||
| */ | ||
| initIndexTable : function() { | ||
| var togglers = $('img.toggler').click(function() { | ||
| var src = $(this).attr('src'); | ||
| var idnum = $(this).attr('id').substr(7); | ||
| $('tr.cg-' + idnum).toggle(); | ||
| if (src.substr(-9) === 'minus.png') | ||
| $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); | ||
| else | ||
| $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); | ||
| }).css('display', ''); | ||
| if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { | ||
| togglers.click(); | ||
| } | ||
| hideSearchWords: () => { | ||
| document | ||
| .querySelectorAll("#searchbox .highlight-link") | ||
| .forEach((el) => el.remove()); | ||
| document | ||
| .querySelectorAll("span.highlighted") | ||
| .forEach((el) => el.classList.remove("highlighted")); | ||
| const url = new URL(window.location); | ||
| url.searchParams.delete("highlight"); | ||
| window.history.replaceState({}, "", url); | ||
| }, | ||
| /** | ||
| * helper function to hide the search marks again | ||
| * helper function to focus on search bar | ||
| */ | ||
| hideSearchWords : function() { | ||
| $('#searchbox .highlight-link').fadeOut(300); | ||
| $('span.highlighted').removeClass('highlighted'); | ||
| focusSearchBar: () => { | ||
| document.querySelectorAll("input[name=q]")[0]?.focus(); | ||
| }, | ||
| /** | ||
| * make the url absolute | ||
| * Initialise the domain index toggle buttons | ||
| */ | ||
| makeURL : function(relativeURL) { | ||
| return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; | ||
| }, | ||
| initDomainIndexTable: () => { | ||
| const toggler = (el) => { | ||
| const idNumber = el.id.substr(7); | ||
| const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); | ||
| if (el.src.substr(-9) === "minus.png") { | ||
| el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; | ||
| toggledRows.forEach((el) => (el.style.display = "none")); | ||
| } else { | ||
| el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; | ||
| toggledRows.forEach((el) => (el.style.display = "")); | ||
| } | ||
| }; | ||
| /** | ||
| * get the current relative url | ||
| */ | ||
| getCurrentURL : function() { | ||
| var path = document.location.pathname; | ||
| var parts = path.split(/\//); | ||
| $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { | ||
| if (this === '..') | ||
| parts.pop(); | ||
| }); | ||
| var url = parts.join('/'); | ||
| return path.substring(url.lastIndexOf('/') + 1, path.length - 1); | ||
| const togglerElements = document.querySelectorAll("img.toggler"); | ||
| togglerElements.forEach((el) => | ||
| el.addEventListener("click", (event) => toggler(event.currentTarget)) | ||
| ); | ||
| togglerElements.forEach((el) => (el.style.display = "")); | ||
| if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); | ||
| }, | ||
| initOnKeyListeners: function() { | ||
| $(document).keyup(function(event) { | ||
| var activeElementType = document.activeElement.tagName; | ||
| // don't navigate when in search box or textarea | ||
| if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { | ||
| switch (event.keyCode) { | ||
| case 37: // left | ||
| var prevHref = $('link[rel="prev"]').prop('href'); | ||
| if (prevHref) { | ||
| window.location.href = prevHref; | ||
| return false; | ||
| initOnKeyListeners: () => { | ||
| // only install a listener if it is really needed | ||
| if ( | ||
| !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && | ||
| !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS | ||
| ) | ||
| return; | ||
| const blacklistedElements = new Set([ | ||
| "TEXTAREA", | ||
| "INPUT", | ||
| "SELECT", | ||
| "BUTTON", | ||
| ]); | ||
| document.addEventListener("keydown", (event) => { | ||
| if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements | ||
| if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys | ||
| if (!event.shiftKey) { | ||
| switch (event.key) { | ||
| case "ArrowLeft": | ||
| if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; | ||
| const prevLink = document.querySelector('link[rel="prev"]'); | ||
| if (prevLink && prevLink.href) { | ||
| window.location.href = prevLink.href; | ||
| event.preventDefault(); | ||
| } | ||
| case 39: // right | ||
| var nextHref = $('link[rel="next"]').prop('href'); | ||
| if (nextHref) { | ||
| window.location.href = nextHref; | ||
| return false; | ||
| break; | ||
| case "ArrowRight": | ||
| if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; | ||
| const nextLink = document.querySelector('link[rel="next"]'); | ||
| if (nextLink && nextLink.href) { | ||
| window.location.href = nextLink.href; | ||
| event.preventDefault(); | ||
| } | ||
| break; | ||
| case "Escape": | ||
| if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; | ||
| Documentation.hideSearchWords(); | ||
| event.preventDefault(); | ||
| } | ||
| } | ||
| // some keyboard layouts may need Shift to get / | ||
| switch (event.key) { | ||
| case "/": | ||
| if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; | ||
| Documentation.focusSearchBar(); | ||
| event.preventDefault(); | ||
| } | ||
| }); | ||
| } | ||
| }, | ||
| }; | ||
| // quick alias for translations | ||
| _ = Documentation.gettext; | ||
| const _ = Documentation.gettext; | ||
| $(document).ready(function() { | ||
| Documentation.init(); | ||
| }); | ||
| _ready(Documentation.init); |
@@ -6,6 +6,10 @@ var DOCUMENTATION_OPTIONS = { | ||
| COLLAPSE_INDEX: false, | ||
| BUILDER: 'html', | ||
| FILE_SUFFIX: '.html', | ||
| LINK_SUFFIX: '.html', | ||
| HAS_SOURCE: false, | ||
| SOURCELINK_SUFFIX: '.txt', | ||
| NAVIGATION_WITH_KEYS: false | ||
| NAVIGATION_WITH_KEYS: false, | ||
| SHOW_SEARCH_SUMMARY: true, | ||
| ENABLE_SEARCH_SHORTCUTS: false, | ||
| }; |
@@ -1,3 +0,1 @@ | ||
| /* sphinx_rtd_theme version 0.4.3 | MIT license */ | ||
| /* Built 20190212 16:02 */ | ||
| require=function r(s,a,l){function c(e,n){if(!a[e]){if(!s[e]){var i="function"==typeof require&&require;if(!n&&i)return i(e,!0);if(u)return u(e,!0);var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=a[e]={exports:{}};s[e][0].call(o.exports,function(n){return c(s[e][1][n]||n)},o,o.exports,r,s,a,l)}return a[e].exports}for(var u="function"==typeof require&&require,n=0;n<l.length;n++)c(l[n]);return c}({"sphinx-rtd-theme":[function(n,e,i){var jQuery="undefined"!=typeof window?window.jQuery:n("jquery");e.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(e){var i=this;void 0===e&&(e=!0),i.isRunning||(i.isRunning=!0,jQuery(function(n){i.init(n),i.reset(),i.win.on("hashchange",i.reset),e&&i.win.on("scroll",function(){i.linkScroll||i.winScroll||(i.winScroll=!0,requestAnimationFrame(function(){i.onScroll()}))}),i.win.on("resize",function(){i.winResize||(i.winResize=!0,requestAnimationFrame(function(){i.onResize()}))}),i.onResize()}))},enableSticky:function(){this.enable(!0)},init:function(i){i(document);var t=this;this.navBar=i("div.wy-side-scroll:first"),this.win=i(window),i(document).on("click","[data-toggle='wy-nav-top']",function(){i("[data-toggle='wy-nav-shift']").toggleClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift")}).on("click",".wy-menu-vertical .current ul li a",function(){var n=i(this);i("[data-toggle='wy-nav-shift']").removeClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift"),t.toggleCurrent(n),t.hashChange()}).on("click","[data-toggle='rst-current-version']",function(){i("[data-toggle='rst-versions']").toggleClass("shift-up")}),i("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),i("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),i("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),i(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var e=i(this);expand=i('<span class="toctree-expand"></span>'),expand.on("click",function(n){return t.toggleCurrent(e),n.stopPropagation(),!1}),e.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}0<i.length&&($(".wy-menu-vertical .current").removeClass("current"),i.addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l1").parent().addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l2").addClass("current"),i.closest("li.toctree-l3").addClass("current"),i.closest("li.toctree-l4").addClass("current"),i[0].scrollIntoView())}catch(o){console.log("Error expanding nav for anchor",o)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,i=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var r=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,e){var i=(new Date).getTime(),t=Math.max(0,16-(i-r)),o=window.setTimeout(function(){n(i+t)},t);return r=i+t,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()},{jquery:"jquery"}]},{},["sphinx-rtd-theme"]); | ||
| !function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),n("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),n("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n('<button class="toctree-expand" title="Open/close menu"></button>'),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[t]+"CancelAnimationFrame"]||window[e[t]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var i=(new Date).getTime(),o=Math.max(0,16-(i-n)),r=window.setTimeout((function(){e(i+o)}),o);return n=i+o,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()}).call(window)},function(n,e){n.exports=jQuery},function(n,e,t){}]); |
@@ -8,3 +8,3 @@ /* | ||
| * | ||
| * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
@@ -14,6 +14,7 @@ * | ||
| var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]; | ||
| var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; | ||
| /* Non-minified version JS is _stemmer.js if file is provided */ | ||
| /* Non-minified version is copied as a separate JS file, is available */ | ||
| /** | ||
@@ -201,100 +202,1 @@ * Porter Stemmer | ||
| var splitChars = (function() { | ||
| var result = {}; | ||
| var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, | ||
| 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, | ||
| 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, | ||
| 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, | ||
| 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, | ||
| 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, | ||
| 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, | ||
| 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, | ||
| 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, | ||
| 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; | ||
| var i, j, start, end; | ||
| for (i = 0; i < singles.length; i++) { | ||
| result[singles[i]] = true; | ||
| } | ||
| var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], | ||
| [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], | ||
| [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], | ||
| [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], | ||
| [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], | ||
| [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], | ||
| [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], | ||
| [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], | ||
| [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], | ||
| [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], | ||
| [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], | ||
| [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], | ||
| [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], | ||
| [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], | ||
| [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], | ||
| [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], | ||
| [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], | ||
| [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], | ||
| [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], | ||
| [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], | ||
| [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], | ||
| [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], | ||
| [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], | ||
| [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], | ||
| [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], | ||
| [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], | ||
| [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], | ||
| [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], | ||
| [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], | ||
| [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], | ||
| [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], | ||
| [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], | ||
| [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], | ||
| [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], | ||
| [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], | ||
| [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], | ||
| [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], | ||
| [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], | ||
| [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], | ||
| [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], | ||
| [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], | ||
| [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], | ||
| [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], | ||
| [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], | ||
| [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], | ||
| [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], | ||
| [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], | ||
| [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], | ||
| [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; | ||
| for (i = 0; i < ranges.length; i++) { | ||
| start = ranges[i][0]; | ||
| end = ranges[i][1]; | ||
| for (j = start; j <= end; j++) { | ||
| result[j] = true; | ||
| } | ||
| } | ||
| return result; | ||
| })(); | ||
| function splitQuery(query) { | ||
| var result = []; | ||
| var start = -1; | ||
| for (var i = 0; i < query.length; i++) { | ||
| if (splitChars[query.charCodeAt(i)]) { | ||
| if (start !== -1) { | ||
| result.push(query.slice(start, i)); | ||
| start = -1; | ||
| } | ||
| } else if (start === -1) { | ||
| start = i; | ||
| } | ||
| } | ||
| if (start !== -1) { | ||
| result.push(query.slice(start)); | ||
| } | ||
| return result; | ||
| } | ||
@@ -0,3 +1,8 @@ | ||
| pre { line-height: 125%; } | ||
| td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | ||
| span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | ||
| td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | ||
| span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | ||
| .highlight .hll { background-color: #ffffcc } | ||
| .highlight { background: #eeffcc; } | ||
| .highlight { background: #eeffcc; } | ||
| .highlight .c { color: #408090; font-style: italic } /* Comment */ | ||
@@ -4,0 +9,0 @@ .highlight .err { border: 1px solid #FF0000 } /* Error */ |
+388
-362
@@ -7,18 +7,20 @@ /* | ||
| * | ||
| * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
| * | ||
| */ | ||
| "use strict"; | ||
| if (!Scorer) { | ||
| /** | ||
| * Simple result scoring code. | ||
| */ | ||
| /** | ||
| * Simple result scoring code. | ||
| */ | ||
| if (typeof Scorer === "undefined") { | ||
| var Scorer = { | ||
| // Implement the following function to further tweak the score for each result | ||
| // The function takes a result array [filename, title, anchor, descr, score] | ||
| // The function takes a result array [docname, title, anchor, descr, score, filename] | ||
| // and returns the new score. | ||
| /* | ||
| score: function(result) { | ||
| return result[4]; | ||
| score: result => { | ||
| const [docname, title, anchor, descr, score, filename] = result | ||
| return score | ||
| }, | ||
@@ -32,5 +34,7 @@ */ | ||
| // Additive scores depending on the priority of the object | ||
| objPrio: {0: 15, // used to be importantResults | ||
| 1: 5, // used to be objectResults | ||
| 2: -5}, // used to be unimportantResults | ||
| objPrio: { | ||
| 0: 15, // used to be importantResults | ||
| 1: 5, // used to be objectResults | ||
| 2: -5, // used to be unimportantResults | ||
| }, | ||
| // Used when the priority is not in the mapping. | ||
@@ -44,10 +48,103 @@ objPrioDefault: 0, | ||
| term: 5, | ||
| partialTerm: 2 | ||
| partialTerm: 2, | ||
| }; | ||
| } | ||
| if (!splitQuery) { | ||
| function splitQuery(query) { | ||
| return query.split(/\s+/); | ||
| const _removeChildren = (element) => { | ||
| while (element && element.lastChild) element.removeChild(element.lastChild); | ||
| }; | ||
| /** | ||
| * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping | ||
| */ | ||
| const _escapeRegExp = (string) => | ||
| string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string | ||
| const _displayItem = (item, highlightTerms, searchTerms) => { | ||
| const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; | ||
| const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; | ||
| const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; | ||
| const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; | ||
| const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; | ||
| const [docName, title, anchor, descr] = item; | ||
| let listItem = document.createElement("li"); | ||
| let requestUrl; | ||
| let linkUrl; | ||
| if (docBuilder === "dirhtml") { | ||
| // dirhtml builder | ||
| let dirname = docName + "/"; | ||
| if (dirname.match(/\/index\/$/)) | ||
| dirname = dirname.substring(0, dirname.length - 6); | ||
| else if (dirname === "index/") dirname = ""; | ||
| requestUrl = docUrlRoot + dirname; | ||
| linkUrl = requestUrl; | ||
| } else { | ||
| // normal html builders | ||
| requestUrl = docUrlRoot + docName + docFileSuffix; | ||
| linkUrl = docName + docLinkSuffix; | ||
| } | ||
| const params = new URLSearchParams(); | ||
| params.set("highlight", [...highlightTerms].join(" ")); | ||
| let linkEl = listItem.appendChild(document.createElement("a")); | ||
| linkEl.href = linkUrl + "?" + params.toString() + anchor; | ||
| linkEl.innerHTML = title; | ||
| if (descr) | ||
| listItem.appendChild(document.createElement("span")).innerText = | ||
| " (" + descr + ")"; | ||
| else if (showSearchSummary) | ||
| fetch(requestUrl) | ||
| .then((responseData) => responseData.text()) | ||
| .then((data) => { | ||
| if (data) | ||
| listItem.appendChild( | ||
| Search.makeSearchSummary(data, searchTerms, highlightTerms) | ||
| ); | ||
| }); | ||
| Search.output.appendChild(listItem); | ||
| }; | ||
| const _finishSearch = (resultCount) => { | ||
| Search.stopPulse(); | ||
| Search.title.innerText = _("Search Results"); | ||
| if (!resultCount) | ||
| Search.status.innerText = Documentation.gettext( | ||
| "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." | ||
| ); | ||
| else | ||
| Search.status.innerText = _( | ||
| `Search finished, found ${resultCount} page(s) matching the search query.` | ||
| ); | ||
| }; | ||
| const _displayNextItem = ( | ||
| results, | ||
| resultCount, | ||
| highlightTerms, | ||
| searchTerms | ||
| ) => { | ||
| // results left, load the summary and display it | ||
| // this is intended to be dynamic (don't sub resultsCount) | ||
| if (results.length) { | ||
| _displayItem(results.pop(), highlightTerms, searchTerms); | ||
| setTimeout( | ||
| () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), | ||
| 5 | ||
| ); | ||
| } | ||
| // search finished, update title and status message | ||
| else _finishSearch(resultCount); | ||
| }; | ||
| /** | ||
| * Default splitQuery function. Can be overridden in ``sphinx.search`` with a | ||
| * custom function per language. | ||
| * | ||
| * The regular expression works by splitting the string on consecutive characters | ||
| * that are not Unicode letters, numbers, underscores, or emoji characters. | ||
| * This is the same as ``\W+`` in Python, preserving the surrogate pair area. | ||
| */ | ||
| if (typeof splitQuery === "undefined") { | ||
| var splitQuery = (query) => query | ||
| .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) | ||
| .filter(term => term) // remove remaining empty strings | ||
| } | ||
@@ -58,69 +155,54 @@ | ||
| */ | ||
| var Search = { | ||
| const Search = { | ||
| _index: null, | ||
| _queued_query: null, | ||
| _pulse_status: -1, | ||
| _index : null, | ||
| _queued_query : null, | ||
| _pulse_status : -1, | ||
| htmlToText : function(htmlString) { | ||
| var htmlElement = document.createElement('span'); | ||
| htmlElement.innerHTML = htmlString; | ||
| $(htmlElement).find('.headerlink').remove(); | ||
| docContent = $(htmlElement).find('[role=main]')[0]; | ||
| return docContent.textContent || docContent.innerText; | ||
| htmlToText: (htmlString) => { | ||
| const htmlElement = document | ||
| .createRange() | ||
| .createContextualFragment(htmlString); | ||
| _removeChildren(htmlElement.querySelectorAll(".headerlink")); | ||
| const docContent = htmlElement.querySelector('[role="main"]'); | ||
| if (docContent !== undefined) return docContent.textContent; | ||
| console.warn( | ||
| "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." | ||
| ); | ||
| return ""; | ||
| }, | ||
| init : function() { | ||
| var params = $.getQueryParameters(); | ||
| if (params.q) { | ||
| var query = params.q[0]; | ||
| $('input[name="q"]')[0].value = query; | ||
| this.performSearch(query); | ||
| } | ||
| init: () => { | ||
| const query = new URLSearchParams(window.location.search).get("q"); | ||
| document | ||
| .querySelectorAll('input[name="q"]') | ||
| .forEach((el) => (el.value = query)); | ||
| if (query) Search.performSearch(query); | ||
| }, | ||
| loadIndex : function(url) { | ||
| $.ajax({type: "GET", url: url, data: null, | ||
| dataType: "script", cache: true, | ||
| complete: function(jqxhr, textstatus) { | ||
| if (textstatus != "success") { | ||
| document.getElementById("searchindexloader").src = url; | ||
| } | ||
| }}); | ||
| }, | ||
| loadIndex: (url) => | ||
| (document.body.appendChild(document.createElement("script")).src = url), | ||
| setIndex : function(index) { | ||
| var q; | ||
| this._index = index; | ||
| if ((q = this._queued_query) !== null) { | ||
| this._queued_query = null; | ||
| Search.query(q); | ||
| setIndex: (index) => { | ||
| Search._index = index; | ||
| if (Search._queued_query !== null) { | ||
| const query = Search._queued_query; | ||
| Search._queued_query = null; | ||
| Search.query(query); | ||
| } | ||
| }, | ||
| hasIndex : function() { | ||
| return this._index !== null; | ||
| }, | ||
| hasIndex: () => Search._index !== null, | ||
| deferQuery : function(query) { | ||
| this._queued_query = query; | ||
| }, | ||
| deferQuery: (query) => (Search._queued_query = query), | ||
| stopPulse : function() { | ||
| this._pulse_status = 0; | ||
| }, | ||
| stopPulse: () => (Search._pulse_status = -1), | ||
| startPulse : function() { | ||
| if (this._pulse_status >= 0) | ||
| return; | ||
| function pulse() { | ||
| var i; | ||
| startPulse: () => { | ||
| if (Search._pulse_status >= 0) return; | ||
| const pulse = () => { | ||
| Search._pulse_status = (Search._pulse_status + 1) % 4; | ||
| var dotString = ''; | ||
| for (i = 0; i < Search._pulse_status; i++) | ||
| dotString += '.'; | ||
| Search.dots.text(dotString); | ||
| if (Search._pulse_status > -1) | ||
| window.setTimeout(pulse, 500); | ||
| } | ||
| Search.dots.innerText = ".".repeat(Search._pulse_status); | ||
| if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); | ||
| }; | ||
| pulse(); | ||
@@ -132,18 +214,28 @@ }, | ||
| */ | ||
| performSearch : function(query) { | ||
| performSearch: (query) => { | ||
| // create the required interface elements | ||
| this.out = $('#search-results'); | ||
| this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out); | ||
| this.dots = $('<span></span>').appendTo(this.title); | ||
| this.status = $('<p class="search-summary"> </p>').appendTo(this.out); | ||
| this.output = $('<ul class="search"/>').appendTo(this.out); | ||
| const searchText = document.createElement("h2"); | ||
| searchText.textContent = _("Searching"); | ||
| const searchSummary = document.createElement("p"); | ||
| searchSummary.classList.add("search-summary"); | ||
| searchSummary.innerText = ""; | ||
| const searchList = document.createElement("ul"); | ||
| searchList.classList.add("search"); | ||
| $('#search-progress').text(_('Preparing search...')); | ||
| this.startPulse(); | ||
| const out = document.getElementById("search-results"); | ||
| Search.title = out.appendChild(searchText); | ||
| Search.dots = Search.title.appendChild(document.createElement("span")); | ||
| Search.status = out.appendChild(searchSummary); | ||
| Search.output = out.appendChild(searchList); | ||
| const searchProgress = document.getElementById("search-progress"); | ||
| // Some themes don't use the search progress node | ||
| if (searchProgress) { | ||
| searchProgress.innerText = _("Preparing search..."); | ||
| } | ||
| Search.startPulse(); | ||
| // index already loaded, the browser was quick! | ||
| if (this.hasIndex()) | ||
| this.query(query); | ||
| else | ||
| this.deferQuery(query); | ||
| if (Search.hasIndex()) Search.query(query); | ||
| else Search.deferQuery(query); | ||
| }, | ||
@@ -154,71 +246,48 @@ | ||
| */ | ||
| query : function(query) { | ||
| var i; | ||
| query: (query) => { | ||
| // stem the search terms and add them to the correct list | ||
| const stemmer = new Stemmer(); | ||
| const searchTerms = new Set(); | ||
| const excludedTerms = new Set(); | ||
| const highlightTerms = new Set(); | ||
| const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); | ||
| splitQuery(query.trim()).forEach((queryTerm) => { | ||
| const queryTermLower = queryTerm.toLowerCase(); | ||
| // stem the searchterms and add them to the correct list | ||
| var stemmer = new Stemmer(); | ||
| var searchterms = []; | ||
| var excluded = []; | ||
| var hlterms = []; | ||
| var tmp = splitQuery(query); | ||
| var objectterms = []; | ||
| for (i = 0; i < tmp.length; i++) { | ||
| if (tmp[i] !== "") { | ||
| objectterms.push(tmp[i].toLowerCase()); | ||
| } | ||
| // maybe skip this "word" | ||
| // stopwords array is from language_data.js | ||
| if ( | ||
| stopwords.indexOf(queryTermLower) !== -1 || | ||
| queryTerm.match(/^\d+$/) | ||
| ) | ||
| return; | ||
| if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) || | ||
| tmp[i] === "") { | ||
| // skip this "word" | ||
| continue; | ||
| } | ||
| // stem the word | ||
| var word = stemmer.stemWord(tmp[i].toLowerCase()); | ||
| // prevent stemmer from cutting word smaller than two chars | ||
| if(word.length < 3 && tmp[i].length >= 3) { | ||
| word = tmp[i]; | ||
| } | ||
| var toAppend; | ||
| let word = stemmer.stemWord(queryTermLower); | ||
| // select the correct list | ||
| if (word[0] == '-') { | ||
| toAppend = excluded; | ||
| word = word.substr(1); | ||
| } | ||
| if (word[0] === "-") excludedTerms.add(word.substr(1)); | ||
| else { | ||
| toAppend = searchterms; | ||
| hlterms.push(tmp[i].toLowerCase()); | ||
| searchTerms.add(word); | ||
| highlightTerms.add(queryTermLower); | ||
| } | ||
| // only add if not already in the list | ||
| if (!$u.contains(toAppend, word)) | ||
| toAppend.push(word); | ||
| } | ||
| var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" ")); | ||
| }); | ||
| // console.debug('SEARCH: searching for:'); | ||
| // console.info('required: ', searchterms); | ||
| // console.info('excluded: ', excluded); | ||
| // console.debug("SEARCH: searching for:"); | ||
| // console.info("required: ", [...searchTerms]); | ||
| // console.info("excluded: ", [...excludedTerms]); | ||
| // prepare search | ||
| var terms = this._index.terms; | ||
| var titleterms = this._index.titleterms; | ||
| // array of [docname, title, anchor, descr, score, filename] | ||
| let results = []; | ||
| _removeChildren(document.getElementById("search-progress")); | ||
| // array of [filename, title, anchor, descr, score] | ||
| var results = []; | ||
| $('#search-progress').empty(); | ||
| // lookup as object | ||
| for (i = 0; i < objectterms.length; i++) { | ||
| var others = [].concat(objectterms.slice(0, i), | ||
| objectterms.slice(i+1, objectterms.length)); | ||
| results = results.concat(this.performObjectSearch(objectterms[i], others)); | ||
| } | ||
| objectTerms.forEach((term) => | ||
| results.push(...Search.performObjectSearch(term, objectTerms)) | ||
| ); | ||
| // lookup as search terms in fulltext | ||
| results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms)); | ||
| results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); | ||
| // let the scorer override scores with a custom scoring function | ||
| if (Scorer.score) { | ||
| for (i = 0; i < results.length; i++) | ||
| results[i][4] = Scorer.score(results[i]); | ||
| } | ||
| if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); | ||
@@ -228,84 +297,35 @@ // now sort the results by score (in opposite order of appearance, since the | ||
| // alphabetically | ||
| results.sort(function(a, b) { | ||
| var left = a[4]; | ||
| var right = b[4]; | ||
| if (left > right) { | ||
| return 1; | ||
| } else if (left < right) { | ||
| return -1; | ||
| } else { | ||
| results.sort((a, b) => { | ||
| const leftScore = a[4]; | ||
| const rightScore = b[4]; | ||
| if (leftScore === rightScore) { | ||
| // same score: sort alphabetically | ||
| left = a[1].toLowerCase(); | ||
| right = b[1].toLowerCase(); | ||
| return (left > right) ? -1 : ((left < right) ? 1 : 0); | ||
| const leftTitle = a[1].toLowerCase(); | ||
| const rightTitle = b[1].toLowerCase(); | ||
| if (leftTitle === rightTitle) return 0; | ||
| return leftTitle > rightTitle ? -1 : 1; // inverted is intentional | ||
| } | ||
| return leftScore > rightScore ? 1 : -1; | ||
| }); | ||
| // remove duplicate search results | ||
| // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept | ||
| let seen = new Set(); | ||
| results = results.reverse().reduce((acc, result) => { | ||
| let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); | ||
| if (!seen.has(resultStr)) { | ||
| acc.push(result); | ||
| seen.add(resultStr); | ||
| } | ||
| return acc; | ||
| }, []); | ||
| results = results.reverse(); | ||
| // for debugging | ||
| //Search.lastresults = results.slice(); // a copy | ||
| //console.info('search results:', Search.lastresults); | ||
| // console.info("search results:", Search.lastresults); | ||
| // print the results | ||
| var resultCount = results.length; | ||
| function displayNextItem() { | ||
| // results left, load the summary and display it | ||
| if (results.length) { | ||
| var item = results.pop(); | ||
| var listItem = $('<li style="display:none"></li>'); | ||
| if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') { | ||
| // dirhtml builder | ||
| var dirname = item[0] + '/'; | ||
| if (dirname.match(/\/index\/$/)) { | ||
| dirname = dirname.substring(0, dirname.length-6); | ||
| } else if (dirname == 'index/') { | ||
| dirname = ''; | ||
| } | ||
| listItem.append($('<a/>').attr('href', | ||
| DOCUMENTATION_OPTIONS.URL_ROOT + dirname + | ||
| highlightstring + item[2]).html(item[1])); | ||
| } else { | ||
| // normal html builders | ||
| listItem.append($('<a/>').attr('href', | ||
| item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX + | ||
| highlightstring + item[2]).html(item[1])); | ||
| } | ||
| if (item[3]) { | ||
| listItem.append($('<span> (' + item[3] + ')</span>')); | ||
| Search.output.append(listItem); | ||
| listItem.slideDown(5, function() { | ||
| displayNextItem(); | ||
| }); | ||
| } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { | ||
| $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX, | ||
| dataType: "text", | ||
| complete: function(jqxhr, textstatus) { | ||
| var data = jqxhr.responseText; | ||
| if (data !== '' && data !== undefined) { | ||
| listItem.append(Search.makeSearchSummary(data, searchterms, hlterms)); | ||
| } | ||
| Search.output.append(listItem); | ||
| listItem.slideDown(5, function() { | ||
| displayNextItem(); | ||
| }); | ||
| }}); | ||
| } else { | ||
| // no source available, just display title | ||
| Search.output.append(listItem); | ||
| listItem.slideDown(5, function() { | ||
| displayNextItem(); | ||
| }); | ||
| } | ||
| } | ||
| // search finished, update title and status message | ||
| else { | ||
| Search.stopPulse(); | ||
| Search.title.text(_('Search Results')); | ||
| if (!resultCount) | ||
| Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.')); | ||
| else | ||
| Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount)); | ||
| Search.status.fadeIn(500); | ||
| } | ||
| } | ||
| displayNextItem(); | ||
| _displayNextItem(results, results.length, highlightTerms, searchTerms); | ||
| }, | ||
@@ -316,63 +336,67 @@ | ||
| */ | ||
| performObjectSearch : function(object, otherterms) { | ||
| var filenames = this._index.filenames; | ||
| var docnames = this._index.docnames; | ||
| var objects = this._index.objects; | ||
| var objnames = this._index.objnames; | ||
| var titles = this._index.titles; | ||
| performObjectSearch: (object, objectTerms) => { | ||
| const filenames = Search._index.filenames; | ||
| const docNames = Search._index.docnames; | ||
| const objects = Search._index.objects; | ||
| const objNames = Search._index.objnames; | ||
| const titles = Search._index.titles; | ||
| var i; | ||
| var results = []; | ||
| const results = []; | ||
| for (var prefix in objects) { | ||
| for (var name in objects[prefix]) { | ||
| var fullname = (prefix ? prefix + '.' : '') + name; | ||
| if (fullname.toLowerCase().indexOf(object) > -1) { | ||
| var score = 0; | ||
| var parts = fullname.split('.'); | ||
| // check for different match types: exact matches of full name or | ||
| // "last name" (i.e. last dotted part) | ||
| if (fullname == object || parts[parts.length - 1] == object) { | ||
| score += Scorer.objNameMatch; | ||
| // matches in last name | ||
| } else if (parts[parts.length - 1].indexOf(object) > -1) { | ||
| score += Scorer.objPartialMatch; | ||
| } | ||
| var match = objects[prefix][name]; | ||
| var objname = objnames[match[1]][2]; | ||
| var title = titles[match[0]]; | ||
| // If more than one term searched for, we require other words to be | ||
| // found in the name/title/description | ||
| if (otherterms.length > 0) { | ||
| var haystack = (prefix + ' ' + name + ' ' + | ||
| objname + ' ' + title).toLowerCase(); | ||
| var allfound = true; | ||
| for (i = 0; i < otherterms.length; i++) { | ||
| if (haystack.indexOf(otherterms[i]) == -1) { | ||
| allfound = false; | ||
| break; | ||
| } | ||
| } | ||
| if (!allfound) { | ||
| continue; | ||
| } | ||
| } | ||
| var descr = objname + _(', in ') + title; | ||
| const objectSearchCallback = (prefix, match) => { | ||
| const name = match[4] | ||
| const fullname = (prefix ? prefix + "." : "") + name; | ||
| const fullnameLower = fullname.toLowerCase(); | ||
| if (fullnameLower.indexOf(object) < 0) return; | ||
| var anchor = match[3]; | ||
| if (anchor === '') | ||
| anchor = fullname; | ||
| else if (anchor == '-') | ||
| anchor = objnames[match[1]][1] + '-' + fullname; | ||
| // add custom score for some objects according to scorer | ||
| if (Scorer.objPrio.hasOwnProperty(match[2])) { | ||
| score += Scorer.objPrio[match[2]]; | ||
| } else { | ||
| score += Scorer.objPrioDefault; | ||
| } | ||
| results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]); | ||
| } | ||
| let score = 0; | ||
| const parts = fullnameLower.split("."); | ||
| // check for different match types: exact matches of full name or | ||
| // "last name" (i.e. last dotted part) | ||
| if (fullnameLower === object || parts.slice(-1)[0] === object) | ||
| score += Scorer.objNameMatch; | ||
| else if (parts.slice(-1)[0].indexOf(object) > -1) | ||
| score += Scorer.objPartialMatch; // matches in last name | ||
| const objName = objNames[match[1]][2]; | ||
| const title = titles[match[0]]; | ||
| // If more than one term searched for, we require other words to be | ||
| // found in the name/title/description | ||
| const otherTerms = new Set(objectTerms); | ||
| otherTerms.delete(object); | ||
| if (otherTerms.size > 0) { | ||
| const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); | ||
| if ( | ||
| [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) | ||
| ) | ||
| return; | ||
| } | ||
| } | ||
| let anchor = match[3]; | ||
| if (anchor === "") anchor = fullname; | ||
| else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; | ||
| const descr = objName + _(", in ") + title; | ||
| // add custom score for some objects according to scorer | ||
| if (Scorer.objPrio.hasOwnProperty(match[2])) | ||
| score += Scorer.objPrio[match[2]]; | ||
| else score += Scorer.objPrioDefault; | ||
| results.push([ | ||
| docNames[match[0]], | ||
| fullname, | ||
| "#" + anchor, | ||
| descr, | ||
| score, | ||
| filenames[match[0]], | ||
| ]); | ||
| }; | ||
| Object.keys(objects).forEach((prefix) => | ||
| objects[prefix].forEach((array) => | ||
| objectSearchCallback(prefix, array) | ||
| ) | ||
| ); | ||
| return results; | ||
@@ -384,97 +408,97 @@ }, | ||
| */ | ||
| performTermsSearch : function(searchterms, excluded, terms, titleterms) { | ||
| var docnames = this._index.docnames; | ||
| var filenames = this._index.filenames; | ||
| var titles = this._index.titles; | ||
| performTermsSearch: (searchTerms, excludedTerms) => { | ||
| // prepare search | ||
| const terms = Search._index.terms; | ||
| const titleTerms = Search._index.titleterms; | ||
| const docNames = Search._index.docnames; | ||
| const filenames = Search._index.filenames; | ||
| const titles = Search._index.titles; | ||
| var i, j, file; | ||
| var fileMap = {}; | ||
| var scoreMap = {}; | ||
| var results = []; | ||
| const scoreMap = new Map(); | ||
| const fileMap = new Map(); | ||
| // perform the search on the required terms | ||
| for (i = 0; i < searchterms.length; i++) { | ||
| var word = searchterms[i]; | ||
| var files = []; | ||
| var _o = [ | ||
| {files: terms[word], score: Scorer.term}, | ||
| {files: titleterms[word], score: Scorer.title} | ||
| searchTerms.forEach((word) => { | ||
| const files = []; | ||
| const arr = [ | ||
| { files: terms[word], score: Scorer.term }, | ||
| { files: titleTerms[word], score: Scorer.title }, | ||
| ]; | ||
| // add support for partial matches | ||
| if (word.length > 2) { | ||
| for (var w in terms) { | ||
| if (w.match(word) && !terms[word]) { | ||
| _o.push({files: terms[w], score: Scorer.partialTerm}) | ||
| } | ||
| } | ||
| for (var w in titleterms) { | ||
| if (w.match(word) && !titleterms[word]) { | ||
| _o.push({files: titleterms[w], score: Scorer.partialTitle}) | ||
| } | ||
| } | ||
| const escapedWord = _escapeRegExp(word); | ||
| Object.keys(terms).forEach((term) => { | ||
| if (term.match(escapedWord) && !terms[word]) | ||
| arr.push({ files: terms[term], score: Scorer.partialTerm }); | ||
| }); | ||
| Object.keys(titleTerms).forEach((term) => { | ||
| if (term.match(escapedWord) && !titleTerms[word]) | ||
| arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); | ||
| }); | ||
| } | ||
| // no match but word was a required one | ||
| if ($u.every(_o, function(o){return o.files === undefined;})) { | ||
| break; | ||
| } | ||
| if (arr.every((record) => record.files === undefined)) return; | ||
| // found search word in contents | ||
| $u.each(_o, function(o) { | ||
| var _files = o.files; | ||
| if (_files === undefined) | ||
| return | ||
| arr.forEach((record) => { | ||
| if (record.files === undefined) return; | ||
| if (_files.length === undefined) | ||
| _files = [_files]; | ||
| files = files.concat(_files); | ||
| let recordFiles = record.files; | ||
| if (recordFiles.length === undefined) recordFiles = [recordFiles]; | ||
| files.push(...recordFiles); | ||
| // set score for the word in each file to Scorer.term | ||
| for (j = 0; j < _files.length; j++) { | ||
| file = _files[j]; | ||
| if (!(file in scoreMap)) | ||
| scoreMap[file] = {} | ||
| scoreMap[file][word] = o.score; | ||
| } | ||
| // set score for the word in each file | ||
| recordFiles.forEach((file) => { | ||
| if (!scoreMap.has(file)) scoreMap.set(file, {}); | ||
| scoreMap.get(file)[word] = record.score; | ||
| }); | ||
| }); | ||
| // create the mapping | ||
| for (j = 0; j < files.length; j++) { | ||
| file = files[j]; | ||
| if (file in fileMap) | ||
| fileMap[file].push(word); | ||
| else | ||
| fileMap[file] = [word]; | ||
| } | ||
| } | ||
| files.forEach((file) => { | ||
| if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) | ||
| fileMap.get(file).push(word); | ||
| else fileMap.set(file, [word]); | ||
| }); | ||
| }); | ||
| // now check if the files don't contain excluded terms | ||
| for (file in fileMap) { | ||
| var valid = true; | ||
| const results = []; | ||
| for (const [file, wordList] of fileMap) { | ||
| // check if all requirements are matched | ||
| // check if all requirements are matched | ||
| var filteredTermCount = // as search terms with length < 3 are discarded: ignore | ||
| searchterms.filter(function(term){return term.length > 2}).length | ||
| // as search terms with length < 3 are discarded | ||
| const filteredTermCount = [...searchTerms].filter( | ||
| (term) => term.length > 2 | ||
| ).length; | ||
| if ( | ||
| fileMap[file].length != searchterms.length && | ||
| fileMap[file].length != filteredTermCount | ||
| ) continue; | ||
| wordList.length !== searchTerms.size && | ||
| wordList.length !== filteredTermCount | ||
| ) | ||
| continue; | ||
| // ensure that none of the excluded terms is in the search result | ||
| for (i = 0; i < excluded.length; i++) { | ||
| if (terms[excluded[i]] == file || | ||
| titleterms[excluded[i]] == file || | ||
| $u.contains(terms[excluded[i]] || [], file) || | ||
| $u.contains(titleterms[excluded[i]] || [], file)) { | ||
| valid = false; | ||
| break; | ||
| } | ||
| } | ||
| if ( | ||
| [...excludedTerms].some( | ||
| (term) => | ||
| terms[term] === file || | ||
| titleTerms[term] === file || | ||
| (terms[term] || []).includes(file) || | ||
| (titleTerms[term] || []).includes(file) | ||
| ) | ||
| ) | ||
| break; | ||
| // if we have still a valid result we can add it to the result list | ||
| if (valid) { | ||
| // select one (max) score for the file. | ||
| // for better ranking, we should calculate ranking by using words statistics like basic tf-idf... | ||
| var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]})); | ||
| results.push([docnames[file], titles[file], '', null, score, filenames[file]]); | ||
| } | ||
| // select one (max) score for the file. | ||
| const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); | ||
| // add result to the result list | ||
| results.push([ | ||
| docNames[file], | ||
| titles[file], | ||
| "", | ||
| null, | ||
| score, | ||
| filenames[file], | ||
| ]); | ||
| } | ||
@@ -487,29 +511,31 @@ return results; | ||
| * search summary for a given text. keywords is a list | ||
| * of stemmed words, hlwords is the list of normal, unstemmed | ||
| * of stemmed words, highlightWords is the list of normal, unstemmed | ||
| * words. the first one is used to find the occurrence, the | ||
| * latter for highlighting it. | ||
| */ | ||
| makeSearchSummary : function(htmlText, keywords, hlwords) { | ||
| var text = Search.htmlToText(htmlText); | ||
| var textLower = text.toLowerCase(); | ||
| var start = 0; | ||
| $.each(keywords, function() { | ||
| var i = textLower.indexOf(this.toLowerCase()); | ||
| if (i > -1) | ||
| start = i; | ||
| }); | ||
| start = Math.max(start - 120, 0); | ||
| var excerpt = ((start > 0) ? '...' : '') + | ||
| $.trim(text.substr(start, 240)) + | ||
| ((start + 240 - text.length) ? '...' : ''); | ||
| var rv = $('<div class="context"></div>').text(excerpt); | ||
| $.each(hlwords, function() { | ||
| rv = rv.highlightText(this, 'highlighted'); | ||
| }); | ||
| return rv; | ||
| } | ||
| makeSearchSummary: (htmlText, keywords, highlightWords) => { | ||
| const text = Search.htmlToText(htmlText).toLowerCase(); | ||
| if (text === "") return null; | ||
| const actualStartPosition = [...keywords] | ||
| .map((k) => text.indexOf(k.toLowerCase())) | ||
| .filter((i) => i > -1) | ||
| .slice(-1)[0]; | ||
| const startWithContext = Math.max(actualStartPosition - 120, 0); | ||
| const top = startWithContext === 0 ? "" : "..."; | ||
| const tail = startWithContext + 240 < text.length ? "..." : ""; | ||
| let summary = document.createElement("div"); | ||
| summary.classList.add("context"); | ||
| summary.innerText = top + text.substr(startWithContext, 240).trim() + tail; | ||
| highlightWords.forEach((highlightWord) => | ||
| _highlightText(summary, highlightWord, "highlighted") | ||
| ); | ||
| return summary; | ||
| }, | ||
| }; | ||
| $(document).ready(function() { | ||
| Search.init(); | ||
| }); | ||
| _ready(Search.init); |
@@ -1,31 +0,6 @@ | ||
| // Underscore.js 1.3.1 | ||
| // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. | ||
| // Underscore is freely distributable under the MIT license. | ||
| // Portions of Underscore are inspired or borrowed from Prototype, | ||
| // Oliver Steele's Functional, and John Resig's Micro-Templating. | ||
| // For all details and documentation: | ||
| // http://documentcloud.github.com/underscore | ||
| (function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source== | ||
| c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c, | ||
| h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each= | ||
| b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a== | ||
| null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect= | ||
| function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e= | ||
| e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck= | ||
| function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a,computed:b})}); | ||
| return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a, | ||
| c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest= | ||
| b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];return d},[]); | ||
| return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c, | ||
| d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g}; | ||
| var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a, | ||
| c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c));g?h=true: | ||
| a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}}; | ||
| b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments, | ||
| 1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)}; | ||
| b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"}; | ||
| b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};b.mixin=function(a){j(b.functions(a), | ||
| function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+ | ||
| u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]= | ||
| function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain= | ||
| true;return this};m.prototype.value=function(){return this._wrapped}}).call(this); | ||
| !function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ | ||
| // Underscore.js 1.13.1 | ||
| // https://underscorejs.org | ||
| // (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors | ||
| // Underscore may be freely distributed under the MIT license. | ||
| var n="1.13.1",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}function x(n){var r="[object "+n+"]";return function(n){return a.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k&&(T=function(n){return"function"==typeof n||!1});var D=T,R=x("Object"),F=l&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x("Array");function W(n,r){return null!=n&&f.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return("function"===o||"object"===o||"object"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return u.valueOf.call(r)===u.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,o)}var f="[object Array]"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if("object"!=typeof r||"object"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&"constructor"in r&&"constructor"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn="forEach",ln="has",sn=["clear","delete"],pn=["get",ln,"set"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=["add"].concat(sn,cn,ln),dn=V?fn(vn):x("Map"),gn=V?fn(hn):x("WeakMap"),bn=V?fn(yn):x("Set"),mn=x("WeakSet");function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Object(t)),e<2||null==t)return t;for(var u=1;u<e;u++)for(var o=arguments[u],i=n(o),a=i.length,f=0;f<a;f++){var c=i[f];r&&void 0!==t[c]||(t[c]=o[c])}return t}}var xn=An(an),Sn=An(nn),On=An(an,!0);function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.prototype=n;var t=new r;return r.prototype=null,t}function En(n){return _(n)?U(n)?n.slice():xn({},n):n}function Bn(n){return U(n)?n:[n]}function Nn(n){return tn.toPath(n)}function In(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function Tn(n,r,t){var e=In(n,Nn(r));return w(e)?t:e}function kn(n){return n}function Dn(n){return n=Sn({},n),function(r){return rn(r,n)}}function Rn(n){return n=Nn(n),function(r){return In(r,n)}}function Fn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:return function(t){return n.call(r,t)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return function(){return n.apply(r,arguments)}}function Vn(n,r,t){return null==n?kn:D(n)?Fn(n,r,t):_(n)&&!U(n)?Dn(n):Rn(n)}function Pn(n,r){return Vn(n,r,1/0)}function qn(n,r,t){return tn.iteratee!==Pn?tn.iteratee(n,r):Vn(n,r,t)}function Un(){}function Wn(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=Bn,tn.iteratee=Pn;var zn=Date.now||function(){return(new Date).getTime()};function Ln(n){var r=function(r){return n[r]},t="(?:"+nn(n).join("|")+")",e=RegExp(t),u=RegExp(t,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,r):n}}var $n={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=/^\s*(\w|\$)+\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a<o;a++)i[a]=r[a]===t?arguments[u++]:r[a];for(;u<arguments.length;)i.push(arguments[u++]);return nr(n,e,this,this,i)};return e}));rr.placeholder=tn;var tr=j((function(n,r,t){if(!D(n))throw new TypeError("Bind must be called on a function");var e=j((function(u){return nr(n,e,r,this,t.concat(u))}));return e})),er=K(Y);function ur(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,o=0,i=Y(n);o<i;o++){var a=n[o];if(er(a)&&(U(a)||L(a)))if(r>1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else t||(e[u++]=a)}return e}var or=j((function(n,r){var t=(r=ur(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=tr(n[e],n)}return n}));var ir=j((function(n,r,t){return setTimeout((function(){return n.apply(null,t)}),r)})),ar=rr(ir,tn,1);function fr(n){return function(){return!n.apply(this,arguments)}}function cr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function pr(n){return function(r,t,e){t=qn(t,e);for(var u=Y(r),o=n>0?0:u-1;o>=0&&o<u;o+=n)if(t(r[o],o,r))return o;return-1}}var vr=pr(1),hr=pr(-1);function yr(n,r,t,e){for(var u=(t=qn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function dr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if("number"==typeof o)n>0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o<f;o+=n)if(e[o]===u)return o;return-1}}var gr=dr(1,vr,yr),br=dr(-1,hr);function mr(n,r,t){var e=(er(n)?vr:sr)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function jr(n,r,t){var e,u;if(r=Fn(r,t),er(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=nn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function _r(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function wr(n){var r=function(r,t,e,u){var o=!er(r)&&nn(r),i=(o||r).length,a=n>0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a<i;a+=n){var f=o?o[a]:a;e=t(e,r[f],f,r)}return e};return function(n,t,e,u){var o=arguments.length>=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function Mr(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function Er(n,r,t,e){return er(n)||(n=jn(n)),("number"!=typeof t||e)&&(t=0),gr(n,r,t)>=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e>o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=Wn(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function kr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=qn(e,u),jr(t,(function(r,u){var i=e(r,u,t);n(o,r,i)})),o}}var Dr=kr((function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]})),Rr=kr((function(n,r,t){n[t]=r})),Fr=kr((function(n,r,t){W(n,t)?n[t]++:n[t]=1})),Vr=kr((function(n,r,t){n[t?0:1].push(r)}),!0),Pr=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function qr(n,r,t){return r in t}var Ur=j((function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(r.length>1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t})),Wr=j((function(n,r){var t,e=r[0];return D(e)?(e=fr(e),r.length>1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?Er(o,c)||(o.push(c),u.push(f)):Er(u,f)||u.push(f)}return u}var Gr=j((function(n){return Jr(ur(n,!0,!0))}));function Hr(n){for(var r=n&&Ir(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Nr(n,e);return t}var Qr=j(Hr);function Xr(n,r){return n._chain?tn(r).chain():r}function Yr(n){return jr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototype[r]=function(){var n=[this._wrapped];return o.apply(n,arguments),Xr(this,t.apply(tn,n))}})),tn}jr(["pop","push","reverse","shift","sort","splice","unshift"],(function(n){var r=t[n];tn.prototype[n]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),"shift"!==n&&"splice"!==n||0!==t.length||delete t[0]),Xr(this,t)}})),jr(["concat","join","slice"],(function(n){var r=t[n];tn.prototype[n]=function(){var n=this._wrapped;return null!=n&&(n=r.apply(n,arguments)),Xr(this,n)}}));var Zr=Yr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return"number"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:dn,isWeakMap:gn,isSet:bn,isWeakSet:mn,keys:nn,allKeys:an,values:jn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:_n,functions:wn,methods:wn,extend:xn,extendOwn:Sn,assign:Sn,defaults:On,create:function(n,r){var t=Mn(n);return r&&Sn(t,r),t},clone:En,tap:function(n,r){return r(n),n},get:Tn,has:function(n,r){for(var t=(r=Nn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=qn(r,t);for(var e=nn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},identity:kn,constant:C,noop:Un,toPath:Bn,property:Rn,propertyOf:function(n){return null==n?Un:function(r){return Tn(n,r)}},matcher:Dn,matches:Dn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Fn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Wn,now:zn,escape:Cn,unescape:Kn,templateSettings:Jn,template:function(n,r,t){!r&&t&&(r=t),r=On({},r,tn.templateSettings);var e=RegExp([(r.escape||Gn).source,(r.interpolate||Gn).source,(r.evaluate||Gn).source].join("|")+"|$","g"),u=0,o="__p+='";n.replace(e,(function(r,t,e,i,a){return o+=n.slice(u,a).replace(Qn,Xn),u=a+r.length,t?o+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?o+="'+\n((__t=("+e+"))==null?'':__t)+\n'":i&&(o+="';\n"+i+"\n__p+='"),r})),o+="';\n";var i,a=r.variable;if(a){if(!Yn.test(a))throw new Error("variable is not a bare identifier: "+a)}else o="with(obj||{}){\n"+o+"}\n",a="obj";o="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{i=new Function(a,"_",o)}catch(n){throw n.source=o,n}var f=function(n){return i.call(this,n,tn)};return f.source="function("+a+"){\n"+o+"}",f},result:function(n,r,t){var e=(r=Nn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=D(o)?o.call(n):o}return n},uniqueId:function(n){var r=++Zn+"";return n?n+r:r},chain:function(n){var r=tn(n);return r._chain=!0,r},iteratee:Pn,partial:rr,bind:tr,bindAll:or,memoize:function(n,r){var t=function(e){var u=t.cache,o=""+(r?r.apply(this,arguments):e);return W(u,o)||(u[o]=n.apply(this,arguments)),u[o]};return t.cache={},t},delay:ir,defer:ar,throttle:function(n,r,t){var e,u,o,i,a=0;t||(t={});var f=function(){a=!1===t.leading?0:zn(),e=null,i=n.apply(u,o),e||(u=o=null)},c=function(){var c=zn();a||!1!==t.leading||(a=c);var l=r-(c-a);return u=this,o=arguments,l<=0||l>r?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e<o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))<i||u===1/0&&o===1/0)&&(o=n,i=u)}));return o},shuffle:function(n){return Tr(n,1/0)},sample:Tr,sortBy:function(n,r,t){var e=0;return r=qn(r,t),Nr(_r(n,(function(n,t,u){return{value:n,index:e++,criteria:r(n,t,u)}})).sort((function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(t>e||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index})),"value")},groupBy:Dr,indexBy:Rr,countBy:Fr,partition:Vr,toArray:function(n){return n?U(n)?i.call(n):S(n)?n.match(Pr):er(n)?_r(n,kn):jn(n):[]},size:function(n){return null==n?0:er(n)?n.length:nn(n).length},pick:Ur,omit:Wr,first:Lr,head:Lr,take:Lr,initial:zr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:$r(n,Math.max(0,n.length-r))},rest:$r,tail:$r,drop:$r,compact:function(n){return Sr(n,Boolean)},flatten:function(n,r){return ur(n,r,!1)},without:Kr,uniq:Jr,unique:Jr,union:Gr,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var o=n[e];if(!Er(r,o)){var i;for(i=1;i<t&&Er(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:Cr,unzip:Hr,transpose:Hr,zip:Qr,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(i.call(n,e,e+=r));return t},mixin:Yr,default:tn});return Zr._=Zr,Zr})); |
+46
-139
@@ -1,36 +0,20 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="en" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>API Documentation — spAudio documentation</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
@@ -42,28 +26,16 @@ <link rel="search" title="Search" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -73,14 +45,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul class="current"> | ||
@@ -116,6 +78,9 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <cite>readframes</cite> and <cite>writeframes</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
@@ -127,4 +92,2 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <cite>audioread</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <cite>audioread</cite> and <cite>audiowrite</cite> (version 0.7.16+)</a></li> | ||
| </ul> | ||
@@ -136,4 +99,2 @@ </li> | ||
| </div> | ||
@@ -143,51 +104,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>API Documentation</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">API Documentation</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -197,5 +123,5 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <div class="section" id="api-documentation"> | ||
| <h1>API Documentation<a class="headerlink" href="#api-documentation" title="Permalink to this headline">¶</a></h1> | ||
| <section id="api-documentation"> | ||
| <h1>API Documentation<a class="headerlink" href="#api-documentation" title="Permalink to this heading"></a></h1> | ||
| <div class="toctree-wrapper compound"> | ||
@@ -207,19 +133,11 @@ <ul> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="spaudio.html" class="btn btn-neutral float-right" title="spaudio module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| <a href="main.html" class="btn btn-neutral float-left" title="Introduction" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> | ||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | ||
| <a href="main.html" class="btn btn-neutral float-left" title="Introduction" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> | ||
| <a href="spaudio.html" class="btn btn-neutral float-right" title="spaudio module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | ||
| </div> | ||
@@ -229,11 +147,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2019-05-04 11:02:15 PM. | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">Last updated on 2024-06-11 12:10:47 AM. | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -244,24 +162,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+66
-130
@@ -1,37 +0,19 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="en" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>Index — spAudio documentation</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="Index" href="#" /> | ||
@@ -41,28 +23,16 @@ <link rel="search" title="Search" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -72,14 +42,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
@@ -134,4 +94,2 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| </div> | ||
@@ -141,51 +99,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Index</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">Index</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -195,3 +118,3 @@ </div> | ||
| <div itemprop="articleBody"> | ||
@@ -208,2 +131,3 @@ <h1 id="index">Index</h1> | ||
| | <a href="#G"><strong>G</strong></a> | ||
| | <a href="#M"><strong>M</strong></a> | ||
| | <a href="#N"><strong>N</strong></a> | ||
@@ -467,2 +391,17 @@ | <a href="#O"><strong>O</strong></a> | ||
| <h2 id="M">M</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li> | ||
| module | ||
| <ul> | ||
| <li><a href="spaudio.html#module-spaudio">spaudio</a> | ||
| </li> | ||
| <li><a href="spplugin.html#module-spplugin">spplugin</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| </tr></table> | ||
| <h2 id="N">N</h2> | ||
@@ -573,4 +512,2 @@ <table style="width: 100%" class="indextable genindextable"><tr> | ||
| </li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setparams">setparams() (spaudio.SpAudio method)</a> | ||
@@ -582,2 +519,4 @@ | ||
| </ul></li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setpos">setpos() (spplugin.SpFilePlugin method)</a> | ||
@@ -605,10 +544,20 @@ </li> | ||
| </li> | ||
| <li> | ||
| spaudio | ||
| <ul> | ||
| <li><a href="spaudio.html#module-spaudio">module</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio">SpAudio (class in spaudio)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#module-spaudio">spaudio (module)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin">SpFilePlugin (class in spplugin)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#module-spplugin">spplugin (module)</a> | ||
| <li> | ||
| spplugin | ||
| <ul> | ||
| <li><a href="spplugin.html#module-spplugin">module</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.stop">stop() (spaudio.SpAudio method)</a> | ||
@@ -672,6 +621,4 @@ </li> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -681,11 +628,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2019-05-04 11:27:25 PM. | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">Last updated on 2024-06-12 6:26:15 PM. | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -696,24 +643,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+46
-139
@@ -1,36 +0,20 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="en" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>spAudio for Python — spAudio documentation</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
@@ -41,28 +25,16 @@ <link rel="search" title="Search" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="#" class="icon icon-home"> spAudio | ||
| <a href="#" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -72,14 +44,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
@@ -134,4 +96,2 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| </div> | ||
@@ -141,51 +101,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="#">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="#">Docs</a> »</li> | ||
| <li>spAudio for Python</li> | ||
| <li><a href="#" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">spAudio for Python</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -195,8 +120,8 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <div class="section" id="spaudio-for-python"> | ||
| <h1>spAudio for Python<a class="headerlink" href="#spaudio-for-python" title="Permalink to this headline">¶</a></h1> | ||
| <p>A python package for audio I/O based on <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spAudio</a>.</p> | ||
| <section id="spaudio-for-python"> | ||
| <h1>spAudio for Python<a class="headerlink" href="#spaudio-for-python" title="Permalink to this heading"></a></h1> | ||
| <p>A python package for audio I/O based on <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spAudio</a>.</p> | ||
| <div class="toctree-wrapper compound"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
@@ -251,5 +176,5 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| </div> | ||
| </div> | ||
| <div class="section" id="indices-and-tables"> | ||
| <h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1> | ||
| </section> | ||
| <section id="indices-and-tables"> | ||
| <h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this heading"></a></h1> | ||
| <ul class="simple"> | ||
@@ -259,17 +184,10 @@ <li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li> | ||
| </ul> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="main.html" class="btn btn-neutral float-right" title="Introduction" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | ||
| <a href="main.html" class="btn btn-neutral float-right" title="Introduction" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | ||
| </div> | ||
@@ -279,11 +197,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2019-05-04 11:27:25 PM. | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">Last updated on 2024-06-12 6:26:15 PM. | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -294,24 +212,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+103
-173
@@ -1,36 +0,20 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="en" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>Introduction — spAudio documentation</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
@@ -42,28 +26,16 @@ <link rel="search" title="Search" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -73,14 +45,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul class="current"> | ||
@@ -116,6 +78,9 @@ <li class="toctree-l1 current"><a class="current reference internal" href="#">Introduction</a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <cite>readframes</cite> and <cite>writeframes</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
@@ -127,4 +92,2 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <cite>audioread</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <cite>audioread</cite> and <cite>audiowrite</cite> (version 0.7.16+)</a></li> | ||
| </ul> | ||
@@ -136,4 +99,2 @@ </li> | ||
| </div> | ||
@@ -143,51 +104,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Introduction</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">Introduction</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -197,11 +123,13 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <div class="section" id="introduction"> | ||
| <h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1> | ||
| <p>This package is the Python version of <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spAudio library</a> | ||
| <section id="introduction"> | ||
| <h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this heading"></a></h1> | ||
| <p>This package is the Python version of <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spAudio library</a> | ||
| providing <a class="reference internal" href="spaudio.html"><span class="doc">spaudio</span></a> module which enables fullduplex audio device I/O and | ||
| <a class="reference internal" href="spplugin.html"><span class="doc">spplugin</span></a> module which enables plugin-based file I/O | ||
| supporting many sound formats including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more.</p> | ||
| <div class="section" id="installation"> | ||
| <h2>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h2> | ||
| supporting many sound formats including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| The spplugin module also supports 24/32-bit sample size used in high-resolution audio files, so | ||
| you can easily load data with 24/32-bit sample size into <a class="reference external" href="http://www.numpy.org/">NumPy</a>’s ndarray.</p> | ||
| <section id="installation"> | ||
| <h2>Installation<a class="headerlink" href="#installation" title="Permalink to this heading"></a></h2> | ||
| <p>You can use <code class="docutils literal notranslate"><span class="pre">pip</span></code> command to install the binary package:</p> | ||
@@ -220,12 +148,27 @@ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">spaudio</span> | ||
| Note that this package doesn’t support Python 2.</p> | ||
| <p>The linux version also requires <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spPlugin</a> | ||
| <p>The linux version also requires <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spPlugin</a> | ||
| installation (audio device I/O requires the pulsesimple plugin | ||
| based on <a class="reference external" href="https://www.freedesktop.org/wiki/Software/PulseAudio/">PulseAudio</a> ). | ||
| You can install it by using <code class="docutils literal notranslate"><span class="pre">dpkg</span></code> (Ubuntu) or <code class="docutils literal notranslate"><span class="pre">rpm</span></code> (CentOS) command with one of the following | ||
| packages.</p> | ||
| You can install it by using <code class="docutils literal notranslate"><span class="pre">dpkg</span></code> (Ubuntu) or <code class="docutils literal notranslate"><span class="pre">rpm</span></code> (RHEL) command with one of the following | ||
| packages. The files for RHEL were tested on CentOS 7 (RHEL 7) and AlmaLinux 8/9 (RHEL 8/9).</p> | ||
| <ul class="simple"> | ||
| <li><p>Ubuntu 24</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu24/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu24/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 22</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu22/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu22/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 20</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 18</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_i386.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_i386.deb</a></p></li> | ||
| </ul> | ||
@@ -235,30 +178,36 @@ </li> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_i386.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_i386.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 14</p> | ||
| <li><p>RHEL 9</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el9/x86_64/spPlugin-0.8.6-3.x86_64.rpm">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el9/x86_64/spPlugin-0.8.6-3.x86_64.rpm</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>CentOS 7</p> | ||
| <li><p>RHEL 8</p> | ||
| <ul> | ||
| <li><p><a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el8/x86_64/spPlugin-0.8.6-3.x86_64.rpm">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el8/x86_64/spPlugin-0.8.6-3.x86_64.rpm</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>CentOS 6</p> | ||
| <li><p>RHEL 7</p> | ||
| <ul> | ||
| <li><p><a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.6-3.x86_64.rpm">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.6-3.x86_64.rpm</a></p></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| <p>If you want to use <code class="docutils literal notranslate"><span class="pre">apt</span></code> (Ubuntu) or <code class="docutils literal notranslate"><span class="pre">yum</span></code> (CentOS), | ||
| see <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg">this page (for Ubuntu)</a> | ||
| or <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum">this page (for CentOS)</a> .</p> | ||
| </div> | ||
| <div class="section" id="change-log"> | ||
| <h2>Change Log<a class="headerlink" href="#change-log" title="Permalink to this headline">¶</a></h2> | ||
| <p>If you want to use <code class="docutils literal notranslate"><span class="pre">apt</span></code> (Ubuntu) or <code class="docutils literal notranslate"><span class="pre">yum</span></code> (RHEL), | ||
| see <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg">this page (for Ubuntu)</a> | ||
| or <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum">this page (for RHEL)</a> .</p> | ||
| </section> | ||
| <section id="change-log"> | ||
| <h2>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h2> | ||
| <ul class="simple"> | ||
| <li><p>Version 0.7.17</p> | ||
| <ul> | ||
| <li><p>Rebuilt binaries.</p></li> | ||
| <li><p>Updated documents.</p></li> | ||
| <li><p>Fixed some bugs of plugins for spplugin module.</p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Version 0.7.16</p> | ||
@@ -289,33 +238,25 @@ <ul> | ||
| </ul> | ||
| </div> | ||
| <div class="section" id="build"> | ||
| <h2>Build<a class="headerlink" href="#build" title="Permalink to this headline">¶</a></h2> | ||
| </section> | ||
| <section id="build"> | ||
| <h2>Build<a class="headerlink" href="#build" title="Permalink to this heading"></a></h2> | ||
| <p>To build this package, the following are required.</p> | ||
| <ul class="simple"> | ||
| <li><p><a class="reference external" href="http://www.swig.org/">SWIG</a></p></li> | ||
| <li><p><a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spBase and spAudio</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spBase and spAudio</a></p></li> | ||
| </ul> | ||
| </div> | ||
| <div class="section" id="official-site"> | ||
| <h2>Official Site<a class="headerlink" href="#official-site" title="Permalink to this headline">¶</a></h2> | ||
| <p>The official web site is: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html">http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html</a></p> | ||
| <p>Japanese web site is also available: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html">http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html</a></p> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| <section id="official-site"> | ||
| <h2>Official Site<a class="headerlink" href="#official-site" title="Permalink to this heading"></a></h2> | ||
| <p>The official web site is: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html">https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html</a></p> | ||
| <p>Japanese web site is also available: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html">https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html</a></p> | ||
| </section> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="apidoc.html" class="btn btn-neutral float-right" title="API Documentation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| <a href="index.html" class="btn btn-neutral float-left" title="spAudio for Python" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> | ||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | ||
| <a href="index.html" class="btn btn-neutral float-left" title="spAudio for Python" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> | ||
| <a href="apidoc.html" class="btn btn-neutral float-right" title="API Documentation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | ||
| </div> | ||
@@ -325,11 +266,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2019-05-04 10:19:02 PM. | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">Last updated on 2024-06-12 6:26:15 PM. | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -340,24 +281,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+43
-130
@@ -1,36 +0,20 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="en" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>spAudio — spAudio documentation</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
@@ -40,28 +24,16 @@ <link rel="search" title="Search" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -71,14 +43,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
@@ -114,6 +76,9 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">Block write (version 0.7.15+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <cite>readframes</cite> and <cite>writeframes</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> (version 0.7.16+)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">Plot an audio file contents by plugin</a></li> | ||
@@ -125,4 +90,2 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">Play an audio file contents by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">Convert an audio file by plugin</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <cite>audioread</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <cite>audioread</cite> and <cite>audiowrite</cite> (version 0.7.16+)</a></li> | ||
| </ul> | ||
@@ -134,4 +97,2 @@ </li> | ||
| </div> | ||
@@ -141,51 +102,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>spAudio</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">spAudio</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -195,5 +121,5 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <div class="section" id="spaudio"> | ||
| <h1>spAudio<a class="headerlink" href="#spaudio" title="Permalink to this headline">¶</a></h1> | ||
| <section id="spaudio"> | ||
| <h1>spAudio<a class="headerlink" href="#spaudio" title="Permalink to this heading"></a></h1> | ||
| <div class="toctree-wrapper compound"> | ||
@@ -205,10 +131,8 @@ <ul> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -218,11 +142,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2019-05-04 11:02:15 PM. | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">Last updated on 2024-06-11 12:10:47 AM. | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -233,24 +157,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+36
-123
@@ -1,36 +0,19 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="en" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>Python Module Index — spAudio documentation</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
@@ -40,3 +23,3 @@ <link rel="search" title="Search" href="search.html" /> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true; | ||
@@ -48,28 +31,16 @@ </script> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -79,14 +50,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
@@ -141,4 +102,2 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| </div> | ||
@@ -148,49 +107,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Python Module Index</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">Python Module Index</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -200,3 +126,3 @@ </div> | ||
| <div itemprop="articleBody"> | ||
@@ -227,6 +153,4 @@ <h1>Python Module Index</h1> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -236,11 +160,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2019-05-04 11:27:25 PM. | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">Last updated on 2024-06-12 6:26:15 PM. | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -251,24 +175,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+39
-127
@@ -1,37 +0,22 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="en" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>Search — spAudio documentation</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/searchtools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <script src="_static/searchtools.js"></script> | ||
| <script src="_static/language_data.js"></script> | ||
| <link rel="index" title="Index" href="genindex.html" /> | ||
@@ -41,28 +26,16 @@ <link rel="search" title="Search" href="#" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="#" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -72,14 +45,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">Contents:</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> | ||
| <ul> | ||
@@ -134,4 +97,2 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">Introduction</a><ul> | ||
| </div> | ||
@@ -141,51 +102,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Search</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">Search</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -195,8 +121,7 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <noscript> | ||
| <div id="fallback" class="admonition warning"> | ||
| <p class="last"> | ||
| Please activate JavaScript to enable the search | ||
| functionality. | ||
| Please activate JavaScript to enable the search functionality. | ||
| </p> | ||
@@ -212,6 +137,4 @@ </div> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -221,11 +144,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| Last updated on 2019-05-04 11:27:25 PM. | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">Last updated on 2024-06-12 6:26:15 PM. | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -236,13 +159,7 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
@@ -252,12 +169,7 @@ SphinxRtdTheme.Navigation.enable(true); | ||
| </script> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function() { Search.loadIndex("searchindex.js"); }); | ||
| </script> | ||
| <script type="text/javascript" id="searchindexloader"></script> | ||
| <script id="searchindexloader"></script> | ||
@@ -264,0 +176,0 @@ |
@@ -1,1 +0,1 @@ | ||
| Search.setIndex({docnames:["apidoc","examples","index","main","modules","spaudio","spplugin"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["apidoc.rst","examples.rst","index.rst","main.rst","modules.rst","spaudio.rst","spplugin.rst"],objects:{"":{spaudio:[5,0,0,"-"],spplugin:[6,0,0,"-"]},"spaudio.SpAudio":{close:[5,3,1,""],createarray:[5,3,1,""],createndarray:[5,3,1,""],createrawarray:[5,3,1,""],createrawndarray:[5,3,1,""],getarraytypecode:[5,3,1,""],getblockingmode:[5,3,1,""],getbuffersize:[5,3,1,""],getcompname:[5,3,1,""],getcomptype:[5,3,1,""],getdevicelist:[5,3,1,""],getdevicename:[5,3,1,""],getframerate:[5,3,1,""],getnbuffers:[5,3,1,""],getnchannels:[5,3,1,""],getndarraydtype:[5,3,1,""],getndevices:[5,3,1,""],getparams:[5,3,1,""],getparamstuple:[5,3,1,""],getrawarraytypecode:[5,3,1,""],getrawndarraydtype:[5,3,1,""],getrawsampbit:[5,3,1,""],getrawsampwidth:[5,3,1,""],getsampbit:[5,3,1,""],getsamprate:[5,3,1,""],getsampwidth:[5,3,1,""],open:[5,3,1,""],read:[5,3,1,""],readframes:[5,3,1,""],readraw:[5,3,1,""],readrawframes:[5,3,1,""],reload:[5,3,1,""],selectdevice:[5,3,1,""],setblockingmode:[5,3,1,""],setbuffersize:[5,3,1,""],setcallback:[5,3,1,""],setcomptype:[5,3,1,""],setframerate:[5,3,1,""],setnbuffers:[5,3,1,""],setnchannels:[5,3,1,""],setparams:[5,3,1,""],setsampbit:[5,3,1,""],setsamprate:[5,3,1,""],setsampwidth:[5,3,1,""],stop:[5,3,1,""],sync:[5,3,1,""],terminate:[5,3,1,""],write:[5,3,1,""],writeframes:[5,3,1,""],writeraw:[5,3,1,""],writerawframes:[5,3,1,""]},"spplugin.SpFilePlugin":{appendsonginfo:[6,3,1,""],close:[6,3,1,""],copyarray2raw:[6,3,1,""],copyraw2array:[6,3,1,""],createarray:[6,3,1,""],createndarray:[6,3,1,""],createrawarray:[6,3,1,""],createrawndarray:[6,3,1,""],getarraytypecode:[6,3,1,""],getcompname:[6,3,1,""],getcomptype:[6,3,1,""],getfiledesc:[6,3,1,""],getfilefilter:[6,3,1,""],getfiletype:[6,3,1,""],getframerate:[6,3,1,""],getmark:[6,3,1,""],getmarkers:[6,3,1,""],getnchannels:[6,3,1,""],getndarraydtype:[6,3,1,""],getnframes:[6,3,1,""],getparams:[6,3,1,""],getparamstuple:[6,3,1,""],getplugindesc:[6,3,1,""],getpluginid:[6,3,1,""],getplugininfo:[6,3,1,""],getpluginname:[6,3,1,""],getpluginversion:[6,3,1,""],getrawarraytypecode:[6,3,1,""],getrawndarraydtype:[6,3,1,""],getrawsampbit:[6,3,1,""],getrawsampwidth:[6,3,1,""],getsampbit:[6,3,1,""],getsamprate:[6,3,1,""],getsampwidth:[6,3,1,""],getsonginfo:[6,3,1,""],open:[6,3,1,""],read:[6,3,1,""],readframes:[6,3,1,""],readraw:[6,3,1,""],readrawframes:[6,3,1,""],rewind:[6,3,1,""],setcomptype:[6,3,1,""],setfiletype:[6,3,1,""],setframerate:[6,3,1,""],setmark:[6,3,1,""],setnchannels:[6,3,1,""],setnframes:[6,3,1,""],setparams:[6,3,1,""],setpos:[6,3,1,""],setsampbit:[6,3,1,""],setsamprate:[6,3,1,""],setsampwidth:[6,3,1,""],setsonginfo:[6,3,1,""],tell:[6,3,1,""],write:[6,3,1,""],writeframes:[6,3,1,""],writeraw:[6,3,1,""],writerawframes:[6,3,1,""]},spaudio:{DeviceError:[5,1,1,""],DriverError:[5,1,1,""],Error:[5,1,1,""],SpAudio:[5,2,1,""],callbacksignature:[5,4,1,""],getdriverdevicename:[5,4,1,""],getdriverlist:[5,4,1,""],getdrivername:[5,4,1,""],getndriverdevices:[5,4,1,""],getndrivers:[5,4,1,""],open:[5,4,1,""]},spplugin:{BogusFileError:[6,1,1,""],Error:[6,1,1,""],FileError:[6,1,1,""],FileTypeError:[6,1,1,""],NChannelsError:[6,1,1,""],NFramesRequiredError:[6,1,1,""],SampleBitError:[6,1,1,""],SampleRateError:[6,1,1,""],SpFilePlugin:[6,2,1,""],SuitableNotFoundError:[6,1,1,""],WrongPluginError:[6,1,1,""],audioread:[6,4,1,""],audiowrite:[6,4,1,""],getplugindesc:[6,4,1,""],getplugininfo:[6,4,1,""],open:[6,4,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","exception","Python exception"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:exception","2":"py:class","3":"py:method","4":"py:function"},terms:{"32bit":[5,6],"4th":5,"5_amd64":3,"5_i386":3,"byte":[1,5,6],"case":[5,6],"char":[5,6],"class":[5,6],"default":[1,5,6],"float":[1,5,6],"function":[3,5,6],"import":[1,5,6],"int":[1,5,6],"new":[5,6],"public":3,"return":[1,5,6],"short":6,"true":[1,5,6],"while":[5,6],Added:3,For:6,The:[3,5,6],__main__:[1,6],__name__:[1,6],abov:[5,6],accept:[5,6],add_argu:1,added:5,afc:1,after:[5,6],aif:1,aifc:[1,5,6],aiff:[1,3,6],alac:[3,6],all:[5,6],also:[3,5,6],although:5,amd64:3,amplitud:[1,6],anaconda:3,ani:5,anoth:6,anymor:5,api:2,append:6,appendsonginfo:6,apt:3,archiv:3,arg:[1,5],argpars:1,argument:[3,5,6],argumentpars:1,argv:[1,6],arrai:[2,3,5,6],arraytyp:[1,5,6],associ:[5,6],audio:[2,3,5,6],audioread:[2,3,6],audioreadexampl:[1,6],audiorwexampl:1,audiowrit:[2,3,6],audiowriteexampl:[1,6],automat:6,avail:3,bannohideki:3,base:[2,3,5,6],basenam:[1,6],becom:5,befor:[5,6],begin:6,benefit:5,big:6,bigendian_or_signed8bit:[1,6],bin:1,binari:3,bit:[1,5,6],block:[2,5],blockingmod:5,blocklen:1,blockread:1,blockwrit:1,bogu:6,bogusfileerror:6,bool:[5,6],buf:1,buffer:[1,5],buffers:[1,5],build:2,bytearrai:[1,5,6],call:[3,6],callabl:5,callback:[2,5],callbacksignatur:5,calltyp:5,can:[1,3,5,6],cannot:[5,6],cbdata:[1,5],cbtype:1,ceil:1,cento:3,chang:2,channel:[1,3,5,6],channelwis:[1,5,6],close:[1,5,6],code:[1,5,6],combin:5,command:3,compat:[5,6],compnam:[1,5,6],compress:[5,6],comptyp:[1,5,6],conda:3,contain:[5,6],content:[2,6],convbyplugin:1,convert:[2,6],copi:6,copyarray2raw:[1,6],copyraw2arrai:[1,6],creat:[5,6],createarrai:[1,5,6],createndarrai:[1,5,6],createrawarrai:[1,5,6],createrawndarrai:[1,5,6],current:[5,6],data2:1,data:[2,5,6],datatyp:6,deb:3,decod:[5,6],decodebyt:[1,5,6],def:[1,6],depend:5,describ:[5,6],descript:[1,6],detail:6,detect:6,devic:[3,5],deviceerror:5,deviceindex:5,dict:[5,6],differ:6,document:[2,5],doe:[5,6],doesn:3,don:[3,5],doubl:[5,6],dpkg:3,driver:5,drivererror:5,drivernam:5,dtype:[5,6],durat:[1,6],el6:3,el7:3,element:[5,6],elif:1,els:1,enabl:3,encodestr:[5,6],end:6,endian:6,entri:[5,6],env:1,environ:5,equal:5,error:[5,6],exampl:2,except:[5,6],expect:[5,6],extern:3,factor:[5,6],fals:[1,5,6],faster:5,file:[2,3,5,6],filedesc:1,fileerror:6,filefilt:1,filenam:[1,6],filetyp:[1,6],filetypeerror:6,filter:6,find:6,finish:6,fire:5,first:[5,6],flac:[3,6],floatflag:[5,6],follow:[3,5,6],form:6,format:[1,3,6],found:6,frame:[1,5,6],framer:[1,5,6],from:[5,6],fullduplex:[2,3,5],func:5,gener:[5,6],get:[5,6],getarraytypecod:[5,6],getblockingmod:5,getbuffers:5,getcompnam:[5,6],getcomptyp:[5,6],getdevicelist:5,getdevicenam:5,getdriverdevicenam:5,getdriverlist:5,getdrivernam:5,getfiledesc:[1,6],getfilefilt:[1,6],getfiletyp:[1,6],getframer:[1,5,6],getlength:[],getmark:6,getnbuff:5,getnchannel:[1,5,6],getndarraydtyp:[5,6],getndevic:5,getndriv:5,getndriverdevic:5,getnfram:[1,6],getparam:[1,5,6],getparamstupl:[1,5,6],getplugindesc:[1,6],getpluginid:[1,6],getplugininfo:6,getpluginnam:6,getpluginvers:[1,6],getrawarraytypecod:[5,6],getrawndarraydtyp:[5,6],getrawsampbit:[5,6],getrawsampwidth:[5,6],getsampbit:[1,5,6],getsampr:[1,5,6],getsampwidth:[1,5,6],getsonginfo:[1,6],greater:5,has:[5,6],have:5,help:1,high:[3,6],html:3,http:3,human:[5,6],i386:3,ibigendian_or_signed8bit:1,ident:[5,6],ifilebodi:[],ifileext:1,ifilenam:1,ignor:[5,6],inarrai:6,includ:[1,3,5,6],index:[2,3,5],inform:6,initi:[3,5],input:[1,6],input_raw:[1,6],inputfil:1,instal:2,instanc:[5,6],intern:6,introduc:[5,6],introduct:2,iotest:1,iotestwith:1,japanes:3,kei:[5,6],keyword:[3,5,6],lab:3,len:[1,6],length:[1,5,6],level:[3,6],librari:[3,5,6],linspac:[1,6],linux:3,list:5,locat:[5,6],log:2,mai:[5,6],make:[5,6],mani:3,matlab:6,matplotlib:[1,6],matrix:[5,6],mean:[5,6],meijo:3,method:[5,6],microsoft:6,miniconda:3,mode:[5,6],modul:[0,2,3,4],more:[3,6],mp3:[3,6],multipli:[5,6],must:[5,6],myaudiocb:1,name:[1,5,6],namedtupl:[5,6],nbuffer:5,nchannel:[1,5,6],nchannelserror:6,ndarrai:[2,5,6],need:3,neg:6,next:[5,6],nframe:[1,5,6],nframesflag:[5,6],nframesrequirederror:6,nloop:[1,5],nonblock:5,none:[5,6],normal:[1,6],note:[3,5,6],noth:6,nread:[1,6],number:[1,5,6],numpi:[2,3,5,6],nwframe:[1,6],nwrite:1,obigendian_or_signed8bit:1,object:[5,6],obtain:6,offici:2,offset:[1,5,6],ofilebodi:[],ofileext:1,ofilenam:1,ogg:[3,6],omit:1,one:[3,6],onli:[3,5,6],open:[1,3,5,6],option:[5,6],otherwis:[5,6],output:[1,5,6],output_buffer_callback:[1,5],output_position_callback:[1,5],output_raw:6,outputfil:1,packag:[2,3],page:3,param:[1,5,6],paramet:[5,6],params2:1,paramstupl:1,parse_arg:1,parser:1,path:[1,6],pcm:6,pip:3,plai:2,playfilebyplugin:1,playfromwav2:1,playfromwav:1,playfromwavcb2:1,playfromwavcb:1,playrawbyplugin:1,plot:[2,6],plotfilebyplugin:[1,6],plt:[1,6],plugin:[2,3,6],pluginnam:[1,6],pos:6,posit:[1,5,6],position_:1,precis:[5,6],prefix:5,print:[1,6],problem:[5,6],process:5,provid:[3,6],pulseaudio:3,pulsesimpl:3,pyplot:[1,6],python3:1,python:[3,5,6],quit:[1,6],rais:[1,5,6],rang:[1,5,6],rate:[1,5,6],raw:[2,3,5,6],rawdata:6,read:[2,5,6],readabl:[5,6],readfram:[2,3,5,6],readndarrai:1,readndarray2:1,readplot:1,readplotraw:1,readraw:[1,5,6],readrawfram:[3,5,6],readrawndarrai:1,realiz:5,receiv:[5,6],reciev:5,record:2,rectowav2:1,rectowav:1,releas:3,reload:[1,5],requir:[1,3,5,6],resiz:[1,5,6],rewind:6,rj001:3,round:[1,6],rpm:3,runtimeerror:1,rwframesexampl:1,same:6,sampbit:[1,5,6],sampl:[1,5,6],samplebiterror:6,samplerateerror:6,samprat:[1,5,6],samprate2:1,sampwidth:[1,5,6],second:[5,6],see:3,seek:6,select:5,selectdevic:5,send:[5,6],set:[5,6],setblockingmod:5,setbuffers:[1,5],setcallback:[1,5],setcomptyp:[5,6],setfiletyp:6,setframer:[1,5,6],setlength:[],setmark:6,setnbuff:5,setnchannel:[1,5,6],setnfram:[1,6],setparam:[1,5,6],setpo:6,setsampbit:[5,6],setsampr:[1,5,6],setsampwidth:[1,5,6],setsonginfo:6,sever:6,show:[1,6],sign:6,signatur:5,similar:6,site:2,size:[1,5,6],sndlib:1,some:[3,5,6],song:6,songinfo:[1,6],sound:[3,6],sourc:[5,6],spaudio:[0,3,6],spbase:3,specif:3,specifi:[5,6],spfileplugin:6,splib:3,splitext:1,spplugin:[0,2,3,4],spplugin_0:3,standard:[5,6],start:6,statement:[2,5,6],stderr:[1,6],stdout:1,stop:5,store:[5,6],str:[1,5,6],string:[1,5,6],success:[5,6],suitabl:6,suitablenotfounderror:6,sunau:[1,5,6],support:[1,3,5,6],swig:3,sync:5,synchron:5,sys:[1,6],tell:6,termin:5,testaudioread:[],than:5,thi:[3,5,6],time:[1,6],total:6,total_:1,totallengthrequirederror:[],treat:[5,6],tupl:[5,6],tye:[],type:[1,5,6],ubuntu14:3,ubuntu16:3,ubuntu18:3,ubuntu:3,usag:[1,6],use:[3,6],used:[3,5,6],using:[2,3,6],usr:1,utf:1,valid:[5,6],valu:[5,6],valueerror:5,variabl:5,version:[2,3,5,6],vorbi:[3,6],want:[3,5,6],wav:[2,3,6],wave:[1,5,6],waveform:6,web:3,weight:[5,6],were:[5,6],when:6,which:[3,5,6],whose:[5,6],width:1,write:[2,5,6],writefram:[2,3,5,6],writefrombyplugin:1,writeraw:[1,5,6],writerawfram:[3,5,6],writetobyplugin:1,written:[5,6],wrong:6,wrongpluginerror:6,www:3,x86_64:3,xlabel:[1,6],xlim:[1,6],ylabel:[1,6],you:[3,5,6],yum:3},titles:["API Documentation","Examples","spAudio for Python","Introduction","spAudio","spaudio module","spplugin module"],titleterms:{api:0,arrai:1,audio:1,audioread:1,audiowrit:1,block:1,build:3,callback:1,chang:3,content:1,convert:1,data:1,document:0,exampl:[1,5,6],file:1,fullduplex:1,indic:2,instal:3,introduct:3,log:3,modul:[5,6],ndarrai:1,numpi:1,offici:3,plai:1,plot:1,plugin:1,python:[1,2],raw:1,read:1,readfram:1,record:1,site:3,spaudio:[1,2,4,5],spplugin:[1,6],statement:1,tabl:2,using:1,version:1,wav:1,write:1,writefram:1}}) | ||
| Search.setIndex({"docnames": ["apidoc", "examples", "index", "main", "modules", "spaudio", "spplugin"], "filenames": ["apidoc.rst", "examples.rst", "index.rst", "main.rst", "modules.rst", "spaudio.rst", "spplugin.rst"], "titles": ["API Documentation", "Examples", "spAudio for Python", "Introduction", "spAudio", "spaudio module", "spplugin module"], "terms": {"spaudio": [0, 3, 6], "modul": [0, 2, 3, 4], "spplugin": [0, 2, 3, 4], "iotest": 1, "py": 1, "usr": 1, "bin": 1, "env": 1, "python3": 1, "code": [1, 5, 6], "utf": 1, "8": [1, 3, 6], "import": [1, 5, 6], "setnchannel": [1, 5, 6], "2": [1, 3, 5, 6], "setsampr": [1, 5, 6], "44100": [1, 5, 6], "setbuffers": [1, 5], "2048": [1, 5], "nloop": [1, 5], "500": [1, 5], "b": [1, 5, 6], "bytearrai": [1, 5, 6], "4096": [1, 5], "open": [1, 3, 5, 6], "r": [1, 5, 6], "w": [1, 5, 6], "rang": [1, 5, 6], "readraw": [1, 5, 6], "writeraw": [1, 5, 6], "close": [1, 5, 6], "iotestwith": 1, "requir": [1, 3, 5, 6], "rw": [1, 5], "nchannel": [1, 5, 6], "samprat": [1, 5, 6], "buffers": [1, 5], "readplot": 1, "matplotlib": [1, 6], "pyplot": [1, 6], "plt": [1, 6], "1": [1, 5, 6], "8000": 1, "ro": [1, 5, 6], "createarrai": [1, 5, 6], "16000": 1, "nread": [1, 6], "print": [1, 6], "d": [1, 6], "wo": [1, 5, 6], "nwrite": 1, "show": [1, 6], "readplotraw": 1, "createrawarrai": [1, 5, 6], "readndarrai": 1, "np": [1, 6], "y": [1, 6], "createndarrai": [1, 5, 6], "x": [1, 6], "linspac": [1, 6], "xlim": [1, 6], "xlabel": [1, 6], "time": [1, 6], "s": [1, 3, 6], "ylabel": [1, 6], "amplitud": [1, 6], "normal": [1, 6], "readndarray2": 1, "channelwis": [1, 5, 6], "true": [1, 5, 6], "len": [1, 6], "getnchannel": [1, 5, 6], "readrawndarrai": 1, "createrawndarrai": [1, 5, 6], "playfromwav": 1, "os": [1, 6], "sy": [1, 6], "wave": [1, 5, 6], "def": [1, 6], "filenam": [1, 6], "rb": 1, "wf": 1, "getframer": [1, 5, 6], "sampwidth": [1, 5, 6], "getsampwidth": [1, 5, 6], "nframe": [1, 5, 6], "getnfram": [1, 6], "setsampwidth": [1, 5, 6], "__name__": [1, 6], "__main__": [1, 6], "argv": [1, 6], "usag": [1, 6], "path": [1, 6], "basenam": [1, 6], "stderr": [1, 6], "quit": [1, 6], "playfromwav2": 1, "paramstupl": 1, "getparam": [1, 5, 6], "framer": [1, 5, 6], "param": [1, 5, 6], "playfromwavcb": 1, "myaudiocb": 1, "cbtype": 1, "cbdata": [1, 5], "arg": [1, 5], "output_position_callback": [1, 5], "posit": [1, 5, 6], "position_": 1, "float": [1, 5, 6], "total_": 1, "stdout": 1, "3f": 1, "elif": 1, "output_buffer_callback": [1, 5], "buf": 1, "buffer": [1, 5], "type": [1, 5, 6], "size": [1, 3, 5, 6], "return": [1, 5, 6], "1024": 1, "setcallback": [1, 5], "playfromwavcb2": 1, "rectowav": 1, "argpars": 1, "durat": [1, 6], "wb": 1, "round": [1, 6], "setframer": [1, 5, 6], "setnfram": [1, 6], "output": [1, 5, 6], "parser": 1, "argumentpars": 1, "descript": [1, 6], "add_argu": 1, "help": 1, "name": [1, 5, 6], "f": 1, "int": [1, 5, 6], "default": [1, 5, 6], "sampl": [1, 3, 5, 6], "rate": [1, 5, 6], "hz": 1, "c": [1, 3], "number": [1, 5, 6], "channel": [1, 3, 5, 6], "width": 1, "byte": [1, 5, 6], "parse_arg": 1, "rectowav2": 1, "sampbit": [1, 5, 6], "getparamstupl": [1, 5, 6], "setparam": [1, 5, 6], "blockread": 1, "blocklen": 1, "8192": 1, "88200": 1, "ceil": 1, "offset": [1, 5, 6], "length": [1, 5, 6], "blockwrit": 1, "rwframesexampl": 1, "arraytyp": [1, 5, 6], "nwframe": [1, 6], "frame": [1, 5, 6], "audioreadexampl": [1, 6], "str": [1, 5, 6], "n": [1, 6], "audiowriteexampl": [1, 6], "getsampr": [1, 5, 6], "audiorwexampl": 1, "ifilenam": 1, "ofilenam": 1, "fals": [1, 5, 6], "els": 1, "data2": 1, "samprate2": 1, "params2": 1, "reload": [1, 5], "plotfilebyplugin": [1, 6], "pf": [1, 6], "input": [1, 6], "getpluginid": [1, 6], "getplugindesc": [1, 6], "getpluginvers": [1, 6], "getsampbit": [1, 5, 6], "2f": 1, "In": [1, 5, 6], "resiz": [1, 5, 6], "can": [1, 3, 5, 6], "omit": 1, "playfilebyplugin": 1, "filetyp": [1, 6], "getfiletyp": [1, 6], "filedesc": 1, "getfiledesc": [1, 6], "filefilt": 1, "getfilefilt": [1, 6], "songinfo": [1, 6], "getsonginfo": [1, 6], "playrawbyplugin": 1, "pluginnam": [1, 6], "input_raw": [1, 6], "includ": [1, 3, 5, 6], "bit": [1, 3, 5, 6], "t": [1, 3, 5], "string": [1, 5, 6], "writefrombyplugin": 1, "aifc": [1, 5, 6], "sunau": [1, 5, 6], "inputfil": 1, "outputfil": 1, "_": 1, "ofileext": 1, "splitext": 1, "sndlib": 1, "decodebyt": [1, 5, 6], "obigendian_or_signed8bit": 1, "au": 1, "aif": 1, "aiff": [1, 3, 6], "afc": 1, "rais": [1, 5, 6], "runtimeerror": 1, "format": [1, 3, 6], "support": [1, 3, 5, 6], "sf": 1, "copyarray2raw": [1, 6], "bigendian_or_signed8bit": [1, 6], "writetobyplugin": 1, "ifileext": 1, "ibigendian_or_signed8bit": 1, "comptyp": [1, 5, 6], "compnam": [1, 5, 6], "copyraw2arrai": [1, 6], "convbyplugin": 1, "A": [2, 5, 6], "packag": [2, 3], "audio": [2, 3, 5, 6], "i": [2, 3, 5, 6], "o": [2, 3, 5, 6], "base": [2, 3, 5, 6], "introduct": 2, "instal": 2, "chang": 2, "log": 2, "build": 2, "offici": 2, "site": 2, "api": 2, "document": [2, 3, 5], "exampl": 2, "fullduplex": [2, 3, 5], "us": [2, 3, 5, 6], "statement": [2, 5, 6], "version": [2, 3, 5, 6], "0": [2, 3, 5, 6], "7": [2, 3, 5, 6], "15": [2, 3, 5, 6], "read": [2, 5, 6], "plot": [2, 6], "arrai": [2, 3, 5, 6], "raw": [2, 3, 5, 6], "data": [2, 3, 5, 6], "numpi": [2, 3, 5, 6], "ndarrai": [2, 3, 5, 6], "16": [2, 3, 5, 6], "plai": 2, "wav": [2, 3, 6], "file": [2, 3, 5, 6], "callback": [2, 5], "record": 2, "block": [2, 5], "write": [2, 5, 6], "an": [2, 5, 6], "readfram": [2, 3, 5, 6], "writefram": [2, 3, 5, 6], "audioread": [2, 3, 6], "audiowrit": [2, 3, 6], "plugin": [2, 3, 6], "convert": [2, 6], "index": [2, 3, 5], "thi": [3, 5, 6], "python": [3, 5, 6], "librari": [3, 5, 6], "provid": [3, 6], "which": [3, 5, 6], "enabl": 3, "devic": [3, 5], "mani": 3, "sound": [3, 6], "mp3": [3, 6], "ogg": [3, 6], "vorbi": [3, 6], "flac": [3, 6], "alac": [3, 6], "more": [3, 6], "The": [3, 5, 6], "also": [3, 5, 6], "24": 3, "32": [3, 6], "high": [3, 6], "resolut": 3, "so": 3, "you": [3, 5, 6], "easili": 3, "load": 3, "pip": 3, "command": 3, "binari": 3, "If": [3, 5, 6], "anaconda": 3, "miniconda": 3, "conda": 3, "bannohideki": 3, "need": 3, "onli": [3, 5, 6], "want": [3, 5, 6], "don": [3, 5], "extern": 3, "note": [3, 5, 6], "doesn": 3, "linux": 3, "pulsesimpl": 3, "pulseaudio": 3, "dpkg": 3, "ubuntu": 3, "rpm": 3, "cento": 3, "one": [3, 6], "follow": [3, 5, 6], "20": 3, "amd64": 3, "http": 3, "www": 3, "ie": 3, "meijo": 3, "u": 3, "ac": 3, "jp": 3, "lab": 3, "rj001": 3, "archiv": 3, "deb": 3, "ubuntu20": 3, "spplugin_0": 3, "5": [], "5_amd64": [], "18": 3, "ubuntu18": 3, "i386": 3, "5_i386": [], "ubuntu16": 3, "14": 3, "ubuntu14": [], "el7": 3, "x86_64": 3, "6": 3, "el6": [], "apt": 3, "yum": 3, "see": 3, "page": 3, "ad": [3, 5], "level": [3, 6], "function": [3, 5, 6], "readrawfram": [3, 5, 6], "writerawfram": [3, 5, 6], "some": [3, 5, 6], "specif": 3, "call": [3, 6], "keyword": [3, 5, 6], "argument": [3, 5, 6], "13": 3, "initi": [3, 5], "public": 3, "releas": 3, "To": 3, "ar": [3, 5, 6], "swig": 3, "spbase": 3, "web": 3, "splib": 3, "en": 3, "html": 3, "japanes": 3, "avail": 3, "ja": 3, "realiz": 5, "except": [5, 6], "deviceerror": 5, "sourc": [5, 6], "error": [5, 6], "problem": [5, 6], "drivererror": 5, "driver": 5, "class": [5, 6], "drivernam": 5, "none": [5, 6], "object": [5, 6], "paramet": [5, 6], "current": [5, 6], "nframesflag": [5, 6], "creat": [5, 6], "doubl": [5, 6], "precis": [5, 6], "set": [5, 6], "ident": [5, 6], "specifi": [5, 6], "second": [5, 6], "must": [5, 6], "bool": [5, 6], "option": [5, 6], "make": [5, 6], "first": [5, 6], "treat": [5, 6], "matrix": [5, 6], "introduc": [5, 6], "getarraytypecod": [5, 6], "get": [5, 6], "store": [5, 6], "char": [5, 6], "getblockingmod": 5, "mode": [5, 6], "nonblock": 5, "getbuffers": 5, "getcompnam": [5, 6], "human": [5, 6], "readabl": [5, 6], "compress": [5, 6], "getcomptyp": [5, 6], "getdevicelist": 5, "list": 5, "getdevicenam": 5, "deviceindex": 5, "getnbuff": 5, "getndarraydtyp": [5, 6], "dtype": [5, 6], "getndevic": 5, "all": [5, 6], "dict": [5, 6], "whose": [5, 6], "kei": [5, 6], "blockingmod": 5, "nbuffer": 5, "namedtupl": [5, 6], "decod": [5, 6], "standard": [5, 6], "expect": [5, 6], "while": [5, 6], "otherwis": [5, 6], "4th": 5, "element": [5, 6], "tupl": [5, 6], "entri": [5, 6], "compat": [5, 6], "getrawarraytypecod": [5, 6], "getrawndarraydtyp": [5, 6], "getrawsampbit": [5, 6], "getrawsampwidth": [5, 6], "33": [5, 6], "mean": [5, 6], "32bit": [5, 6], "although": 5, "valid": [5, 6], "environ": 5, "reciev": 5, "benefit": 5, "process": 5, "becom": 5, "faster": 5, "contain": [5, 6], "method": [5, 6], "ani": 5, "abov": [5, 6], "from": [5, 6], "wa": [5, 6], "weight": [5, 6], "receiv": [5, 6], "factor": [5, 6], "multipli": [5, 6], "after": [5, 6], "locat": [5, 6], "success": [5, 6], "were": [3, 5, 6], "next": [5, 6], "valu": [5, 6], "case": [5, 6], "new": [5, 6], "selectdevic": 5, "select": 5, "ha": [5, 6], "associ": [5, 6], "valueerror": 5, "greater": 5, "than": 5, "equal": 5, "cannot": [5, 6], "setblockingmod": 5, "calltyp": 5, "func": 5, "combin": 5, "callabl": 5, "have": 5, "signatur": 5, "callbacksignatur": 5, "variabl": 5, "setcomptyp": [5, 6], "encodestr": [5, 6], "ignor": [5, 6], "setnbuff": 5, "describ": [5, 6], "gener": [5, 6], "accept": [5, 6], "setsampbit": [5, 6], "floatflag": [5, 6], "stop": 5, "sync": 5, "synchron": 5, "termin": 5, "send": [5, 6], "befor": [5, 6], "written": [5, 6], "instanc": [5, 6], "depend": 5, "doe": [5, 6], "prefix": 5, "fire": 5, "anymor": 5, "getdriverdevicenam": 5, "getdriverlist": 5, "getdrivernam": 5, "getndriverdevic": 5, "getndriv": 5, "mai": [5, 6], "sever": 6, "waveform": 6, "anoth": 6, "similar": 6, "matlab": 6, "bogusfileerror": 6, "bogu": 6, "fileerror": 6, "filetypeerror": 6, "nchannelserror": 6, "nframesrequirederror": 6, "total": 6, "samplebiterror": 6, "samplerateerror": 6, "spfileplugin": 6, "differ": 6, "appendsonginfo": 6, "append": 6, "song": 6, "inform": 6, "intern": 6, "inarrai": 6, "copi": 6, "content": 6, "endian": 6, "big": 6, "sign": 6, "rawdata": 6, "For": 6, "microsoft": 6, "pcm": 6, "filter": 6, "e": 6, "g": 6, "getmark": 6, "id": 6, "noth": 6, "obtain": 6, "short": 6, "getplugininfo": 6, "detail": 6, "getpluginnam": 6, "when": 6, "find": 6, "suitabl": 6, "suitablenotfounderror": 6, "found": 6, "neg": 6, "rewind": 6, "begin": 6, "setfiletyp": 6, "setmark": 6, "po": 6, "setpo": 6, "seek": 6, "setsonginfo": 6, "tell": 6, "wrongpluginerror": 6, "wrong": 6, "datatyp": 6, "form": 6, "start": 6, "finish": 6, "end": 6, "same": 6, "detect": 6, "automat": 6, "output_raw": 6, "el8": 3, "rhel": 3, "test": 3, "almalinux": 3, "9": 3, "enablerepo": [], "powertool": [], "crb": [], "respect": [], "ubuntu24": 3, "3_amd64": 3, "22": 3, "ubuntu22": 3, "3_i386": 3, "el9": 3, "3": 3, "17": 3, "rebuilt": 3, "updat": 3, "fix": 3, "bug": 3}, "objects": {"": [[5, 0, 0, "-", "spaudio"], [6, 0, 0, "-", "spplugin"]], "spaudio": [[5, 1, 1, "", "DeviceError"], [5, 1, 1, "", "DriverError"], [5, 1, 1, "", "Error"], [5, 2, 1, "", "SpAudio"], [5, 4, 1, "", "callbacksignature"], [5, 4, 1, "", "getdriverdevicename"], [5, 4, 1, "", "getdriverlist"], [5, 4, 1, "", "getdrivername"], [5, 4, 1, "", "getndriverdevices"], [5, 4, 1, "", "getndrivers"], [5, 4, 1, "", "open"]], "spaudio.SpAudio": [[5, 3, 1, "", "close"], [5, 3, 1, "", "createarray"], [5, 3, 1, "", "createndarray"], [5, 3, 1, "", "createrawarray"], [5, 3, 1, "", "createrawndarray"], [5, 3, 1, "", "getarraytypecode"], [5, 3, 1, "", "getblockingmode"], [5, 3, 1, "", "getbuffersize"], [5, 3, 1, "", "getcompname"], [5, 3, 1, "", "getcomptype"], [5, 3, 1, "", "getdevicelist"], [5, 3, 1, "", "getdevicename"], [5, 3, 1, "", "getframerate"], [5, 3, 1, "", "getnbuffers"], [5, 3, 1, "", "getnchannels"], [5, 3, 1, "", "getndarraydtype"], [5, 3, 1, "", "getndevices"], [5, 3, 1, "", "getparams"], [5, 3, 1, "", "getparamstuple"], [5, 3, 1, "", "getrawarraytypecode"], [5, 3, 1, "", "getrawndarraydtype"], [5, 3, 1, "", "getrawsampbit"], [5, 3, 1, "", "getrawsampwidth"], [5, 3, 1, "", "getsampbit"], [5, 3, 1, "", "getsamprate"], [5, 3, 1, "", "getsampwidth"], [5, 3, 1, "", "open"], [5, 3, 1, "", "read"], [5, 3, 1, "", "readframes"], [5, 3, 1, "", "readraw"], [5, 3, 1, "", "readrawframes"], [5, 3, 1, "", "reload"], [5, 3, 1, "", "selectdevice"], [5, 3, 1, "", "setblockingmode"], [5, 3, 1, "", "setbuffersize"], [5, 3, 1, "", "setcallback"], [5, 3, 1, "", "setcomptype"], [5, 3, 1, "", "setframerate"], [5, 3, 1, "", "setnbuffers"], [5, 3, 1, "", "setnchannels"], [5, 3, 1, "", "setparams"], [5, 3, 1, "", "setsampbit"], [5, 3, 1, "", "setsamprate"], [5, 3, 1, "", "setsampwidth"], [5, 3, 1, "", "stop"], [5, 3, 1, "", "sync"], [5, 3, 1, "", "terminate"], [5, 3, 1, "", "write"], [5, 3, 1, "", "writeframes"], [5, 3, 1, "", "writeraw"], [5, 3, 1, "", "writerawframes"]], "spplugin": [[6, 1, 1, "", "BogusFileError"], [6, 1, 1, "", "Error"], [6, 1, 1, "", "FileError"], [6, 1, 1, "", "FileTypeError"], [6, 1, 1, "", "NChannelsError"], [6, 1, 1, "", "NFramesRequiredError"], [6, 1, 1, "", "SampleBitError"], [6, 1, 1, "", "SampleRateError"], [6, 2, 1, "", "SpFilePlugin"], [6, 1, 1, "", "SuitableNotFoundError"], [6, 1, 1, "", "WrongPluginError"], [6, 4, 1, "", "audioread"], [6, 4, 1, "", "audiowrite"], [6, 4, 1, "", "getplugindesc"], [6, 4, 1, "", "getplugininfo"], [6, 4, 1, "", "open"]], "spplugin.SpFilePlugin": [[6, 3, 1, "", "appendsonginfo"], [6, 3, 1, "", "close"], [6, 3, 1, "", "copyarray2raw"], [6, 3, 1, "", "copyraw2array"], [6, 3, 1, "", "createarray"], [6, 3, 1, "", "createndarray"], [6, 3, 1, "", "createrawarray"], [6, 3, 1, "", "createrawndarray"], [6, 3, 1, "", "getarraytypecode"], [6, 3, 1, "", "getcompname"], [6, 3, 1, "", "getcomptype"], [6, 3, 1, "", "getfiledesc"], [6, 3, 1, "", "getfilefilter"], [6, 3, 1, "", "getfiletype"], [6, 3, 1, "", "getframerate"], [6, 3, 1, "", "getmark"], [6, 3, 1, "", "getmarkers"], [6, 3, 1, "", "getnchannels"], [6, 3, 1, "", "getndarraydtype"], [6, 3, 1, "", "getnframes"], [6, 3, 1, "", "getparams"], [6, 3, 1, "", "getparamstuple"], [6, 3, 1, "", "getplugindesc"], [6, 3, 1, "", "getpluginid"], [6, 3, 1, "", "getplugininfo"], [6, 3, 1, "", "getpluginname"], [6, 3, 1, "", "getpluginversion"], [6, 3, 1, "", "getrawarraytypecode"], [6, 3, 1, "", "getrawndarraydtype"], [6, 3, 1, "", "getrawsampbit"], [6, 3, 1, "", "getrawsampwidth"], [6, 3, 1, "", "getsampbit"], [6, 3, 1, "", "getsamprate"], [6, 3, 1, "", "getsampwidth"], [6, 3, 1, "", "getsonginfo"], [6, 3, 1, "", "open"], [6, 3, 1, "", "read"], [6, 3, 1, "", "readframes"], [6, 3, 1, "", "readraw"], [6, 3, 1, "", "readrawframes"], [6, 3, 1, "", "rewind"], [6, 3, 1, "", "setcomptype"], [6, 3, 1, "", "setfiletype"], [6, 3, 1, "", "setframerate"], [6, 3, 1, "", "setmark"], [6, 3, 1, "", "setnchannels"], [6, 3, 1, "", "setnframes"], [6, 3, 1, "", "setparams"], [6, 3, 1, "", "setpos"], [6, 3, 1, "", "setsampbit"], [6, 3, 1, "", "setsamprate"], [6, 3, 1, "", "setsampwidth"], [6, 3, 1, "", "setsonginfo"], [6, 3, 1, "", "tell"], [6, 3, 1, "", "write"], [6, 3, 1, "", "writeframes"], [6, 3, 1, "", "writeraw"], [6, 3, 1, "", "writerawframes"]]}, "objtypes": {"0": "py:module", "1": "py:exception", "2": "py:class", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "exception", "Python exception"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"api": 0, "document": 0, "exampl": [1, 5, 6], "spaudio": [1, 2, 4, 5], "fullduplex": 1, "i": 1, "o": 1, "us": 1, "statement": 1, "version": 1, "0": 1, "7": 1, "15": 1, "read": 1, "plot": 1, "python": [1, 2], "arrai": 1, "raw": 1, "data": 1, "numpi": 1, "ndarrai": 1, "16": 1, "plai": 1, "wav": 1, "file": 1, "callback": 1, "record": 1, "block": 1, "write": 1, "an": 1, "readfram": 1, "writefram": 1, "spplugin": [1, 6], "audioread": 1, "audiowrit": 1, "audio": 1, "content": [1, 2], "plugin": 1, "convert": 1, "indic": 2, "tabl": 2, "introduct": 3, "instal": 3, "chang": 3, "log": 3, "build": 3, "offici": 3, "site": 3, "modul": [5, 6]}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) |
+1
-1
@@ -10,3 +10,3 @@ .. spAudio documentation master file, created by | ||
| A python package for audio I/O based on `spAudio | ||
| <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_. | ||
| <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_. | ||
@@ -13,0 +13,0 @@ .. toctree:: |
@@ -1,37 +0,20 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="ja" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="ja" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="ja" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>概要: モジュールコード — spAudio ドキュメント</title> | ||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="../_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="../_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="../_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="../_static/jquery.js"></script> | ||
| <script type="text/javascript" src="../_static/underscore.js"></script> | ||
| <script type="text/javascript" src="../_static/doctools.js"></script> | ||
| <script type="text/javascript" src="../_static/language_data.js"></script> | ||
| <script type="text/javascript" src="../_static/translations.js"></script> | ||
| <script type="text/javascript" src="../_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="../_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> | ||
| <script src="../_static/jquery.js"></script> | ||
| <script src="../_static/underscore.js"></script> | ||
| <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="../_static/doctools.js"></script> | ||
| <script src="../_static/translations.js"></script> | ||
| <script src="../_static/js/theme.js"></script> | ||
| <link rel="index" title="索引" href="../genindex.html" /> | ||
@@ -41,28 +24,16 @@ <link rel="search" title="検索" href="../search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="../index.html" class="icon icon-home"> spAudio | ||
| <a href="../index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -72,14 +43,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul> | ||
@@ -134,4 +95,2 @@ <li class="toctree-l1"><a class="reference internal" href="../main.html">はじめに</a><ul> | ||
| </div> | ||
@@ -141,49 +100,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="../index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="../index.html">Docs</a> »</li> | ||
| <li>概要: モジュールコード</li> | ||
| <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">概要: モジュールコード</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -193,3 +119,3 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <h1>全モジュールのうち、コードを読めるもの</h1> | ||
@@ -201,6 +127,4 @@ <ul><li><a href="spaudio.html">spaudio</a></li> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -210,11 +134,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| 最終更新: 2019-05-04 23:27:26 | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">最終更新: 2024-06-12 18:31:45 | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -225,24 +149,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
@@ -7,3 +7,3 @@ /* | ||
| * | ||
| * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
@@ -19,2 +19,8 @@ * | ||
| div.section::after { | ||
| display: block; | ||
| content: ''; | ||
| clear: left; | ||
| } | ||
| /* -- relbar ---------------------------------------------------------------- */ | ||
@@ -129,3 +135,3 @@ | ||
| ul.search li div.context { | ||
| ul.search li p.context { | ||
| color: #888; | ||
@@ -222,3 +228,3 @@ margin: 2px 0 0 30px; | ||
| div.body { | ||
| min-width: 450px; | ||
| min-width: 360px; | ||
| max-width: 800px; | ||
@@ -238,12 +244,2 @@ } | ||
| a.brackets:before, | ||
| span.brackets > a:before{ | ||
| content: "["; | ||
| } | ||
| a.brackets:after, | ||
| span.brackets > a:after { | ||
| content: "]"; | ||
| } | ||
| h1:hover > a.headerlink, | ||
@@ -279,3 +275,3 @@ h2:hover > a.headerlink, | ||
| img.align-left, .figure.align-left, object.align-left { | ||
| img.align-left, figure.align-left, .figure.align-left, object.align-left { | ||
| clear: left; | ||
@@ -286,3 +282,3 @@ float: left; | ||
| img.align-right, .figure.align-right, object.align-right { | ||
| img.align-right, figure.align-right, .figure.align-right, object.align-right { | ||
| clear: right; | ||
@@ -293,3 +289,3 @@ float: right; | ||
| img.align-center, .figure.align-center, object.align-center { | ||
| img.align-center, figure.align-center, .figure.align-center, object.align-center { | ||
| display: block; | ||
@@ -300,2 +296,8 @@ margin-left: auto; | ||
| img.align-default, figure.align-default, .figure.align-default { | ||
| display: block; | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| .align-left { | ||
@@ -309,2 +311,6 @@ text-align: left; | ||
| .align-default { | ||
| text-align: center; | ||
| } | ||
| .align-right { | ||
@@ -316,9 +322,12 @@ text-align: right; | ||
| div.sidebar { | ||
| div.sidebar, | ||
| aside.sidebar { | ||
| margin: 0 0 0.5em 1em; | ||
| border: 1px solid #ddb; | ||
| padding: 7px 7px 0 7px; | ||
| padding: 7px; | ||
| background-color: #ffe; | ||
| width: 40%; | ||
| float: right; | ||
| clear: right; | ||
| overflow-x: auto; | ||
| } | ||
@@ -329,8 +338,16 @@ | ||
| } | ||
| nav.contents, | ||
| aside.topic, | ||
| div.admonition, div.topic, blockquote { | ||
| clear: left; | ||
| } | ||
| /* -- topics ---------------------------------------------------------------- */ | ||
| nav.contents, | ||
| aside.topic, | ||
| div.topic { | ||
| border: 1px solid #ccc; | ||
| padding: 7px 7px 0 7px; | ||
| padding: 7px; | ||
| margin: 10px 0 10px 0; | ||
@@ -357,6 +374,2 @@ } | ||
| div.admonition dl { | ||
| margin-bottom: 0; | ||
| } | ||
| p.admonition-title { | ||
@@ -372,5 +385,32 @@ margin: 0px 10px 5px 0px; | ||
| /* -- content of sidebars/topics/admonitions -------------------------------- */ | ||
| div.sidebar > :last-child, | ||
| aside.sidebar > :last-child, | ||
| nav.contents > :last-child, | ||
| aside.topic > :last-child, | ||
| div.topic > :last-child, | ||
| div.admonition > :last-child { | ||
| margin-bottom: 0; | ||
| } | ||
| div.sidebar::after, | ||
| aside.sidebar::after, | ||
| nav.contents::after, | ||
| aside.topic::after, | ||
| div.topic::after, | ||
| div.admonition::after, | ||
| blockquote::after { | ||
| display: block; | ||
| content: ''; | ||
| clear: both; | ||
| } | ||
| /* -- tables ---------------------------------------------------------------- */ | ||
| table.docutils { | ||
| margin-top: 10px; | ||
| margin-bottom: 10px; | ||
| border: 0; | ||
@@ -385,2 +425,7 @@ border-collapse: collapse; | ||
| table.align-default { | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
| } | ||
| table caption span.caption-number { | ||
@@ -401,6 +446,2 @@ font-style: italic; | ||
| table.footnote td, table.footnote th { | ||
| border: 0 !important; | ||
| } | ||
| th { | ||
@@ -420,9 +461,9 @@ text-align: left; | ||
| th > p:first-child, | ||
| td > p:first-child { | ||
| th > :first-child, | ||
| td > :first-child { | ||
| margin-top: 0px; | ||
| } | ||
| th > p:last-child, | ||
| td > p:last-child { | ||
| th > :last-child, | ||
| td > :last-child { | ||
| margin-bottom: 0px; | ||
@@ -433,3 +474,3 @@ } | ||
| div.figure { | ||
| div.figure, figure { | ||
| margin: 0.5em; | ||
@@ -439,11 +480,13 @@ padding: 0.5em; | ||
| div.figure p.caption { | ||
| div.figure p.caption, figcaption { | ||
| padding: 0.3em; | ||
| } | ||
| div.figure p.caption span.caption-number { | ||
| div.figure p.caption span.caption-number, | ||
| figcaption span.caption-number { | ||
| font-style: italic; | ||
| } | ||
| div.figure p.caption span.caption-text { | ||
| div.figure p.caption span.caption-text, | ||
| figcaption span.caption-text { | ||
| } | ||
@@ -475,2 +518,6 @@ | ||
| table.hlist { | ||
| margin: 1em 0; | ||
| } | ||
| table.hlist td { | ||
@@ -480,3 +527,60 @@ vertical-align: top; | ||
| /* -- object description styles --------------------------------------------- */ | ||
| .sig { | ||
| font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; | ||
| } | ||
| .sig-name, code.descname { | ||
| background-color: transparent; | ||
| font-weight: bold; | ||
| } | ||
| .sig-name { | ||
| font-size: 1.1em; | ||
| } | ||
| code.descname { | ||
| font-size: 1.2em; | ||
| } | ||
| .sig-prename, code.descclassname { | ||
| background-color: transparent; | ||
| } | ||
| .optional { | ||
| font-size: 1.3em; | ||
| } | ||
| .sig-paren { | ||
| font-size: larger; | ||
| } | ||
| .sig-param.n { | ||
| font-style: italic; | ||
| } | ||
| /* C++ specific styling */ | ||
| .sig-inline.c-texpr, | ||
| .sig-inline.cpp-texpr { | ||
| font-family: unset; | ||
| } | ||
| .sig.c .k, .sig.c .kt, | ||
| .sig.cpp .k, .sig.cpp .kt { | ||
| color: #0033B3; | ||
| } | ||
| .sig.c .m, | ||
| .sig.cpp .m { | ||
| color: #1750EB; | ||
| } | ||
| .sig.c .s, .sig.c .sc, | ||
| .sig.cpp .s, .sig.cpp .sc { | ||
| color: #067D17; | ||
| } | ||
| /* -- other body styles ----------------------------------------------------- */ | ||
@@ -504,13 +608,34 @@ | ||
| li > p:first-child { | ||
| :not(li) > ol > li:first-child > :first-child, | ||
| :not(li) > ul > li:first-child > :first-child { | ||
| margin-top: 0px; | ||
| } | ||
| li > p:last-child { | ||
| :not(li) > ol > li:last-child > :last-child, | ||
| :not(li) > ul > li:last-child > :last-child { | ||
| margin-bottom: 0px; | ||
| } | ||
| ol.simple ol p, | ||
| ol.simple ul p, | ||
| ul.simple ol p, | ||
| ul.simple ul p { | ||
| margin-top: 0; | ||
| } | ||
| ol.simple > li:not(:first-child) > p, | ||
| ul.simple > li:not(:first-child) > p { | ||
| margin-top: 0; | ||
| } | ||
| ol.simple p, | ||
| ul.simple p { | ||
| margin-bottom: 0; | ||
| } | ||
| /* Docutils 0.17 and older (footnotes & citations) */ | ||
| dl.footnote > dt, | ||
| dl.citation > dt { | ||
| float: left; | ||
| margin-right: 0.5em; | ||
| } | ||
@@ -529,11 +654,39 @@ | ||
| /* Docutils 0.18+ (footnotes & citations) */ | ||
| aside.footnote > span, | ||
| div.citation > span { | ||
| float: left; | ||
| } | ||
| aside.footnote > span:last-of-type, | ||
| div.citation > span:last-of-type { | ||
| padding-right: 0.5em; | ||
| } | ||
| aside.footnote > p { | ||
| margin-left: 2em; | ||
| } | ||
| div.citation > p { | ||
| margin-left: 4em; | ||
| } | ||
| aside.footnote > p:last-of-type, | ||
| div.citation > p:last-of-type { | ||
| margin-bottom: 0em; | ||
| } | ||
| aside.footnote > p:last-of-type:after, | ||
| div.citation > p:last-of-type:after { | ||
| content: ""; | ||
| clear: both; | ||
| } | ||
| /* Footnotes & citations ends */ | ||
| dl.field-list { | ||
| display: flex; | ||
| flex-wrap: wrap; | ||
| display: grid; | ||
| grid-template-columns: fit-content(30%) auto; | ||
| } | ||
| dl.field-list > dt { | ||
| flex-basis: 20%; | ||
| font-weight: bold; | ||
| word-break: break-word; | ||
| padding-left: 0.5em; | ||
| padding-right: 5px; | ||
| } | ||
@@ -546,4 +699,4 @@ | ||
| dl.field-list > dd { | ||
| flex-basis: 70%; | ||
| padding-left: 1em; | ||
| padding-left: 0.5em; | ||
| margin-top: 0em; | ||
| margin-left: 0em; | ||
@@ -557,3 +710,3 @@ margin-bottom: 0em; | ||
| dd > p:first-child { | ||
| dd > :first-child { | ||
| margin-top: 0px; | ||
@@ -572,2 +725,7 @@ } | ||
| dl > dd:last-child, | ||
| dl > dd:last-child > :last-child { | ||
| margin-bottom: 0; | ||
| } | ||
| dt:target, span.highlighted { | ||
@@ -586,10 +744,2 @@ background-color: #fbe54e; | ||
| .optional { | ||
| font-size: 1.3em; | ||
| } | ||
| .sig-paren { | ||
| font-size: larger; | ||
| } | ||
| .versionmodified { | ||
@@ -635,4 +785,5 @@ font-style: italic; | ||
| font-style: normal; | ||
| margin: 0.5em; | ||
| margin: 0 0.5em; | ||
| content: ":"; | ||
| display: inline-block; | ||
| } | ||
@@ -652,2 +803,6 @@ | ||
| pre, div[class*="highlight-"] { | ||
| clear: both; | ||
| } | ||
| span.pre { | ||
@@ -658,6 +813,10 @@ -moz-hyphens: none; | ||
| hyphens: none; | ||
| white-space: nowrap; | ||
| } | ||
| div[class*="highlight-"] { | ||
| margin: 1em 0; | ||
| } | ||
| td.linenos pre { | ||
| padding: 5px 0px; | ||
| border: 0; | ||
@@ -669,10 +828,42 @@ background-color: transparent; | ||
| table.highlighttable { | ||
| margin-left: 0.5em; | ||
| display: block; | ||
| } | ||
| table.highlighttable tbody { | ||
| display: block; | ||
| } | ||
| table.highlighttable tr { | ||
| display: flex; | ||
| } | ||
| table.highlighttable td { | ||
| padding: 0 0.5em 0 0.5em; | ||
| margin: 0; | ||
| padding: 0; | ||
| } | ||
| table.highlighttable td.linenos { | ||
| padding-right: 0.5em; | ||
| } | ||
| table.highlighttable td.code { | ||
| flex: 1; | ||
| overflow: hidden; | ||
| } | ||
| .highlight .hll { | ||
| display: block; | ||
| } | ||
| div.highlight pre, | ||
| table.highlighttable pre { | ||
| margin: 0; | ||
| } | ||
| div.code-block-caption + div { | ||
| margin-top: 0; | ||
| } | ||
| div.code-block-caption { | ||
| margin-top: 1em; | ||
| padding: 2px 5px; | ||
@@ -686,4 +877,10 @@ font-size: small; | ||
| div.code-block-caption + div > div.highlight > pre { | ||
| margin-top: 0; | ||
| table.highlighttable td.linenos, | ||
| span.linenos, | ||
| div.highlight span.gp { /* gp: Generic.Prompt */ | ||
| user-select: none; | ||
| -webkit-user-select: text; /* Safari fallback only */ | ||
| -webkit-user-select: none; /* Chrome/Safari */ | ||
| -moz-user-select: none; /* Firefox */ | ||
| -ms-user-select: none; /* IE10+ */ | ||
| } | ||
@@ -700,19 +897,5 @@ | ||
| div.literal-block-wrapper { | ||
| padding: 1em 1em 0; | ||
| margin: 1em 0; | ||
| } | ||
| div.literal-block-wrapper div.highlight { | ||
| margin: 0; | ||
| } | ||
| code.descname { | ||
| background-color: transparent; | ||
| font-weight: bold; | ||
| font-size: 1.2em; | ||
| } | ||
| code.descclassname { | ||
| background-color: transparent; | ||
| } | ||
| code.xref, a code { | ||
@@ -756,4 +939,3 @@ background-color: transparent; | ||
| span.eqno a.headerlink { | ||
| position: relative; | ||
| left: 0px; | ||
| position: absolute; | ||
| z-index: 1; | ||
@@ -760,0 +942,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| .fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} | ||
| .clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} |
+198
-248
@@ -5,152 +5,87 @@ /* | ||
| * | ||
| * Sphinx JavaScript utilities for all documentation. | ||
| * Base JavaScript utilities for all Sphinx HTML documentation. | ||
| * | ||
| * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
| * | ||
| */ | ||
| "use strict"; | ||
| /** | ||
| * select a different prefix for underscore | ||
| */ | ||
| $u = _.noConflict(); | ||
| /** | ||
| * make the code below compatible with browsers without | ||
| * an installed firebug like debugger | ||
| if (!window.console || !console.firebug) { | ||
| var names = ["log", "debug", "info", "warn", "error", "assert", "dir", | ||
| "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", | ||
| "profile", "profileEnd"]; | ||
| window.console = {}; | ||
| for (var i = 0; i < names.length; ++i) | ||
| window.console[names[i]] = function() {}; | ||
| } | ||
| */ | ||
| /** | ||
| * small helper function to urldecode strings | ||
| */ | ||
| jQuery.urldecode = function(x) { | ||
| return decodeURIComponent(x).replace(/\+/g, ' '); | ||
| const _ready = (callback) => { | ||
| if (document.readyState !== "loading") { | ||
| callback(); | ||
| } else { | ||
| document.addEventListener("DOMContentLoaded", callback); | ||
| } | ||
| }; | ||
| /** | ||
| * small helper function to urlencode strings | ||
| * highlight a given string on a node by wrapping it in | ||
| * span elements with the given class name. | ||
| */ | ||
| jQuery.urlencode = encodeURIComponent; | ||
| const _highlight = (node, addItems, text, className) => { | ||
| if (node.nodeType === Node.TEXT_NODE) { | ||
| const val = node.nodeValue; | ||
| const parent = node.parentNode; | ||
| const pos = val.toLowerCase().indexOf(text); | ||
| if ( | ||
| pos >= 0 && | ||
| !parent.classList.contains(className) && | ||
| !parent.classList.contains("nohighlight") | ||
| ) { | ||
| let span; | ||
| /** | ||
| * This function returns the parsed url parameters of the | ||
| * current request. Multiple values per key are supported, | ||
| * it will always return arrays of strings for the value parts. | ||
| */ | ||
| jQuery.getQueryParameters = function(s) { | ||
| if (typeof s === 'undefined') | ||
| s = document.location.search; | ||
| var parts = s.substr(s.indexOf('?') + 1).split('&'); | ||
| var result = {}; | ||
| for (var i = 0; i < parts.length; i++) { | ||
| var tmp = parts[i].split('=', 2); | ||
| var key = jQuery.urldecode(tmp[0]); | ||
| var value = jQuery.urldecode(tmp[1]); | ||
| if (key in result) | ||
| result[key].push(value); | ||
| else | ||
| result[key] = [value]; | ||
| } | ||
| return result; | ||
| }; | ||
| const closestNode = parent.closest("body, svg, foreignObject"); | ||
| const isInSVG = closestNode && closestNode.matches("svg"); | ||
| if (isInSVG) { | ||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
| } else { | ||
| span = document.createElement("span"); | ||
| span.classList.add(className); | ||
| } | ||
| /** | ||
| * highlight a given string on a jquery object by wrapping it in | ||
| * span elements with the given class name. | ||
| */ | ||
| jQuery.fn.highlightText = function(text, className) { | ||
| function highlight(node, addItems) { | ||
| if (node.nodeType === 3) { | ||
| var val = node.nodeValue; | ||
| var pos = val.toLowerCase().indexOf(text); | ||
| if (pos >= 0 && | ||
| !jQuery(node.parentNode).hasClass(className) && | ||
| !jQuery(node.parentNode).hasClass("nohighlight")) { | ||
| var span; | ||
| var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); | ||
| if (isInSVG) { | ||
| span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
| } else { | ||
| span = document.createElement("span"); | ||
| span.className = className; | ||
| } | ||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
| node.parentNode.insertBefore(span, node.parentNode.insertBefore( | ||
| span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
| parent.insertBefore( | ||
| span, | ||
| parent.insertBefore( | ||
| document.createTextNode(val.substr(pos + text.length)), | ||
| node.nextSibling)); | ||
| node.nodeValue = val.substr(0, pos); | ||
| if (isInSVG) { | ||
| var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | ||
| var bbox = node.parentElement.getBBox(); | ||
| rect.x.baseVal.value = bbox.x; | ||
| rect.y.baseVal.value = bbox.y; | ||
| rect.width.baseVal.value = bbox.width; | ||
| rect.height.baseVal.value = bbox.height; | ||
| rect.setAttribute('class', className); | ||
| addItems.push({ | ||
| "parent": node.parentNode, | ||
| "target": rect}); | ||
| } | ||
| node.nextSibling | ||
| ) | ||
| ); | ||
| node.nodeValue = val.substr(0, pos); | ||
| if (isInSVG) { | ||
| const rect = document.createElementNS( | ||
| "http://www.w3.org/2000/svg", | ||
| "rect" | ||
| ); | ||
| const bbox = parent.getBBox(); | ||
| rect.x.baseVal.value = bbox.x; | ||
| rect.y.baseVal.value = bbox.y; | ||
| rect.width.baseVal.value = bbox.width; | ||
| rect.height.baseVal.value = bbox.height; | ||
| rect.setAttribute("class", className); | ||
| addItems.push({ parent: parent, target: rect }); | ||
| } | ||
| } | ||
| else if (!jQuery(node).is("button, select, textarea")) { | ||
| jQuery.each(node.childNodes, function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| } | ||
| } else if (node.matches && !node.matches("button, select, textarea")) { | ||
| node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); | ||
| } | ||
| var addItems = []; | ||
| var result = this.each(function() { | ||
| highlight(this, addItems); | ||
| }); | ||
| for (var i = 0; i < addItems.length; ++i) { | ||
| jQuery(addItems[i].parent).before(addItems[i].target); | ||
| } | ||
| return result; | ||
| }; | ||
| const _highlightText = (thisNode, text, className) => { | ||
| let addItems = []; | ||
| _highlight(thisNode, addItems, text, className); | ||
| addItems.forEach((obj) => | ||
| obj.parent.insertAdjacentElement("beforebegin", obj.target) | ||
| ); | ||
| }; | ||
| /* | ||
| * backward compatibility for jQuery.browser | ||
| * This will be supported until firefox bug is fixed. | ||
| */ | ||
| if (!jQuery.browser) { | ||
| jQuery.uaMatch = function(ua) { | ||
| ua = ua.toLowerCase(); | ||
| var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || | ||
| /(webkit)[ \/]([\w.]+)/.exec(ua) || | ||
| /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || | ||
| /(msie) ([\w.]+)/.exec(ua) || | ||
| ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || | ||
| []; | ||
| return { | ||
| browser: match[ 1 ] || "", | ||
| version: match[ 2 ] || "0" | ||
| }; | ||
| }; | ||
| jQuery.browser = {}; | ||
| jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; | ||
| } | ||
| /** | ||
| * Small JavaScript module for the documentation. | ||
| */ | ||
| var Documentation = { | ||
| init : function() { | ||
| this.fixFirefoxAnchorBug(); | ||
| this.highlightSearchWords(); | ||
| this.initIndexTable(); | ||
| if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { | ||
| this.initOnKeyListeners(); | ||
| } | ||
| const Documentation = { | ||
| init: () => { | ||
| Documentation.highlightSearchWords(); | ||
| Documentation.initDomainIndexTable(); | ||
| Documentation.initOnKeyListeners(); | ||
| }, | ||
@@ -161,156 +96,171 @@ | ||
| */ | ||
| TRANSLATIONS : {}, | ||
| PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, | ||
| LOCALE : 'unknown', | ||
| TRANSLATIONS: {}, | ||
| PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), | ||
| LOCALE: "unknown", | ||
| // gettext and ngettext don't access this so that the functions | ||
| // can safely bound to a different name (_ = Documentation.gettext) | ||
| gettext : function(string) { | ||
| var translated = Documentation.TRANSLATIONS[string]; | ||
| if (typeof translated === 'undefined') | ||
| return string; | ||
| return (typeof translated === 'string') ? translated : translated[0]; | ||
| gettext: (string) => { | ||
| const translated = Documentation.TRANSLATIONS[string]; | ||
| switch (typeof translated) { | ||
| case "undefined": | ||
| return string; // no translation | ||
| case "string": | ||
| return translated; // translation exists | ||
| default: | ||
| return translated[0]; // (singular, plural) translation tuple exists | ||
| } | ||
| }, | ||
| ngettext : function(singular, plural, n) { | ||
| var translated = Documentation.TRANSLATIONS[singular]; | ||
| if (typeof translated === 'undefined') | ||
| return (n == 1) ? singular : plural; | ||
| return translated[Documentation.PLURALEXPR(n)]; | ||
| ngettext: (singular, plural, n) => { | ||
| const translated = Documentation.TRANSLATIONS[singular]; | ||
| if (typeof translated !== "undefined") | ||
| return translated[Documentation.PLURAL_EXPR(n)]; | ||
| return n === 1 ? singular : plural; | ||
| }, | ||
| addTranslations : function(catalog) { | ||
| for (var key in catalog.messages) | ||
| this.TRANSLATIONS[key] = catalog.messages[key]; | ||
| this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); | ||
| this.LOCALE = catalog.locale; | ||
| addTranslations: (catalog) => { | ||
| Object.assign(Documentation.TRANSLATIONS, catalog.messages); | ||
| Documentation.PLURAL_EXPR = new Function( | ||
| "n", | ||
| `return (${catalog.plural_expr})` | ||
| ); | ||
| Documentation.LOCALE = catalog.locale; | ||
| }, | ||
| /** | ||
| * add context elements like header anchor links | ||
| * highlight the search words provided in the url in the text | ||
| */ | ||
| addContextElements : function() { | ||
| $('div[id] > :header:first').each(function() { | ||
| $('<a class="headerlink">\u00B6</a>'). | ||
| attr('href', '#' + this.id). | ||
| attr('title', _('Permalink to this headline')). | ||
| appendTo(this); | ||
| }); | ||
| $('dt[id]').each(function() { | ||
| $('<a class="headerlink">\u00B6</a>'). | ||
| attr('href', '#' + this.id). | ||
| attr('title', _('Permalink to this definition')). | ||
| appendTo(this); | ||
| }); | ||
| }, | ||
| highlightSearchWords: () => { | ||
| const highlight = | ||
| new URLSearchParams(window.location.search).get("highlight") || ""; | ||
| const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); | ||
| if (terms.length === 0) return; // nothing to do | ||
| /** | ||
| * workaround a firefox stupidity | ||
| * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 | ||
| */ | ||
| fixFirefoxAnchorBug : function() { | ||
| if (document.location.hash && $.browser.mozilla) | ||
| window.setTimeout(function() { | ||
| document.location.href += ''; | ||
| }, 10); | ||
| }, | ||
| // There should never be more than one element matching "div.body" | ||
| const divBody = document.querySelectorAll("div.body"); | ||
| const body = divBody.length ? divBody[0] : document.querySelector("body"); | ||
| window.setTimeout(() => { | ||
| terms.forEach((term) => _highlightText(body, term, "highlighted")); | ||
| }, 10); | ||
| /** | ||
| * highlight the search words provided in the url in the text | ||
| */ | ||
| highlightSearchWords : function() { | ||
| var params = $.getQueryParameters(); | ||
| var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; | ||
| if (terms.length) { | ||
| var body = $('div.body'); | ||
| if (!body.length) { | ||
| body = $('body'); | ||
| } | ||
| window.setTimeout(function() { | ||
| $.each(terms, function() { | ||
| body.highlightText(this.toLowerCase(), 'highlighted'); | ||
| }); | ||
| }, 10); | ||
| $('<p class="highlight-link"><a href="javascript:Documentation.' + | ||
| 'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>') | ||
| .appendTo($('#searchbox')); | ||
| } | ||
| const searchBox = document.getElementById("searchbox"); | ||
| if (searchBox === null) return; | ||
| searchBox.appendChild( | ||
| document | ||
| .createRange() | ||
| .createContextualFragment( | ||
| '<p class="highlight-link">' + | ||
| '<a href="javascript:Documentation.hideSearchWords()">' + | ||
| Documentation.gettext("Hide Search Matches") + | ||
| "</a></p>" | ||
| ) | ||
| ); | ||
| }, | ||
| /** | ||
| * init the domain index toggle buttons | ||
| * helper function to hide the search marks again | ||
| */ | ||
| initIndexTable : function() { | ||
| var togglers = $('img.toggler').click(function() { | ||
| var src = $(this).attr('src'); | ||
| var idnum = $(this).attr('id').substr(7); | ||
| $('tr.cg-' + idnum).toggle(); | ||
| if (src.substr(-9) === 'minus.png') | ||
| $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); | ||
| else | ||
| $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); | ||
| }).css('display', ''); | ||
| if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { | ||
| togglers.click(); | ||
| } | ||
| hideSearchWords: () => { | ||
| document | ||
| .querySelectorAll("#searchbox .highlight-link") | ||
| .forEach((el) => el.remove()); | ||
| document | ||
| .querySelectorAll("span.highlighted") | ||
| .forEach((el) => el.classList.remove("highlighted")); | ||
| const url = new URL(window.location); | ||
| url.searchParams.delete("highlight"); | ||
| window.history.replaceState({}, "", url); | ||
| }, | ||
| /** | ||
| * helper function to hide the search marks again | ||
| * helper function to focus on search bar | ||
| */ | ||
| hideSearchWords : function() { | ||
| $('#searchbox .highlight-link').fadeOut(300); | ||
| $('span.highlighted').removeClass('highlighted'); | ||
| focusSearchBar: () => { | ||
| document.querySelectorAll("input[name=q]")[0]?.focus(); | ||
| }, | ||
| /** | ||
| * make the url absolute | ||
| * Initialise the domain index toggle buttons | ||
| */ | ||
| makeURL : function(relativeURL) { | ||
| return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; | ||
| }, | ||
| initDomainIndexTable: () => { | ||
| const toggler = (el) => { | ||
| const idNumber = el.id.substr(7); | ||
| const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); | ||
| if (el.src.substr(-9) === "minus.png") { | ||
| el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; | ||
| toggledRows.forEach((el) => (el.style.display = "none")); | ||
| } else { | ||
| el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; | ||
| toggledRows.forEach((el) => (el.style.display = "")); | ||
| } | ||
| }; | ||
| /** | ||
| * get the current relative url | ||
| */ | ||
| getCurrentURL : function() { | ||
| var path = document.location.pathname; | ||
| var parts = path.split(/\//); | ||
| $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { | ||
| if (this === '..') | ||
| parts.pop(); | ||
| }); | ||
| var url = parts.join('/'); | ||
| return path.substring(url.lastIndexOf('/') + 1, path.length - 1); | ||
| const togglerElements = document.querySelectorAll("img.toggler"); | ||
| togglerElements.forEach((el) => | ||
| el.addEventListener("click", (event) => toggler(event.currentTarget)) | ||
| ); | ||
| togglerElements.forEach((el) => (el.style.display = "")); | ||
| if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); | ||
| }, | ||
| initOnKeyListeners: function() { | ||
| $(document).keyup(function(event) { | ||
| var activeElementType = document.activeElement.tagName; | ||
| // don't navigate when in search box or textarea | ||
| if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { | ||
| switch (event.keyCode) { | ||
| case 37: // left | ||
| var prevHref = $('link[rel="prev"]').prop('href'); | ||
| if (prevHref) { | ||
| window.location.href = prevHref; | ||
| return false; | ||
| initOnKeyListeners: () => { | ||
| // only install a listener if it is really needed | ||
| if ( | ||
| !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && | ||
| !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS | ||
| ) | ||
| return; | ||
| const blacklistedElements = new Set([ | ||
| "TEXTAREA", | ||
| "INPUT", | ||
| "SELECT", | ||
| "BUTTON", | ||
| ]); | ||
| document.addEventListener("keydown", (event) => { | ||
| if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements | ||
| if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys | ||
| if (!event.shiftKey) { | ||
| switch (event.key) { | ||
| case "ArrowLeft": | ||
| if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; | ||
| const prevLink = document.querySelector('link[rel="prev"]'); | ||
| if (prevLink && prevLink.href) { | ||
| window.location.href = prevLink.href; | ||
| event.preventDefault(); | ||
| } | ||
| case 39: // right | ||
| var nextHref = $('link[rel="next"]').prop('href'); | ||
| if (nextHref) { | ||
| window.location.href = nextHref; | ||
| return false; | ||
| break; | ||
| case "ArrowRight": | ||
| if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; | ||
| const nextLink = document.querySelector('link[rel="next"]'); | ||
| if (nextLink && nextLink.href) { | ||
| window.location.href = nextLink.href; | ||
| event.preventDefault(); | ||
| } | ||
| break; | ||
| case "Escape": | ||
| if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; | ||
| Documentation.hideSearchWords(); | ||
| event.preventDefault(); | ||
| } | ||
| } | ||
| // some keyboard layouts may need Shift to get / | ||
| switch (event.key) { | ||
| case "/": | ||
| if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; | ||
| Documentation.focusSearchBar(); | ||
| event.preventDefault(); | ||
| } | ||
| }); | ||
| } | ||
| }, | ||
| }; | ||
| // quick alias for translations | ||
| _ = Documentation.gettext; | ||
| const _ = Documentation.gettext; | ||
| $(document).ready(function() { | ||
| Documentation.init(); | ||
| }); | ||
| _ready(Documentation.init); |
@@ -6,6 +6,10 @@ var DOCUMENTATION_OPTIONS = { | ||
| COLLAPSE_INDEX: false, | ||
| BUILDER: 'html', | ||
| FILE_SUFFIX: '.html', | ||
| LINK_SUFFIX: '.html', | ||
| HAS_SOURCE: false, | ||
| SOURCELINK_SUFFIX: '.txt', | ||
| NAVIGATION_WITH_KEYS: false | ||
| NAVIGATION_WITH_KEYS: false, | ||
| SHOW_SEARCH_SUMMARY: true, | ||
| ENABLE_SEARCH_SHORTCUTS: false, | ||
| }; |
@@ -1,3 +0,1 @@ | ||
| /* sphinx_rtd_theme version 0.4.3 | MIT license */ | ||
| /* Built 20190212 16:02 */ | ||
| require=function r(s,a,l){function c(e,n){if(!a[e]){if(!s[e]){var i="function"==typeof require&&require;if(!n&&i)return i(e,!0);if(u)return u(e,!0);var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=a[e]={exports:{}};s[e][0].call(o.exports,function(n){return c(s[e][1][n]||n)},o,o.exports,r,s,a,l)}return a[e].exports}for(var u="function"==typeof require&&require,n=0;n<l.length;n++)c(l[n]);return c}({"sphinx-rtd-theme":[function(n,e,i){var jQuery="undefined"!=typeof window?window.jQuery:n("jquery");e.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(e){var i=this;void 0===e&&(e=!0),i.isRunning||(i.isRunning=!0,jQuery(function(n){i.init(n),i.reset(),i.win.on("hashchange",i.reset),e&&i.win.on("scroll",function(){i.linkScroll||i.winScroll||(i.winScroll=!0,requestAnimationFrame(function(){i.onScroll()}))}),i.win.on("resize",function(){i.winResize||(i.winResize=!0,requestAnimationFrame(function(){i.onResize()}))}),i.onResize()}))},enableSticky:function(){this.enable(!0)},init:function(i){i(document);var t=this;this.navBar=i("div.wy-side-scroll:first"),this.win=i(window),i(document).on("click","[data-toggle='wy-nav-top']",function(){i("[data-toggle='wy-nav-shift']").toggleClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift")}).on("click",".wy-menu-vertical .current ul li a",function(){var n=i(this);i("[data-toggle='wy-nav-shift']").removeClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift"),t.toggleCurrent(n),t.hashChange()}).on("click","[data-toggle='rst-current-version']",function(){i("[data-toggle='rst-versions']").toggleClass("shift-up")}),i("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),i("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),i("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),i(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var e=i(this);expand=i('<span class="toctree-expand"></span>'),expand.on("click",function(n){return t.toggleCurrent(e),n.stopPropagation(),!1}),e.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}0<i.length&&($(".wy-menu-vertical .current").removeClass("current"),i.addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l1").parent().addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l2").addClass("current"),i.closest("li.toctree-l3").addClass("current"),i.closest("li.toctree-l4").addClass("current"),i[0].scrollIntoView())}catch(o){console.log("Error expanding nav for anchor",o)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,i=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var r=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,e){var i=(new Date).getTime(),t=Math.max(0,16-(i-r)),o=window.setTimeout(function(){n(i+t)},t);return r=i+t,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()},{jquery:"jquery"}]},{},["sphinx-rtd-theme"]); | ||
| !function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),n("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),n("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n('<button class="toctree-expand" title="Open/close menu"></button>'),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[t]+"CancelAnimationFrame"]||window[e[t]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var i=(new Date).getTime(),o=Math.max(0,16-(i-n)),r=window.setTimeout((function(){e(i+o)}),o);return n=i+o,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()}).call(window)},function(n,e){n.exports=jQuery},function(n,e,t){}]); |
@@ -8,3 +8,3 @@ /* | ||
| * | ||
| * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
@@ -17,3 +17,4 @@ * | ||
| /* Non-minified version JS is _stemmer.js if file is provided */ | ||
| /* Non-minified version is copied as a separate JS file, is available */ | ||
| /** | ||
@@ -28,100 +29,1 @@ * Dummy stemmer for languages without stemming rules. | ||
| var splitChars = (function() { | ||
| var result = {}; | ||
| var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, | ||
| 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, | ||
| 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, | ||
| 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, | ||
| 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, | ||
| 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, | ||
| 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, | ||
| 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, | ||
| 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, | ||
| 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; | ||
| var i, j, start, end; | ||
| for (i = 0; i < singles.length; i++) { | ||
| result[singles[i]] = true; | ||
| } | ||
| var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], | ||
| [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], | ||
| [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], | ||
| [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], | ||
| [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], | ||
| [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], | ||
| [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], | ||
| [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], | ||
| [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], | ||
| [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], | ||
| [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], | ||
| [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], | ||
| [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], | ||
| [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], | ||
| [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], | ||
| [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], | ||
| [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], | ||
| [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], | ||
| [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], | ||
| [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], | ||
| [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], | ||
| [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], | ||
| [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], | ||
| [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], | ||
| [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], | ||
| [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], | ||
| [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], | ||
| [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], | ||
| [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], | ||
| [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], | ||
| [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], | ||
| [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], | ||
| [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], | ||
| [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], | ||
| [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], | ||
| [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], | ||
| [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], | ||
| [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], | ||
| [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], | ||
| [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], | ||
| [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], | ||
| [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], | ||
| [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], | ||
| [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], | ||
| [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], | ||
| [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], | ||
| [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], | ||
| [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], | ||
| [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; | ||
| for (i = 0; i < ranges.length; i++) { | ||
| start = ranges[i][0]; | ||
| end = ranges[i][1]; | ||
| for (j = start; j <= end; j++) { | ||
| result[j] = true; | ||
| } | ||
| } | ||
| return result; | ||
| })(); | ||
| function splitQuery(query) { | ||
| var result = []; | ||
| var start = -1; | ||
| for (var i = 0; i < query.length; i++) { | ||
| if (splitChars[query.charCodeAt(i)]) { | ||
| if (start !== -1) { | ||
| result.push(query.slice(start, i)); | ||
| start = -1; | ||
| } | ||
| } else if (start === -1) { | ||
| start = i; | ||
| } | ||
| } | ||
| if (start !== -1) { | ||
| result.push(query.slice(start)); | ||
| } | ||
| return result; | ||
| } | ||
@@ -0,3 +1,8 @@ | ||
| pre { line-height: 125%; } | ||
| td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | ||
| span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | ||
| td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | ||
| span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | ||
| .highlight .hll { background-color: #ffffcc } | ||
| .highlight { background: #eeffcc; } | ||
| .highlight { background: #eeffcc; } | ||
| .highlight .c { color: #408090; font-style: italic } /* Comment */ | ||
@@ -4,0 +9,0 @@ .highlight .err { border: 1px solid #FF0000 } /* Error */ |
@@ -7,18 +7,20 @@ /* | ||
| * | ||
| * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. | ||
| * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. | ||
| * :license: BSD, see LICENSE for details. | ||
| * | ||
| */ | ||
| "use strict"; | ||
| if (!Scorer) { | ||
| /** | ||
| * Simple result scoring code. | ||
| */ | ||
| /** | ||
| * Simple result scoring code. | ||
| */ | ||
| if (typeof Scorer === "undefined") { | ||
| var Scorer = { | ||
| // Implement the following function to further tweak the score for each result | ||
| // The function takes a result array [filename, title, anchor, descr, score] | ||
| // The function takes a result array [docname, title, anchor, descr, score, filename] | ||
| // and returns the new score. | ||
| /* | ||
| score: function(result) { | ||
| return result[4]; | ||
| score: result => { | ||
| const [docname, title, anchor, descr, score, filename] = result | ||
| return score | ||
| }, | ||
@@ -32,5 +34,7 @@ */ | ||
| // Additive scores depending on the priority of the object | ||
| objPrio: {0: 15, // used to be importantResults | ||
| 1: 5, // used to be objectResults | ||
| 2: -5}, // used to be unimportantResults | ||
| objPrio: { | ||
| 0: 15, // used to be importantResults | ||
| 1: 5, // used to be objectResults | ||
| 2: -5, // used to be unimportantResults | ||
| }, | ||
| // Used when the priority is not in the mapping. | ||
@@ -44,10 +48,103 @@ objPrioDefault: 0, | ||
| term: 5, | ||
| partialTerm: 2 | ||
| partialTerm: 2, | ||
| }; | ||
| } | ||
| if (!splitQuery) { | ||
| function splitQuery(query) { | ||
| return query.split(/\s+/); | ||
| const _removeChildren = (element) => { | ||
| while (element && element.lastChild) element.removeChild(element.lastChild); | ||
| }; | ||
| /** | ||
| * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping | ||
| */ | ||
| const _escapeRegExp = (string) => | ||
| string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string | ||
| const _displayItem = (item, highlightTerms, searchTerms) => { | ||
| const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; | ||
| const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; | ||
| const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; | ||
| const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; | ||
| const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; | ||
| const [docName, title, anchor, descr] = item; | ||
| let listItem = document.createElement("li"); | ||
| let requestUrl; | ||
| let linkUrl; | ||
| if (docBuilder === "dirhtml") { | ||
| // dirhtml builder | ||
| let dirname = docName + "/"; | ||
| if (dirname.match(/\/index\/$/)) | ||
| dirname = dirname.substring(0, dirname.length - 6); | ||
| else if (dirname === "index/") dirname = ""; | ||
| requestUrl = docUrlRoot + dirname; | ||
| linkUrl = requestUrl; | ||
| } else { | ||
| // normal html builders | ||
| requestUrl = docUrlRoot + docName + docFileSuffix; | ||
| linkUrl = docName + docLinkSuffix; | ||
| } | ||
| const params = new URLSearchParams(); | ||
| params.set("highlight", [...highlightTerms].join(" ")); | ||
| let linkEl = listItem.appendChild(document.createElement("a")); | ||
| linkEl.href = linkUrl + "?" + params.toString() + anchor; | ||
| linkEl.innerHTML = title; | ||
| if (descr) | ||
| listItem.appendChild(document.createElement("span")).innerText = | ||
| " (" + descr + ")"; | ||
| else if (showSearchSummary) | ||
| fetch(requestUrl) | ||
| .then((responseData) => responseData.text()) | ||
| .then((data) => { | ||
| if (data) | ||
| listItem.appendChild( | ||
| Search.makeSearchSummary(data, searchTerms, highlightTerms) | ||
| ); | ||
| }); | ||
| Search.output.appendChild(listItem); | ||
| }; | ||
| const _finishSearch = (resultCount) => { | ||
| Search.stopPulse(); | ||
| Search.title.innerText = _("Search Results"); | ||
| if (!resultCount) | ||
| Search.status.innerText = Documentation.gettext( | ||
| "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." | ||
| ); | ||
| else | ||
| Search.status.innerText = _( | ||
| `Search finished, found ${resultCount} page(s) matching the search query.` | ||
| ); | ||
| }; | ||
| const _displayNextItem = ( | ||
| results, | ||
| resultCount, | ||
| highlightTerms, | ||
| searchTerms | ||
| ) => { | ||
| // results left, load the summary and display it | ||
| // this is intended to be dynamic (don't sub resultsCount) | ||
| if (results.length) { | ||
| _displayItem(results.pop(), highlightTerms, searchTerms); | ||
| setTimeout( | ||
| () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), | ||
| 5 | ||
| ); | ||
| } | ||
| // search finished, update title and status message | ||
| else _finishSearch(resultCount); | ||
| }; | ||
| /** | ||
| * Default splitQuery function. Can be overridden in ``sphinx.search`` with a | ||
| * custom function per language. | ||
| * | ||
| * The regular expression works by splitting the string on consecutive characters | ||
| * that are not Unicode letters, numbers, underscores, or emoji characters. | ||
| * This is the same as ``\W+`` in Python, preserving the surrogate pair area. | ||
| */ | ||
| if (typeof splitQuery === "undefined") { | ||
| var splitQuery = (query) => query | ||
| .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) | ||
| .filter(term => term) // remove remaining empty strings | ||
| } | ||
@@ -58,69 +155,54 @@ | ||
| */ | ||
| var Search = { | ||
| const Search = { | ||
| _index: null, | ||
| _queued_query: null, | ||
| _pulse_status: -1, | ||
| _index : null, | ||
| _queued_query : null, | ||
| _pulse_status : -1, | ||
| htmlToText : function(htmlString) { | ||
| var htmlElement = document.createElement('span'); | ||
| htmlElement.innerHTML = htmlString; | ||
| $(htmlElement).find('.headerlink').remove(); | ||
| docContent = $(htmlElement).find('[role=main]')[0]; | ||
| return docContent.textContent || docContent.innerText; | ||
| htmlToText: (htmlString) => { | ||
| const htmlElement = document | ||
| .createRange() | ||
| .createContextualFragment(htmlString); | ||
| _removeChildren(htmlElement.querySelectorAll(".headerlink")); | ||
| const docContent = htmlElement.querySelector('[role="main"]'); | ||
| if (docContent !== undefined) return docContent.textContent; | ||
| console.warn( | ||
| "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." | ||
| ); | ||
| return ""; | ||
| }, | ||
| init : function() { | ||
| var params = $.getQueryParameters(); | ||
| if (params.q) { | ||
| var query = params.q[0]; | ||
| $('input[name="q"]')[0].value = query; | ||
| this.performSearch(query); | ||
| } | ||
| init: () => { | ||
| const query = new URLSearchParams(window.location.search).get("q"); | ||
| document | ||
| .querySelectorAll('input[name="q"]') | ||
| .forEach((el) => (el.value = query)); | ||
| if (query) Search.performSearch(query); | ||
| }, | ||
| loadIndex : function(url) { | ||
| $.ajax({type: "GET", url: url, data: null, | ||
| dataType: "script", cache: true, | ||
| complete: function(jqxhr, textstatus) { | ||
| if (textstatus != "success") { | ||
| document.getElementById("searchindexloader").src = url; | ||
| } | ||
| }}); | ||
| }, | ||
| loadIndex: (url) => | ||
| (document.body.appendChild(document.createElement("script")).src = url), | ||
| setIndex : function(index) { | ||
| var q; | ||
| this._index = index; | ||
| if ((q = this._queued_query) !== null) { | ||
| this._queued_query = null; | ||
| Search.query(q); | ||
| setIndex: (index) => { | ||
| Search._index = index; | ||
| if (Search._queued_query !== null) { | ||
| const query = Search._queued_query; | ||
| Search._queued_query = null; | ||
| Search.query(query); | ||
| } | ||
| }, | ||
| hasIndex : function() { | ||
| return this._index !== null; | ||
| }, | ||
| hasIndex: () => Search._index !== null, | ||
| deferQuery : function(query) { | ||
| this._queued_query = query; | ||
| }, | ||
| deferQuery: (query) => (Search._queued_query = query), | ||
| stopPulse : function() { | ||
| this._pulse_status = 0; | ||
| }, | ||
| stopPulse: () => (Search._pulse_status = -1), | ||
| startPulse : function() { | ||
| if (this._pulse_status >= 0) | ||
| return; | ||
| function pulse() { | ||
| var i; | ||
| startPulse: () => { | ||
| if (Search._pulse_status >= 0) return; | ||
| const pulse = () => { | ||
| Search._pulse_status = (Search._pulse_status + 1) % 4; | ||
| var dotString = ''; | ||
| for (i = 0; i < Search._pulse_status; i++) | ||
| dotString += '.'; | ||
| Search.dots.text(dotString); | ||
| if (Search._pulse_status > -1) | ||
| window.setTimeout(pulse, 500); | ||
| } | ||
| Search.dots.innerText = ".".repeat(Search._pulse_status); | ||
| if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); | ||
| }; | ||
| pulse(); | ||
@@ -132,18 +214,28 @@ }, | ||
| */ | ||
| performSearch : function(query) { | ||
| performSearch: (query) => { | ||
| // create the required interface elements | ||
| this.out = $('#search-results'); | ||
| this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out); | ||
| this.dots = $('<span></span>').appendTo(this.title); | ||
| this.status = $('<p class="search-summary"> </p>').appendTo(this.out); | ||
| this.output = $('<ul class="search"/>').appendTo(this.out); | ||
| const searchText = document.createElement("h2"); | ||
| searchText.textContent = _("Searching"); | ||
| const searchSummary = document.createElement("p"); | ||
| searchSummary.classList.add("search-summary"); | ||
| searchSummary.innerText = ""; | ||
| const searchList = document.createElement("ul"); | ||
| searchList.classList.add("search"); | ||
| $('#search-progress').text(_('Preparing search...')); | ||
| this.startPulse(); | ||
| const out = document.getElementById("search-results"); | ||
| Search.title = out.appendChild(searchText); | ||
| Search.dots = Search.title.appendChild(document.createElement("span")); | ||
| Search.status = out.appendChild(searchSummary); | ||
| Search.output = out.appendChild(searchList); | ||
| const searchProgress = document.getElementById("search-progress"); | ||
| // Some themes don't use the search progress node | ||
| if (searchProgress) { | ||
| searchProgress.innerText = _("Preparing search..."); | ||
| } | ||
| Search.startPulse(); | ||
| // index already loaded, the browser was quick! | ||
| if (this.hasIndex()) | ||
| this.query(query); | ||
| else | ||
| this.deferQuery(query); | ||
| if (Search.hasIndex()) Search.query(query); | ||
| else Search.deferQuery(query); | ||
| }, | ||
@@ -154,71 +246,48 @@ | ||
| */ | ||
| query : function(query) { | ||
| var i; | ||
| query: (query) => { | ||
| // stem the search terms and add them to the correct list | ||
| const stemmer = new Stemmer(); | ||
| const searchTerms = new Set(); | ||
| const excludedTerms = new Set(); | ||
| const highlightTerms = new Set(); | ||
| const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); | ||
| splitQuery(query.trim()).forEach((queryTerm) => { | ||
| const queryTermLower = queryTerm.toLowerCase(); | ||
| // stem the searchterms and add them to the correct list | ||
| var stemmer = new Stemmer(); | ||
| var searchterms = []; | ||
| var excluded = []; | ||
| var hlterms = []; | ||
| var tmp = splitQuery(query); | ||
| var objectterms = []; | ||
| for (i = 0; i < tmp.length; i++) { | ||
| if (tmp[i] !== "") { | ||
| objectterms.push(tmp[i].toLowerCase()); | ||
| } | ||
| // maybe skip this "word" | ||
| // stopwords array is from language_data.js | ||
| if ( | ||
| stopwords.indexOf(queryTermLower) !== -1 || | ||
| queryTerm.match(/^\d+$/) | ||
| ) | ||
| return; | ||
| if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) || | ||
| tmp[i] === "") { | ||
| // skip this "word" | ||
| continue; | ||
| } | ||
| // stem the word | ||
| var word = stemmer.stemWord(tmp[i].toLowerCase()); | ||
| // prevent stemmer from cutting word smaller than two chars | ||
| if(word.length < 3 && tmp[i].length >= 3) { | ||
| word = tmp[i]; | ||
| } | ||
| var toAppend; | ||
| let word = stemmer.stemWord(queryTermLower); | ||
| // select the correct list | ||
| if (word[0] == '-') { | ||
| toAppend = excluded; | ||
| word = word.substr(1); | ||
| } | ||
| if (word[0] === "-") excludedTerms.add(word.substr(1)); | ||
| else { | ||
| toAppend = searchterms; | ||
| hlterms.push(tmp[i].toLowerCase()); | ||
| searchTerms.add(word); | ||
| highlightTerms.add(queryTermLower); | ||
| } | ||
| // only add if not already in the list | ||
| if (!$u.contains(toAppend, word)) | ||
| toAppend.push(word); | ||
| } | ||
| var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" ")); | ||
| }); | ||
| // console.debug('SEARCH: searching for:'); | ||
| // console.info('required: ', searchterms); | ||
| // console.info('excluded: ', excluded); | ||
| // console.debug("SEARCH: searching for:"); | ||
| // console.info("required: ", [...searchTerms]); | ||
| // console.info("excluded: ", [...excludedTerms]); | ||
| // prepare search | ||
| var terms = this._index.terms; | ||
| var titleterms = this._index.titleterms; | ||
| // array of [docname, title, anchor, descr, score, filename] | ||
| let results = []; | ||
| _removeChildren(document.getElementById("search-progress")); | ||
| // array of [filename, title, anchor, descr, score] | ||
| var results = []; | ||
| $('#search-progress').empty(); | ||
| // lookup as object | ||
| for (i = 0; i < objectterms.length; i++) { | ||
| var others = [].concat(objectterms.slice(0, i), | ||
| objectterms.slice(i+1, objectterms.length)); | ||
| results = results.concat(this.performObjectSearch(objectterms[i], others)); | ||
| } | ||
| objectTerms.forEach((term) => | ||
| results.push(...Search.performObjectSearch(term, objectTerms)) | ||
| ); | ||
| // lookup as search terms in fulltext | ||
| results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms)); | ||
| results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); | ||
| // let the scorer override scores with a custom scoring function | ||
| if (Scorer.score) { | ||
| for (i = 0; i < results.length; i++) | ||
| results[i][4] = Scorer.score(results[i]); | ||
| } | ||
| if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); | ||
@@ -228,84 +297,35 @@ // now sort the results by score (in opposite order of appearance, since the | ||
| // alphabetically | ||
| results.sort(function(a, b) { | ||
| var left = a[4]; | ||
| var right = b[4]; | ||
| if (left > right) { | ||
| return 1; | ||
| } else if (left < right) { | ||
| return -1; | ||
| } else { | ||
| results.sort((a, b) => { | ||
| const leftScore = a[4]; | ||
| const rightScore = b[4]; | ||
| if (leftScore === rightScore) { | ||
| // same score: sort alphabetically | ||
| left = a[1].toLowerCase(); | ||
| right = b[1].toLowerCase(); | ||
| return (left > right) ? -1 : ((left < right) ? 1 : 0); | ||
| const leftTitle = a[1].toLowerCase(); | ||
| const rightTitle = b[1].toLowerCase(); | ||
| if (leftTitle === rightTitle) return 0; | ||
| return leftTitle > rightTitle ? -1 : 1; // inverted is intentional | ||
| } | ||
| return leftScore > rightScore ? 1 : -1; | ||
| }); | ||
| // remove duplicate search results | ||
| // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept | ||
| let seen = new Set(); | ||
| results = results.reverse().reduce((acc, result) => { | ||
| let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); | ||
| if (!seen.has(resultStr)) { | ||
| acc.push(result); | ||
| seen.add(resultStr); | ||
| } | ||
| return acc; | ||
| }, []); | ||
| results = results.reverse(); | ||
| // for debugging | ||
| //Search.lastresults = results.slice(); // a copy | ||
| //console.info('search results:', Search.lastresults); | ||
| // console.info("search results:", Search.lastresults); | ||
| // print the results | ||
| var resultCount = results.length; | ||
| function displayNextItem() { | ||
| // results left, load the summary and display it | ||
| if (results.length) { | ||
| var item = results.pop(); | ||
| var listItem = $('<li style="display:none"></li>'); | ||
| if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') { | ||
| // dirhtml builder | ||
| var dirname = item[0] + '/'; | ||
| if (dirname.match(/\/index\/$/)) { | ||
| dirname = dirname.substring(0, dirname.length-6); | ||
| } else if (dirname == 'index/') { | ||
| dirname = ''; | ||
| } | ||
| listItem.append($('<a/>').attr('href', | ||
| DOCUMENTATION_OPTIONS.URL_ROOT + dirname + | ||
| highlightstring + item[2]).html(item[1])); | ||
| } else { | ||
| // normal html builders | ||
| listItem.append($('<a/>').attr('href', | ||
| item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX + | ||
| highlightstring + item[2]).html(item[1])); | ||
| } | ||
| if (item[3]) { | ||
| listItem.append($('<span> (' + item[3] + ')</span>')); | ||
| Search.output.append(listItem); | ||
| listItem.slideDown(5, function() { | ||
| displayNextItem(); | ||
| }); | ||
| } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { | ||
| $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX, | ||
| dataType: "text", | ||
| complete: function(jqxhr, textstatus) { | ||
| var data = jqxhr.responseText; | ||
| if (data !== '' && data !== undefined) { | ||
| listItem.append(Search.makeSearchSummary(data, searchterms, hlterms)); | ||
| } | ||
| Search.output.append(listItem); | ||
| listItem.slideDown(5, function() { | ||
| displayNextItem(); | ||
| }); | ||
| }}); | ||
| } else { | ||
| // no source available, just display title | ||
| Search.output.append(listItem); | ||
| listItem.slideDown(5, function() { | ||
| displayNextItem(); | ||
| }); | ||
| } | ||
| } | ||
| // search finished, update title and status message | ||
| else { | ||
| Search.stopPulse(); | ||
| Search.title.text(_('Search Results')); | ||
| if (!resultCount) | ||
| Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.')); | ||
| else | ||
| Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount)); | ||
| Search.status.fadeIn(500); | ||
| } | ||
| } | ||
| displayNextItem(); | ||
| _displayNextItem(results, results.length, highlightTerms, searchTerms); | ||
| }, | ||
@@ -316,63 +336,67 @@ | ||
| */ | ||
| performObjectSearch : function(object, otherterms) { | ||
| var filenames = this._index.filenames; | ||
| var docnames = this._index.docnames; | ||
| var objects = this._index.objects; | ||
| var objnames = this._index.objnames; | ||
| var titles = this._index.titles; | ||
| performObjectSearch: (object, objectTerms) => { | ||
| const filenames = Search._index.filenames; | ||
| const docNames = Search._index.docnames; | ||
| const objects = Search._index.objects; | ||
| const objNames = Search._index.objnames; | ||
| const titles = Search._index.titles; | ||
| var i; | ||
| var results = []; | ||
| const results = []; | ||
| for (var prefix in objects) { | ||
| for (var name in objects[prefix]) { | ||
| var fullname = (prefix ? prefix + '.' : '') + name; | ||
| if (fullname.toLowerCase().indexOf(object) > -1) { | ||
| var score = 0; | ||
| var parts = fullname.split('.'); | ||
| // check for different match types: exact matches of full name or | ||
| // "last name" (i.e. last dotted part) | ||
| if (fullname == object || parts[parts.length - 1] == object) { | ||
| score += Scorer.objNameMatch; | ||
| // matches in last name | ||
| } else if (parts[parts.length - 1].indexOf(object) > -1) { | ||
| score += Scorer.objPartialMatch; | ||
| } | ||
| var match = objects[prefix][name]; | ||
| var objname = objnames[match[1]][2]; | ||
| var title = titles[match[0]]; | ||
| // If more than one term searched for, we require other words to be | ||
| // found in the name/title/description | ||
| if (otherterms.length > 0) { | ||
| var haystack = (prefix + ' ' + name + ' ' + | ||
| objname + ' ' + title).toLowerCase(); | ||
| var allfound = true; | ||
| for (i = 0; i < otherterms.length; i++) { | ||
| if (haystack.indexOf(otherterms[i]) == -1) { | ||
| allfound = false; | ||
| break; | ||
| } | ||
| } | ||
| if (!allfound) { | ||
| continue; | ||
| } | ||
| } | ||
| var descr = objname + _(', in ') + title; | ||
| const objectSearchCallback = (prefix, match) => { | ||
| const name = match[4] | ||
| const fullname = (prefix ? prefix + "." : "") + name; | ||
| const fullnameLower = fullname.toLowerCase(); | ||
| if (fullnameLower.indexOf(object) < 0) return; | ||
| var anchor = match[3]; | ||
| if (anchor === '') | ||
| anchor = fullname; | ||
| else if (anchor == '-') | ||
| anchor = objnames[match[1]][1] + '-' + fullname; | ||
| // add custom score for some objects according to scorer | ||
| if (Scorer.objPrio.hasOwnProperty(match[2])) { | ||
| score += Scorer.objPrio[match[2]]; | ||
| } else { | ||
| score += Scorer.objPrioDefault; | ||
| } | ||
| results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]); | ||
| } | ||
| let score = 0; | ||
| const parts = fullnameLower.split("."); | ||
| // check for different match types: exact matches of full name or | ||
| // "last name" (i.e. last dotted part) | ||
| if (fullnameLower === object || parts.slice(-1)[0] === object) | ||
| score += Scorer.objNameMatch; | ||
| else if (parts.slice(-1)[0].indexOf(object) > -1) | ||
| score += Scorer.objPartialMatch; // matches in last name | ||
| const objName = objNames[match[1]][2]; | ||
| const title = titles[match[0]]; | ||
| // If more than one term searched for, we require other words to be | ||
| // found in the name/title/description | ||
| const otherTerms = new Set(objectTerms); | ||
| otherTerms.delete(object); | ||
| if (otherTerms.size > 0) { | ||
| const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); | ||
| if ( | ||
| [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) | ||
| ) | ||
| return; | ||
| } | ||
| } | ||
| let anchor = match[3]; | ||
| if (anchor === "") anchor = fullname; | ||
| else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; | ||
| const descr = objName + _(", in ") + title; | ||
| // add custom score for some objects according to scorer | ||
| if (Scorer.objPrio.hasOwnProperty(match[2])) | ||
| score += Scorer.objPrio[match[2]]; | ||
| else score += Scorer.objPrioDefault; | ||
| results.push([ | ||
| docNames[match[0]], | ||
| fullname, | ||
| "#" + anchor, | ||
| descr, | ||
| score, | ||
| filenames[match[0]], | ||
| ]); | ||
| }; | ||
| Object.keys(objects).forEach((prefix) => | ||
| objects[prefix].forEach((array) => | ||
| objectSearchCallback(prefix, array) | ||
| ) | ||
| ); | ||
| return results; | ||
@@ -384,97 +408,97 @@ }, | ||
| */ | ||
| performTermsSearch : function(searchterms, excluded, terms, titleterms) { | ||
| var docnames = this._index.docnames; | ||
| var filenames = this._index.filenames; | ||
| var titles = this._index.titles; | ||
| performTermsSearch: (searchTerms, excludedTerms) => { | ||
| // prepare search | ||
| const terms = Search._index.terms; | ||
| const titleTerms = Search._index.titleterms; | ||
| const docNames = Search._index.docnames; | ||
| const filenames = Search._index.filenames; | ||
| const titles = Search._index.titles; | ||
| var i, j, file; | ||
| var fileMap = {}; | ||
| var scoreMap = {}; | ||
| var results = []; | ||
| const scoreMap = new Map(); | ||
| const fileMap = new Map(); | ||
| // perform the search on the required terms | ||
| for (i = 0; i < searchterms.length; i++) { | ||
| var word = searchterms[i]; | ||
| var files = []; | ||
| var _o = [ | ||
| {files: terms[word], score: Scorer.term}, | ||
| {files: titleterms[word], score: Scorer.title} | ||
| searchTerms.forEach((word) => { | ||
| const files = []; | ||
| const arr = [ | ||
| { files: terms[word], score: Scorer.term }, | ||
| { files: titleTerms[word], score: Scorer.title }, | ||
| ]; | ||
| // add support for partial matches | ||
| if (word.length > 2) { | ||
| for (var w in terms) { | ||
| if (w.match(word) && !terms[word]) { | ||
| _o.push({files: terms[w], score: Scorer.partialTerm}) | ||
| } | ||
| } | ||
| for (var w in titleterms) { | ||
| if (w.match(word) && !titleterms[word]) { | ||
| _o.push({files: titleterms[w], score: Scorer.partialTitle}) | ||
| } | ||
| } | ||
| const escapedWord = _escapeRegExp(word); | ||
| Object.keys(terms).forEach((term) => { | ||
| if (term.match(escapedWord) && !terms[word]) | ||
| arr.push({ files: terms[term], score: Scorer.partialTerm }); | ||
| }); | ||
| Object.keys(titleTerms).forEach((term) => { | ||
| if (term.match(escapedWord) && !titleTerms[word]) | ||
| arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); | ||
| }); | ||
| } | ||
| // no match but word was a required one | ||
| if ($u.every(_o, function(o){return o.files === undefined;})) { | ||
| break; | ||
| } | ||
| if (arr.every((record) => record.files === undefined)) return; | ||
| // found search word in contents | ||
| $u.each(_o, function(o) { | ||
| var _files = o.files; | ||
| if (_files === undefined) | ||
| return | ||
| arr.forEach((record) => { | ||
| if (record.files === undefined) return; | ||
| if (_files.length === undefined) | ||
| _files = [_files]; | ||
| files = files.concat(_files); | ||
| let recordFiles = record.files; | ||
| if (recordFiles.length === undefined) recordFiles = [recordFiles]; | ||
| files.push(...recordFiles); | ||
| // set score for the word in each file to Scorer.term | ||
| for (j = 0; j < _files.length; j++) { | ||
| file = _files[j]; | ||
| if (!(file in scoreMap)) | ||
| scoreMap[file] = {} | ||
| scoreMap[file][word] = o.score; | ||
| } | ||
| // set score for the word in each file | ||
| recordFiles.forEach((file) => { | ||
| if (!scoreMap.has(file)) scoreMap.set(file, {}); | ||
| scoreMap.get(file)[word] = record.score; | ||
| }); | ||
| }); | ||
| // create the mapping | ||
| for (j = 0; j < files.length; j++) { | ||
| file = files[j]; | ||
| if (file in fileMap) | ||
| fileMap[file].push(word); | ||
| else | ||
| fileMap[file] = [word]; | ||
| } | ||
| } | ||
| files.forEach((file) => { | ||
| if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) | ||
| fileMap.get(file).push(word); | ||
| else fileMap.set(file, [word]); | ||
| }); | ||
| }); | ||
| // now check if the files don't contain excluded terms | ||
| for (file in fileMap) { | ||
| var valid = true; | ||
| const results = []; | ||
| for (const [file, wordList] of fileMap) { | ||
| // check if all requirements are matched | ||
| // check if all requirements are matched | ||
| var filteredTermCount = // as search terms with length < 3 are discarded: ignore | ||
| searchterms.filter(function(term){return term.length > 2}).length | ||
| // as search terms with length < 3 are discarded | ||
| const filteredTermCount = [...searchTerms].filter( | ||
| (term) => term.length > 2 | ||
| ).length; | ||
| if ( | ||
| fileMap[file].length != searchterms.length && | ||
| fileMap[file].length != filteredTermCount | ||
| ) continue; | ||
| wordList.length !== searchTerms.size && | ||
| wordList.length !== filteredTermCount | ||
| ) | ||
| continue; | ||
| // ensure that none of the excluded terms is in the search result | ||
| for (i = 0; i < excluded.length; i++) { | ||
| if (terms[excluded[i]] == file || | ||
| titleterms[excluded[i]] == file || | ||
| $u.contains(terms[excluded[i]] || [], file) || | ||
| $u.contains(titleterms[excluded[i]] || [], file)) { | ||
| valid = false; | ||
| break; | ||
| } | ||
| } | ||
| if ( | ||
| [...excludedTerms].some( | ||
| (term) => | ||
| terms[term] === file || | ||
| titleTerms[term] === file || | ||
| (terms[term] || []).includes(file) || | ||
| (titleTerms[term] || []).includes(file) | ||
| ) | ||
| ) | ||
| break; | ||
| // if we have still a valid result we can add it to the result list | ||
| if (valid) { | ||
| // select one (max) score for the file. | ||
| // for better ranking, we should calculate ranking by using words statistics like basic tf-idf... | ||
| var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]})); | ||
| results.push([docnames[file], titles[file], '', null, score, filenames[file]]); | ||
| } | ||
| // select one (max) score for the file. | ||
| const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); | ||
| // add result to the result list | ||
| results.push([ | ||
| docNames[file], | ||
| titles[file], | ||
| "", | ||
| null, | ||
| score, | ||
| filenames[file], | ||
| ]); | ||
| } | ||
@@ -487,29 +511,31 @@ return results; | ||
| * search summary for a given text. keywords is a list | ||
| * of stemmed words, hlwords is the list of normal, unstemmed | ||
| * of stemmed words, highlightWords is the list of normal, unstemmed | ||
| * words. the first one is used to find the occurrence, the | ||
| * latter for highlighting it. | ||
| */ | ||
| makeSearchSummary : function(htmlText, keywords, hlwords) { | ||
| var text = Search.htmlToText(htmlText); | ||
| var textLower = text.toLowerCase(); | ||
| var start = 0; | ||
| $.each(keywords, function() { | ||
| var i = textLower.indexOf(this.toLowerCase()); | ||
| if (i > -1) | ||
| start = i; | ||
| }); | ||
| start = Math.max(start - 120, 0); | ||
| var excerpt = ((start > 0) ? '...' : '') + | ||
| $.trim(text.substr(start, 240)) + | ||
| ((start + 240 - text.length) ? '...' : ''); | ||
| var rv = $('<div class="context"></div>').text(excerpt); | ||
| $.each(hlwords, function() { | ||
| rv = rv.highlightText(this, 'highlighted'); | ||
| }); | ||
| return rv; | ||
| } | ||
| makeSearchSummary: (htmlText, keywords, highlightWords) => { | ||
| const text = Search.htmlToText(htmlText).toLowerCase(); | ||
| if (text === "") return null; | ||
| const actualStartPosition = [...keywords] | ||
| .map((k) => text.indexOf(k.toLowerCase())) | ||
| .filter((i) => i > -1) | ||
| .slice(-1)[0]; | ||
| const startWithContext = Math.max(actualStartPosition - 120, 0); | ||
| const top = startWithContext === 0 ? "" : "..."; | ||
| const tail = startWithContext + 240 < text.length ? "..." : ""; | ||
| let summary = document.createElement("div"); | ||
| summary.classList.add("context"); | ||
| summary.innerText = top + text.substr(startWithContext, 240).trim() + tail; | ||
| highlightWords.forEach((highlightWord) => | ||
| _highlightText(summary, highlightWord, "highlighted") | ||
| ); | ||
| return summary; | ||
| }, | ||
| }; | ||
| $(document).ready(function() { | ||
| Search.init(); | ||
| }); | ||
| _ready(Search.init); |
@@ -1,1 +0,61 @@ | ||
| Documentation.addTranslations({"locale": "ja", "messages": {"%(filename)s — %(docstitle)s": "%(filename)s — %(docstitle)s", "© <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "© <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "© Copyright %(copyright)s.": "© Copyright %(copyright)s.", ", in ": ", in ", "About these documents": "\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u3064\u3044\u3066", "Automatically generated list of changes in version %(version)s": "\u30d0\u30fc\u30b8\u30e7\u30f3 %(version)s \u306e\u5909\u66f4\u70b9\uff08\u3053\u306e\u30ea\u30b9\u30c8\u306f\u81ea\u52d5\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\uff09", "C API changes": "C API \u306b\u95a2\u3059\u308b\u5909\u66f4", "Changes in Version %(version)s — %(docstitle)s": "\u30d0\u30fc\u30b8\u30e7\u30f3 %(version)s \u306e\u5909\u66f4\u70b9 — %(docstitle)s", "Collapse sidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u305f\u305f\u3080", "Complete Table of Contents": "\u7dcf\u5408\u76ee\u6b21", "Contents": "\u30b3\u30f3\u30c6\u30f3\u30c4", "Copyright": "\u8457\u4f5c\u6a29", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u3067\u751f\u6210\u3057\u307e\u3057\u305f\u3002", "Expand sidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u5c55\u958b", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u3053\u306e\u30da\u30fc\u30b8\u304b\u3089\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u691c\u7d22\u3067\u304d\u307e\u3059\u3002\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4e0b\u306e\u30dc\u30c3\u30af\u30b9\u306b\u5165\u529b\u3057\u3066\u3001\u300c\u691c\u7d22\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5165\u529b\u3055\u308c\u305f\u5168\u3066\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u542b\u3080\u30da\u30fc\u30b8\u304c\u691c\u7d22\u3055\u308c\u307e\u3059\u3002\u4e00\u90e8\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3057\u304b\u542b\u307e\u306a\u3044\u30da\u30fc\u30b8\u306f\u691c\u7d22\u7d50\u679c\u306b\u8868\u793a\u3055\u308c\u306a\u3044\u306e\u3067\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Full index on one page": "\u7dcf\u7d22\u5f15", "General Index": "\u7dcf\u5408\u7d22\u5f15", "Global Module Index": "\u30e2\u30b8\u30e5\u30fc\u30eb\u7dcf\u7d22\u5f15", "Go": "\u691c\u7d22", "Hide Search Matches": "\u691c\u7d22\u7d50\u679c\u3092\u96a0\u3059", "Index": "\u7d22\u5f15", "Index – %(key)s": "\u7d22\u5f15 – %(key)s", "Index pages by letter": "\u982d\u6587\u5b57\u5225\u7d22\u5f15", "Indices and tables:": "\u7d22\u5f15\u3068\u8868\u4e00\u89a7:", "Last updated on %(last_updated)s.": "\u6700\u7d42\u66f4\u65b0: %(last_updated)s", "Library changes": "\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u95a2\u3059\u308b\u5909\u66f4", "Navigation": "\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3", "Next topic": "\u6b21\u306e\u30c8\u30d4\u30c3\u30af\u3078", "Other changes": "\u305d\u306e\u4ed6\u306e\u5909\u66f4", "Overview": "\u6982\u8981", "Permalink to this definition": "\u3053\u306e\u5b9a\u7fa9\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Permalink to this headline": "\u3053\u306e\u30d8\u30c3\u30c9\u30e9\u30a4\u30f3\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Please activate JavaScript to enable the search\n functionality.": "\u691c\u7d22\u6a5f\u80fd\u3092\u4f7f\u3046\u306b\u306f JavaScript \u3092\u6709\u52b9\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Preparing search...": "\u691c\u7d22\u3092\u6e96\u5099\u3057\u3066\u3044\u307e\u3059...", "Previous topic": "\u524d\u306e\u30c8\u30d4\u30c3\u30af\u3078", "Quick search": "\u30af\u30a4\u30c3\u30af\u691c\u7d22", "Search": "\u691c\u7d22", "Search Page": "\u691c\u7d22\u30da\u30fc\u30b8", "Search Results": "\u691c\u7d22\u7d50\u679c", "Search finished, found %s page(s) matching the search query.": "\u691c\u7d22\u304c\u5b8c\u4e86\u3057\u3001 %s \u30da\u30fc\u30b8\u898b\u3064\u3051\u307e\u3057\u305f\u3002", "Search within %(docstitle)s": "%(docstitle)s \u5185\u3092\u691c\u7d22", "Searching": "\u691c\u7d22\u4e2d", "Show Source": "\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u8868\u793a", "Table of Contents": "\u76ee\u6b21", "This Page": "\u3053\u306e\u30da\u30fc\u30b8", "Welcome! This is": "Welcome! This is", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u691c\u7d22\u3057\u305f\u6587\u5b57\u5217\u306f\u3069\u306e\u6587\u66f8\u306b\u3082\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3059\u3079\u3066\u306e\u5358\u8a9e\u304c\u6b63\u78ba\u306b\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b\u304b\u3001\u3042\u308b\u3044\u306f\u3001\u5341\u5206\u306a\u30ab\u30c6\u30b4\u30ea\u30fc\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "all functions, classes, terms": "\u95a2\u6570\u3001\u30af\u30e9\u30b9\u304a\u3088\u3073\u7528\u8a9e\u7dcf\u89a7", "can be huge": "\u5927\u304d\u3044\u5834\u5408\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f", "last updated": "\u6700\u7d42\u66f4\u65b0", "lists all sections and subsections": "\u7ae0\uff0f\u7bc0\u4e00\u89a7", "next chapter": "\u6b21\u306e\u7ae0\u3078", "previous chapter": "\u524d\u306e\u7ae0\u3078", "quick access to all modules": "\u5168\u30e2\u30b8\u30e5\u30fc\u30eb\u65e9\u898b\u8868", "search": "\u691c\u7d22", "search this documentation": "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u691c\u7d22", "the documentation for": "the documentation for"}, "plural_expr": "0"}); | ||
| Documentation.addTranslations({ | ||
| "locale": "ja", | ||
| "messages": { | ||
| "%(filename)s — %(docstitle)s": "%(filename)s — %(docstitle)s", | ||
| "© <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "© <a href=\"%(path)s\">Copyright</a> %(copyright)s.", | ||
| "© Copyright %(copyright)s.": "© Copyright %(copyright)s.", | ||
| ", in ": ", in ", | ||
| "About these documents": "\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u3064\u3044\u3066", | ||
| "Automatically generated list of changes in version %(version)s": "\u30d0\u30fc\u30b8\u30e7\u30f3 %(version)s \u306e\u5909\u66f4\u70b9\uff08\u3053\u306e\u30ea\u30b9\u30c8\u306f\u81ea\u52d5\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\uff09", | ||
| "C API changes": "C API \u306b\u95a2\u3059\u308b\u5909\u66f4", | ||
| "Changes in Version %(version)s — %(docstitle)s": "\u30d0\u30fc\u30b8\u30e7\u30f3 %(version)s \u306e\u5909\u66f4\u70b9 — %(docstitle)s", | ||
| "Collapse sidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u305f\u305f\u3080", | ||
| "Complete Table of Contents": "\u7dcf\u5408\u76ee\u6b21", | ||
| "Contents": "\u30b3\u30f3\u30c6\u30f3\u30c4", | ||
| "Copyright": "\u8457\u4f5c\u6a29", | ||
| "Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "", | ||
| "Expand sidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u5c55\u958b", | ||
| "Full index on one page": "\u7dcf\u7d22\u5f15", | ||
| "General Index": "\u7dcf\u5408\u7d22\u5f15", | ||
| "Global Module Index": "\u30e2\u30b8\u30e5\u30fc\u30eb\u7dcf\u7d22\u5f15", | ||
| "Go": "\u691c\u7d22", | ||
| "Hide Search Matches": "\u691c\u7d22\u7d50\u679c\u3092\u96a0\u3059", | ||
| "Index": "\u7d22\u5f15", | ||
| "Index – %(key)s": "\u7d22\u5f15 – %(key)s", | ||
| "Index pages by letter": "\u982d\u6587\u5b57\u5225\u7d22\u5f15", | ||
| "Indices and tables:": "\u7d22\u5f15\u3068\u8868\u4e00\u89a7:", | ||
| "Last updated on %(last_updated)s.": "\u6700\u7d42\u66f4\u65b0: %(last_updated)s", | ||
| "Library changes": "\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u95a2\u3059\u308b\u5909\u66f4", | ||
| "Navigation": "\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3", | ||
| "Next topic": "\u6b21\u306e\u30c8\u30d4\u30c3\u30af\u3078", | ||
| "Other changes": "\u305d\u306e\u4ed6\u306e\u5909\u66f4", | ||
| "Overview": "\u6982\u8981", | ||
| "Please activate JavaScript to enable the search\n functionality.": "\u691c\u7d22\u6a5f\u80fd\u3092\u4f7f\u3046\u306b\u306f JavaScript \u3092\u6709\u52b9\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002", | ||
| "Preparing search...": "\u691c\u7d22\u3092\u6e96\u5099\u3057\u3066\u3044\u307e\u3059...", | ||
| "Previous topic": "\u524d\u306e\u30c8\u30d4\u30c3\u30af\u3078", | ||
| "Quick search": "\u30af\u30a4\u30c3\u30af\u691c\u7d22", | ||
| "Search": "\u691c\u7d22", | ||
| "Search Page": "\u691c\u7d22\u30da\u30fc\u30b8", | ||
| "Search Results": "\u691c\u7d22\u7d50\u679c", | ||
| "Search finished, found ${resultCount} page(s) matching the search query.": "", | ||
| "Search within %(docstitle)s": "%(docstitle)s \u5185\u3092\u691c\u7d22", | ||
| "Searching": "\u691c\u7d22\u4e2d", | ||
| "Searching for multiple words only shows matches that contain\n all words.": "\u8907\u6570\u306e\u5358\u8a9e\u3092\u691c\u7d22\u3059\u308b\u3068\u3001\u6b21\u3092\u542b\u3080\u4e00\u81f4\u306e\u307f\u304c\u8868\u793a\u3055\u308c\u307e\u3059\n \u00a0\u00a0\u00a0 \u3059\u3079\u3066\u306e\u7528\u8a9e\u3002", | ||
| "Show Source": "\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u8868\u793a", | ||
| "Table of Contents": "\u76ee\u6b21", | ||
| "This Page": "\u3053\u306e\u30da\u30fc\u30b8", | ||
| "Welcome! This is": "Welcome! This is", | ||
| "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u691c\u7d22\u3057\u305f\u6587\u5b57\u5217\u306f\u3069\u306e\u6587\u66f8\u306b\u3082\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3059\u3079\u3066\u306e\u5358\u8a9e\u304c\u6b63\u78ba\u306b\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b\u304b\u3001\u3042\u308b\u3044\u306f\u3001\u5341\u5206\u306a\u30ab\u30c6\u30b4\u30ea\u30fc\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002", | ||
| "all functions, classes, terms": "\u95a2\u6570\u3001\u30af\u30e9\u30b9\u304a\u3088\u3073\u7528\u8a9e\u7dcf\u89a7", | ||
| "can be huge": "\u5927\u304d\u3044\u5834\u5408\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f", | ||
| "last updated": "\u6700\u7d42\u66f4\u65b0", | ||
| "lists all sections and subsections": "\u7ae0\uff0f\u7bc0\u4e00\u89a7", | ||
| "next chapter": "\u6b21\u306e\u7ae0\u3078", | ||
| "previous chapter": "\u524d\u306e\u7ae0\u3078", | ||
| "quick access to all modules": "\u5168\u30e2\u30b8\u30e5\u30fc\u30eb\u65e9\u898b\u8868", | ||
| "search": "\u691c\u7d22", | ||
| "search this documentation": "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u691c\u7d22", | ||
| "the documentation for": "the documentation for" | ||
| }, | ||
| "plural_expr": "0" | ||
| }); |
@@ -1,31 +0,6 @@ | ||
| // Underscore.js 1.3.1 | ||
| // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. | ||
| // Underscore is freely distributable under the MIT license. | ||
| // Portions of Underscore are inspired or borrowed from Prototype, | ||
| // Oliver Steele's Functional, and John Resig's Micro-Templating. | ||
| // For all details and documentation: | ||
| // http://documentcloud.github.com/underscore | ||
| (function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source== | ||
| c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c, | ||
| h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each= | ||
| b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a== | ||
| null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect= | ||
| function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e= | ||
| e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck= | ||
| function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a,computed:b})}); | ||
| return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a, | ||
| c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest= | ||
| b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];return d},[]); | ||
| return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c, | ||
| d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g}; | ||
| var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a, | ||
| c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c));g?h=true: | ||
| a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}}; | ||
| b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments, | ||
| 1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)}; | ||
| b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"}; | ||
| b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};b.mixin=function(a){j(b.functions(a), | ||
| function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+ | ||
| u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]= | ||
| function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain= | ||
| true;return this};m.prototype.value=function(){return this._wrapped}}).call(this); | ||
| !function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ | ||
| // Underscore.js 1.13.1 | ||
| // https://underscorejs.org | ||
| // (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors | ||
| // Underscore may be freely distributed under the MIT license. | ||
| var n="1.13.1",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}function x(n){var r="[object "+n+"]";return function(n){return a.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k&&(T=function(n){return"function"==typeof n||!1});var D=T,R=x("Object"),F=l&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x("Array");function W(n,r){return null!=n&&f.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return("function"===o||"object"===o||"object"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return u.valueOf.call(r)===u.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,o)}var f="[object Array]"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if("object"!=typeof r||"object"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&"constructor"in r&&"constructor"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn="forEach",ln="has",sn=["clear","delete"],pn=["get",ln,"set"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=["add"].concat(sn,cn,ln),dn=V?fn(vn):x("Map"),gn=V?fn(hn):x("WeakMap"),bn=V?fn(yn):x("Set"),mn=x("WeakSet");function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Object(t)),e<2||null==t)return t;for(var u=1;u<e;u++)for(var o=arguments[u],i=n(o),a=i.length,f=0;f<a;f++){var c=i[f];r&&void 0!==t[c]||(t[c]=o[c])}return t}}var xn=An(an),Sn=An(nn),On=An(an,!0);function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.prototype=n;var t=new r;return r.prototype=null,t}function En(n){return _(n)?U(n)?n.slice():xn({},n):n}function Bn(n){return U(n)?n:[n]}function Nn(n){return tn.toPath(n)}function In(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function Tn(n,r,t){var e=In(n,Nn(r));return w(e)?t:e}function kn(n){return n}function Dn(n){return n=Sn({},n),function(r){return rn(r,n)}}function Rn(n){return n=Nn(n),function(r){return In(r,n)}}function Fn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:return function(t){return n.call(r,t)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return function(){return n.apply(r,arguments)}}function Vn(n,r,t){return null==n?kn:D(n)?Fn(n,r,t):_(n)&&!U(n)?Dn(n):Rn(n)}function Pn(n,r){return Vn(n,r,1/0)}function qn(n,r,t){return tn.iteratee!==Pn?tn.iteratee(n,r):Vn(n,r,t)}function Un(){}function Wn(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=Bn,tn.iteratee=Pn;var zn=Date.now||function(){return(new Date).getTime()};function Ln(n){var r=function(r){return n[r]},t="(?:"+nn(n).join("|")+")",e=RegExp(t),u=RegExp(t,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,r):n}}var $n={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=/^\s*(\w|\$)+\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a<o;a++)i[a]=r[a]===t?arguments[u++]:r[a];for(;u<arguments.length;)i.push(arguments[u++]);return nr(n,e,this,this,i)};return e}));rr.placeholder=tn;var tr=j((function(n,r,t){if(!D(n))throw new TypeError("Bind must be called on a function");var e=j((function(u){return nr(n,e,r,this,t.concat(u))}));return e})),er=K(Y);function ur(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,o=0,i=Y(n);o<i;o++){var a=n[o];if(er(a)&&(U(a)||L(a)))if(r>1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else t||(e[u++]=a)}return e}var or=j((function(n,r){var t=(r=ur(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=tr(n[e],n)}return n}));var ir=j((function(n,r,t){return setTimeout((function(){return n.apply(null,t)}),r)})),ar=rr(ir,tn,1);function fr(n){return function(){return!n.apply(this,arguments)}}function cr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function pr(n){return function(r,t,e){t=qn(t,e);for(var u=Y(r),o=n>0?0:u-1;o>=0&&o<u;o+=n)if(t(r[o],o,r))return o;return-1}}var vr=pr(1),hr=pr(-1);function yr(n,r,t,e){for(var u=(t=qn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function dr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if("number"==typeof o)n>0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o<f;o+=n)if(e[o]===u)return o;return-1}}var gr=dr(1,vr,yr),br=dr(-1,hr);function mr(n,r,t){var e=(er(n)?vr:sr)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function jr(n,r,t){var e,u;if(r=Fn(r,t),er(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=nn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function _r(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function wr(n){var r=function(r,t,e,u){var o=!er(r)&&nn(r),i=(o||r).length,a=n>0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a<i;a+=n){var f=o?o[a]:a;e=t(e,r[f],f,r)}return e};return function(n,t,e,u){var o=arguments.length>=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function Mr(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function Er(n,r,t,e){return er(n)||(n=jn(n)),("number"!=typeof t||e)&&(t=0),gr(n,r,t)>=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e>o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=Wn(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function kr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=qn(e,u),jr(t,(function(r,u){var i=e(r,u,t);n(o,r,i)})),o}}var Dr=kr((function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]})),Rr=kr((function(n,r,t){n[t]=r})),Fr=kr((function(n,r,t){W(n,t)?n[t]++:n[t]=1})),Vr=kr((function(n,r,t){n[t?0:1].push(r)}),!0),Pr=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function qr(n,r,t){return r in t}var Ur=j((function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(r.length>1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t})),Wr=j((function(n,r){var t,e=r[0];return D(e)?(e=fr(e),r.length>1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?Er(o,c)||(o.push(c),u.push(f)):Er(u,f)||u.push(f)}return u}var Gr=j((function(n){return Jr(ur(n,!0,!0))}));function Hr(n){for(var r=n&&Ir(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Nr(n,e);return t}var Qr=j(Hr);function Xr(n,r){return n._chain?tn(r).chain():r}function Yr(n){return jr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototype[r]=function(){var n=[this._wrapped];return o.apply(n,arguments),Xr(this,t.apply(tn,n))}})),tn}jr(["pop","push","reverse","shift","sort","splice","unshift"],(function(n){var r=t[n];tn.prototype[n]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),"shift"!==n&&"splice"!==n||0!==t.length||delete t[0]),Xr(this,t)}})),jr(["concat","join","slice"],(function(n){var r=t[n];tn.prototype[n]=function(){var n=this._wrapped;return null!=n&&(n=r.apply(n,arguments)),Xr(this,n)}}));var Zr=Yr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return"number"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:dn,isWeakMap:gn,isSet:bn,isWeakSet:mn,keys:nn,allKeys:an,values:jn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:_n,functions:wn,methods:wn,extend:xn,extendOwn:Sn,assign:Sn,defaults:On,create:function(n,r){var t=Mn(n);return r&&Sn(t,r),t},clone:En,tap:function(n,r){return r(n),n},get:Tn,has:function(n,r){for(var t=(r=Nn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=qn(r,t);for(var e=nn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},identity:kn,constant:C,noop:Un,toPath:Bn,property:Rn,propertyOf:function(n){return null==n?Un:function(r){return Tn(n,r)}},matcher:Dn,matches:Dn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Fn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Wn,now:zn,escape:Cn,unescape:Kn,templateSettings:Jn,template:function(n,r,t){!r&&t&&(r=t),r=On({},r,tn.templateSettings);var e=RegExp([(r.escape||Gn).source,(r.interpolate||Gn).source,(r.evaluate||Gn).source].join("|")+"|$","g"),u=0,o="__p+='";n.replace(e,(function(r,t,e,i,a){return o+=n.slice(u,a).replace(Qn,Xn),u=a+r.length,t?o+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?o+="'+\n((__t=("+e+"))==null?'':__t)+\n'":i&&(o+="';\n"+i+"\n__p+='"),r})),o+="';\n";var i,a=r.variable;if(a){if(!Yn.test(a))throw new Error("variable is not a bare identifier: "+a)}else o="with(obj||{}){\n"+o+"}\n",a="obj";o="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{i=new Function(a,"_",o)}catch(n){throw n.source=o,n}var f=function(n){return i.call(this,n,tn)};return f.source="function("+a+"){\n"+o+"}",f},result:function(n,r,t){var e=(r=Nn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=D(o)?o.call(n):o}return n},uniqueId:function(n){var r=++Zn+"";return n?n+r:r},chain:function(n){var r=tn(n);return r._chain=!0,r},iteratee:Pn,partial:rr,bind:tr,bindAll:or,memoize:function(n,r){var t=function(e){var u=t.cache,o=""+(r?r.apply(this,arguments):e);return W(u,o)||(u[o]=n.apply(this,arguments)),u[o]};return t.cache={},t},delay:ir,defer:ar,throttle:function(n,r,t){var e,u,o,i,a=0;t||(t={});var f=function(){a=!1===t.leading?0:zn(),e=null,i=n.apply(u,o),e||(u=o=null)},c=function(){var c=zn();a||!1!==t.leading||(a=c);var l=r-(c-a);return u=this,o=arguments,l<=0||l>r?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e<o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))<i||u===1/0&&o===1/0)&&(o=n,i=u)}));return o},shuffle:function(n){return Tr(n,1/0)},sample:Tr,sortBy:function(n,r,t){var e=0;return r=qn(r,t),Nr(_r(n,(function(n,t,u){return{value:n,index:e++,criteria:r(n,t,u)}})).sort((function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(t>e||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index})),"value")},groupBy:Dr,indexBy:Rr,countBy:Fr,partition:Vr,toArray:function(n){return n?U(n)?i.call(n):S(n)?n.match(Pr):er(n)?_r(n,kn):jn(n):[]},size:function(n){return null==n?0:er(n)?n.length:nn(n).length},pick:Ur,omit:Wr,first:Lr,head:Lr,take:Lr,initial:zr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:$r(n,Math.max(0,n.length-r))},rest:$r,tail:$r,drop:$r,compact:function(n){return Sr(n,Boolean)},flatten:function(n,r){return ur(n,r,!1)},without:Kr,uniq:Jr,unique:Jr,union:Gr,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var o=n[e];if(!Er(r,o)){var i;for(i=1;i<t&&Er(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:Cr,unzip:Hr,transpose:Hr,zip:Qr,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(i.call(n,e,e+=r));return t},mixin:Yr,default:tn});return Zr._=Zr,Zr})); |
+48
-141
@@ -1,37 +0,21 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="ja" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="ja" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="ja" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>APIドキュメント — spAudio ドキュメント</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/translations.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/translations.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="索引" href="genindex.html" /> | ||
@@ -43,28 +27,16 @@ <link rel="search" title="検索" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -74,14 +46,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul class="current"> | ||
@@ -107,3 +69,3 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">はじめに</a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">読み込みとプロット(NumPy ndarrayバージョン)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">読み込みとプロット(NumPy ndarrayバージョン; <code class="docutils literal notranslate"><span class="pre">with</span></code> 文を使用; バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">読み込みとプロット(NumPy Raw ndarrayバージョン)</a></li> | ||
@@ -118,6 +80,9 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">WAVファイルの再生</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">ブロックごとに書き込み(バージョン0.7.15以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <cite>readframes</cite> and <cite>writeframes</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> と <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> と <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">プラグインによる音声ファイルの読み込みと,その内容のプロット</a></li> | ||
@@ -129,4 +94,2 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">プラグインによる音声ファイルの再生</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">プラグインによる音声ファイルの変換</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <cite>audioread</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <cite>audioread</cite> and <cite>audiowrite</cite> (version 0.7.16+)</a></li> | ||
| </ul> | ||
@@ -138,4 +101,2 @@ </li> | ||
| </div> | ||
@@ -145,51 +106,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>APIドキュメント</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">APIドキュメント</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -199,5 +125,5 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <div class="section" id="api-documentation"> | ||
| <h1>APIドキュメント<a class="headerlink" href="#api-documentation" title="このヘッドラインへのパーマリンク">¶</a></h1> | ||
| <section id="api-documentation"> | ||
| <h1>APIドキュメント<a class="headerlink" href="#api-documentation" title="Permalink to this heading"></a></h1> | ||
| <div class="toctree-wrapper compound"> | ||
@@ -209,19 +135,11 @@ <ul> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="spaudio.html" class="btn btn-neutral float-right" title="spaudioモジュール" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| <a href="main.html" class="btn btn-neutral float-left" title="はじめに" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> | ||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | ||
| <a href="main.html" class="btn btn-neutral float-left" title="はじめに" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> | ||
| <a href="spaudio.html" class="btn btn-neutral float-right" title="spaudioモジュール" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | ||
| </div> | ||
@@ -231,11 +149,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| 最終更新: 2019-05-04 23:02:19 | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">最終更新: 2024-06-11 0:25:00 | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -246,24 +164,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+67
-131
@@ -1,38 +0,20 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="ja" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="ja" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="ja" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>索引 — spAudio ドキュメント</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/translations.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/translations.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="索引" href="#" /> | ||
@@ -42,28 +24,16 @@ <link rel="search" title="検索" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -73,14 +43,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul> | ||
@@ -135,4 +95,2 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">はじめに</a><ul> | ||
| </div> | ||
@@ -142,51 +100,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>索引</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">索引</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -196,3 +119,3 @@ </div> | ||
| <div itemprop="articleBody"> | ||
@@ -215,2 +138,3 @@ <h1 id="index">索引</h1> | ||
| | <a href="#W"><strong>W</strong></a> | ||
| | <a href="#モ"><strong>モ</strong></a> | ||
@@ -573,4 +497,2 @@ </div> | ||
| </li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.setparams">setparams() (spaudio.SpAudio のメソッド)</a> | ||
@@ -582,2 +504,4 @@ | ||
| </ul></li> | ||
| </ul></td> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin.setpos">setpos() (spplugin.SpFilePlugin のメソッド)</a> | ||
@@ -605,10 +529,20 @@ </li> | ||
| </li> | ||
| <li> | ||
| spaudio | ||
| <ul> | ||
| <li><a href="spaudio.html#module-spaudio">モジュール</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio">SpAudio (spaudio のクラス)</a> | ||
| </li> | ||
| <li><a href="spaudio.html#module-spaudio">spaudio (モジュール)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#spplugin.SpFilePlugin">SpFilePlugin (spplugin のクラス)</a> | ||
| </li> | ||
| <li><a href="spplugin.html#module-spplugin">spplugin (モジュール)</a> | ||
| <li> | ||
| spplugin | ||
| <ul> | ||
| <li><a href="spplugin.html#module-spplugin">モジュール</a> | ||
| </li> | ||
| </ul></li> | ||
| <li><a href="spaudio.html#spaudio.SpAudio.stop">stop() (spaudio.SpAudio のメソッド)</a> | ||
@@ -669,9 +603,22 @@ </li> | ||
| <h2 id="モ">モ</h2> | ||
| <table style="width: 100%" class="indextable genindextable"><tr> | ||
| <td style="width: 33%; vertical-align: top;"><ul> | ||
| <li> | ||
| モジュール | ||
| <ul> | ||
| <li><a href="spaudio.html#module-spaudio">spaudio</a> | ||
| </li> | ||
| <li><a href="spplugin.html#module-spplugin">spplugin</a> | ||
| </li> | ||
| </ul></li> | ||
| </ul></td> | ||
| </tr></table> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -681,11 +628,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| 最終更新: 2019-05-04 23:27:26 | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">最終更新: 2024-06-12 18:31:45 | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -696,24 +643,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+47
-140
@@ -1,37 +0,21 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="ja" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="ja" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="ja" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>spAudio for Python — spAudio ドキュメント</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/translations.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/translations.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="索引" href="genindex.html" /> | ||
@@ -42,28 +26,16 @@ <link rel="search" title="検索" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="#" class="icon icon-home"> spAudio | ||
| <a href="#" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -73,14 +45,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul> | ||
@@ -135,4 +97,2 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">はじめに</a><ul> | ||
| </div> | ||
@@ -142,51 +102,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="#">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="#">Docs</a> »</li> | ||
| <li>spAudio for Python</li> | ||
| <li><a href="#" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">spAudio for Python</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -196,8 +121,8 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <div class="section" id="spaudio-for-python"> | ||
| <h1>spAudio for Python<a class="headerlink" href="#spaudio-for-python" title="このヘッドラインへのパーマリンク">¶</a></h1> | ||
| <p><a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index-j.html">spAudio</a> に基づくオーディオ入出力のpythonパッケージです.</p> | ||
| <section id="spaudio-for-python"> | ||
| <h1>spAudio for Python<a class="headerlink" href="#spaudio-for-python" title="Permalink to this heading"></a></h1> | ||
| <p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index-j.html">spAudio</a> に基づくオーディオ入出力のpythonパッケージです.</p> | ||
| <div class="toctree-wrapper compound"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul> | ||
@@ -252,5 +177,5 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">はじめに</a><ul> | ||
| </div> | ||
| </div> | ||
| <div class="section" id="indices-and-tables"> | ||
| <h1>索引<a class="headerlink" href="#indices-and-tables" title="このヘッドラインへのパーマリンク">¶</a></h1> | ||
| </section> | ||
| <section id="indices-and-tables"> | ||
| <h1>索引<a class="headerlink" href="#indices-and-tables" title="Permalink to this heading"></a></h1> | ||
| <ul class="simple"> | ||
@@ -260,17 +185,10 @@ <li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">索引</span></a></p></li> | ||
| </ul> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="main.html" class="btn btn-neutral float-right" title="はじめに" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | ||
| <a href="main.html" class="btn btn-neutral float-right" title="はじめに" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | ||
| </div> | ||
@@ -280,11 +198,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| 最終更新: 2019-05-04 23:27:26 | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">最終更新: 2024-06-12 18:31:45 | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -295,24 +213,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+98
-170
@@ -1,37 +0,21 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="ja" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="ja" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="ja" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>はじめに — spAudio ドキュメント</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/translations.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/translations.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="索引" href="genindex.html" /> | ||
@@ -43,28 +27,16 @@ <link rel="search" title="検索" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -74,14 +46,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul class="current"> | ||
@@ -107,3 +69,3 @@ <li class="toctree-l1 current"><a class="current reference internal" href="#">はじめに</a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">読み込みとプロット(NumPy ndarrayバージョン)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">読み込みとプロット(NumPy ndarrayバージョン; <code class="docutils literal notranslate"><span class="pre">with</span></code> 文を使用; バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">読み込みとプロット(NumPy Raw ndarrayバージョン)</a></li> | ||
@@ -118,6 +80,9 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">WAVファイルの再生</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">ブロックごとに書き込み(バージョン0.7.15以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <cite>readframes</cite> and <cite>writeframes</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> と <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> と <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">プラグインによる音声ファイルの読み込みと,その内容のプロット</a></li> | ||
@@ -129,4 +94,2 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">プラグインによる音声ファイルの再生</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">プラグインによる音声ファイルの変換</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <cite>audioread</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <cite>audioread</cite> and <cite>audiowrite</cite> (version 0.7.16+)</a></li> | ||
| </ul> | ||
@@ -138,4 +101,2 @@ </li> | ||
| </div> | ||
@@ -145,51 +106,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>はじめに</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">はじめに</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -199,8 +125,8 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <div class="section" id="introduction"> | ||
| <h1>はじめに<a class="headerlink" href="#introduction" title="このヘッドラインへのパーマリンク">¶</a></h1> | ||
| <p>このパッケージは,<a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index-j.html">spAudio ライブラリ</a> のpython版で,フルデュプレックスのオーディオデバイス入出力を可能とする <a class="reference internal" href="spaudio.html"><span class="doc">spaudio</span></a> モジュールと,WAV,AIFF,MP3,Ogg Vorbis,FLAC,ALAC,rawなど,様々なファイル形式の読み書きをプラグインにより可能とする <a class="reference internal" href="spplugin.html"><span class="doc">spplugin</span></a> モジュールが用意されています.</p> | ||
| <div class="section" id="installation"> | ||
| <h2>インストール<a class="headerlink" href="#installation" title="このヘッドラインへのパーマリンク">¶</a></h2> | ||
| <section id="introduction"> | ||
| <h1>はじめに<a class="headerlink" href="#introduction" title="Permalink to this heading"></a></h1> | ||
| <p>このパッケージは,<a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index-j.html">spAudio ライブラリ</a> のPython版で,フルデュプレックスのオーディオデバイス入出力を可能とする <a class="reference internal" href="spaudio.html"><span class="doc">spaudio</span></a> モジュールと,WAV,AIFF,MP3,Ogg Vorbis,FLAC,ALAC,rawなど,様々なファイル形式の読み書きをプラグインにより可能とする <a class="reference internal" href="spplugin.html"><span class="doc">spplugin</span></a> モジュールが用意されています.sppluginモジュールは,ハイレゾファイルなどで用いられる24/32ビットのサンプル幅にも対応しており,24/32ビットのサンプル幅のファイルを,例えば <a class="reference external" href="http://www.numpy.org/">NumPy</a> のndarrayなどに読み込んで簡単に扱うことができます.</p> | ||
| <section id="installation"> | ||
| <h2>インストール<a class="headerlink" href="#installation" title="Permalink to this heading"></a></h2> | ||
| <p>バイナリーパッケージをインストールする際には, <code class="docutils literal notranslate"><span class="pre">pip</span></code> コマンドを使うことができます.</p> | ||
@@ -215,8 +141,23 @@ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">spaudio</span> | ||
| <p><a class="reference external" href="http://www.numpy.org/">NumPy</a> パッケージが NumPy の配列を用いる場合のみに必要となります.それ以外の場合には外部パッケージは特に必要ありません.なお,このパッケージはPython 2はサポートしていないのでご注意ください.</p> | ||
| <p>Linuxバージョンは,<a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spPlugin</a> のインストール(特に,オーディオデバイス入出力には, <a class="reference external" href="https://www.freedesktop.org/wiki/Software/PulseAudio/">PulseAudio</a> を利用した pulsesimple プラグインが必要になります)も必要になります.これは, <code class="docutils literal notranslate"><span class="pre">dpkg</span></code> (Ubuntu) または <code class="docutils literal notranslate"><span class="pre">rpm</span></code> (CentOS) のコマンドを,以下のいずれかのファイルと共に使用してインストールできます.</p> | ||
| <p>Linuxバージョンは,<a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index-j.html">spPlugin</a> のインストール(特に,オーディオデバイス入出力には, <a class="reference external" href="https://www.freedesktop.org/wiki/Software/PulseAudio/">PulseAudio</a> を利用した pulsesimple プラグインが必要になります)も必要になります.これは, <code class="docutils literal notranslate"><span class="pre">dpkg</span></code> (Ubuntu) または <code class="docutils literal notranslate"><span class="pre">rpm</span></code> (RHEL) のコマンドを,以下のいずれかのファイルと共に使用してインストールできます.RHEL用のファイルは,RHEL互換OSである,CentOS 7 (RHEL 7用)とAlmaLinux 8/9 (RHEL 8/9用)で動作確認されています.</p> | ||
| <ul class="simple"> | ||
| <li><p>Ubuntu 24</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu24/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu24/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 22</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu22/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu22/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 20</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 18</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_i386.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_i386.deb</a></p></li> | ||
| </ul> | ||
@@ -226,28 +167,34 @@ </li> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| <li><p>amd64: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_amd64.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_i386.deb">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_i386.deb</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Ubuntu 14</p> | ||
| <li><p>RHEL 9</p> | ||
| <ul> | ||
| <li><p>amd64: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb</a></p></li> | ||
| <li><p>i386: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el9/x86_64/spPlugin-0.8.6-3.x86_64.rpm">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el9/x86_64/spPlugin-0.8.6-3.x86_64.rpm</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>CentOS 7</p> | ||
| <li><p>RHEL 8</p> | ||
| <ul> | ||
| <li><p><a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el8/x86_64/spPlugin-0.8.6-3.x86_64.rpm">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el8/x86_64/spPlugin-0.8.6-3.x86_64.rpm</a></p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>CentOS 6</p> | ||
| <li><p>RHEL 7</p> | ||
| <ul> | ||
| <li><p><a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm">http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.6-3.x86_64.rpm">https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.6-3.x86_64.rpm</a></p></li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| <p><code class="docutils literal notranslate"><span class="pre">apt</span></code> (Ubuntu) か <code class="docutils literal notranslate"><span class="pre">yum</span></code> (CentOS) を使いたい場合は, <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download-j.html#apt_dpkg">こちらのページ (Ubuntu)</a> か <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download-j.html#yum">こちらのページ (CentOS)</a> を見てください.</p> | ||
| </div> | ||
| <div class="section" id="change-log"> | ||
| <h2>更新履歴<a class="headerlink" href="#change-log" title="このヘッドラインへのパーマリンク">¶</a></h2> | ||
| <p><code class="docutils literal notranslate"><span class="pre">apt</span></code> (Ubuntu) か <code class="docutils literal notranslate"><span class="pre">yum</span></code> (RHEL) を使いたい場合は, <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download-j.html#apt_dpkg">こちらのページ (Ubuntu)</a> か <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download-j.html#yum">こちらのページ (RHEL)</a> を見てください.</p> | ||
| </section> | ||
| <section id="change-log"> | ||
| <h2>更新履歴<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h2> | ||
| <ul class="simple"> | ||
| <li><p>Version 0.7.17</p> | ||
| <ul> | ||
| <li><p>バイナリファイルの再ビルド.</p></li> | ||
| <li><p>ドキュメントの更新.</p></li> | ||
| <li><p>sppluginモジュールのプラグインのバグを修正.</p></li> | ||
| </ul> | ||
| </li> | ||
| <li><p>Version 0.7.16</p> | ||
@@ -277,33 +224,25 @@ <ul> | ||
| </ul> | ||
| </div> | ||
| <div class="section" id="build"> | ||
| <h2>ビルド<a class="headerlink" href="#build" title="このヘッドラインへのパーマリンク">¶</a></h2> | ||
| </section> | ||
| <section id="build"> | ||
| <h2>ビルド<a class="headerlink" href="#build" title="Permalink to this heading"></a></h2> | ||
| <p>このパッケージをビルドするには,以下が必要になります.</p> | ||
| <ul class="simple"> | ||
| <li><p><a class="reference external" href="http://www.swig.org/">SWIG</a></p></li> | ||
| <li><p><a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spBase と spAudio</a></p></li> | ||
| <li><p><a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html">spBase と spAudio</a></p></li> | ||
| </ul> | ||
| </div> | ||
| <div class="section" id="official-site"> | ||
| <h2>オフィシャルサイト<a class="headerlink" href="#official-site" title="このヘッドラインへのパーマリンク">¶</a></h2> | ||
| <p>オフィシャルサイトはこちらです: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html">http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html</a></p> | ||
| <p>日本語のページも用意されています: <a class="reference external" href="http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html">http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html</a></p> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| <section id="official-site"> | ||
| <h2>オフィシャルサイト<a class="headerlink" href="#official-site" title="Permalink to this heading"></a></h2> | ||
| <p>オフィシャルサイトはこちらです: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html">https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html</a></p> | ||
| <p>日本語のページも用意されています: <a class="reference external" href="https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html">https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html</a></p> | ||
| </section> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| <a href="apidoc.html" class="btn btn-neutral float-right" title="APIドキュメント" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> | ||
| <a href="index.html" class="btn btn-neutral float-left" title="spAudio for Python" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> | ||
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> | ||
| <a href="index.html" class="btn btn-neutral float-left" title="spAudio for Python" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> | ||
| <a href="apidoc.html" class="btn btn-neutral float-right" title="APIドキュメント" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | ||
| </div> | ||
@@ -313,11 +252,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| 最終更新: 2019-05-04 23:02:19 | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">最終更新: 2024-06-12 18:31:45 | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -328,24 +267,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+45
-132
@@ -1,37 +0,21 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="ja" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="ja" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="ja" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>spAudio — spAudio ドキュメント</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/translations.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/translations.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="索引" href="genindex.html" /> | ||
@@ -41,28 +25,16 @@ <link rel="search" title="検索" href="search.html" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -72,14 +44,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul> | ||
@@ -105,3 +67,3 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">はじめに</a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version">読み込みとプロット(NumPy ndarrayバージョン)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">Read and plot (NumPy ndarray version; using <code class="docutils literal notranslate"><span class="pre">with</span></code> statement; version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-ndarray-version-using-with-statement-version-0-7-16">読み込みとプロット(NumPy ndarrayバージョン; <code class="docutils literal notranslate"><span class="pre">with</span></code> 文を使用; バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#read-and-plot-numpy-raw-ndarray-version">読み込みとプロット(NumPy Raw ndarrayバージョン)</a></li> | ||
@@ -116,6 +78,9 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-a-wav-file">WAVファイルの再生</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#block-write-version-0-7-15">ブロックごとに書き込み(バージョン0.7.15以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16">An example of <cite>readframes</cite> and <cite>writeframes</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-readframes-and-writeframes-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">readframes()</span></code> と <code class="xref py py-func docutils literal notranslate"><span class="pre">writeframes()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| </ul> | ||
| </li> | ||
| <li class="toctree-l2"><a class="reference internal" href="examples.html#spplugin"><span class="xref std std-doc">spplugin</span></a><ul> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audiowrite-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16"><code class="xref py py-func docutils literal notranslate"><span class="pre">audioread()</span></code> と <code class="xref py py-func docutils literal notranslate"><span class="pre">audiowrite()</span></code> の使用例(バージョン0.7.16以降)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#plot-an-audio-file-contents-by-plugin">プラグインによる音声ファイルの読み込みと,その内容のプロット</a></li> | ||
@@ -127,4 +92,2 @@ <li class="toctree-l3"><a class="reference internal" href="examples.html#play-an-audio-file-contents-by-plugin">プラグインによる音声ファイルの再生</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#convert-an-audio-file-by-plugin">プラグインによる音声ファイルの変換</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-version-0-7-16">An example of <cite>audioread</cite> (version 0.7.16+)</a></li> | ||
| <li class="toctree-l3"><a class="reference internal" href="examples.html#an-example-of-audioread-and-audiowrite-version-0-7-16">An example of <cite>audioread</cite> and <cite>audiowrite</cite> (version 0.7.16+)</a></li> | ||
| </ul> | ||
@@ -136,4 +99,2 @@ </li> | ||
| </div> | ||
@@ -143,51 +104,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>spAudio</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">spAudio</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -197,5 +123,5 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <div class="section" id="spaudio"> | ||
| <h1>spAudio<a class="headerlink" href="#spaudio" title="このヘッドラインへのパーマリンク">¶</a></h1> | ||
| <section id="spaudio"> | ||
| <h1>spAudio<a class="headerlink" href="#spaudio" title="Permalink to this heading"></a></h1> | ||
| <div class="toctree-wrapper compound"> | ||
@@ -207,10 +133,8 @@ <ul> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -220,11 +144,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| 最終更新: 2019-05-04 23:02:19 | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">最終更新: 2024-06-11 0:25:00 | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -235,24 +159,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
@@ -1,37 +0,20 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="ja" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="ja" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="ja" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>Pythonモジュール索引 — spAudio ドキュメント</title> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/translations.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/translations.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <link rel="index" title="索引" href="genindex.html" /> | ||
@@ -41,3 +24,3 @@ <link rel="search" title="検索" href="search.html" /> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true; | ||
@@ -49,28 +32,16 @@ </script> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -80,14 +51,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul> | ||
@@ -142,4 +103,2 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">はじめに</a><ul> | ||
| </div> | ||
@@ -149,49 +108,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>Pythonモジュール索引</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">Pythonモジュール索引</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -201,3 +127,3 @@ </div> | ||
| <div itemprop="articleBody"> | ||
@@ -228,6 +154,4 @@ <h1>Pythonモジュール索引</h1> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -237,11 +161,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| 最終更新: 2019-05-04 23:27:26 | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">最終更新: 2024-06-12 18:31:45 | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -252,24 +176,13 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
| SphinxRtdTheme.Navigation.enable(true); | ||
| }); | ||
| </script> | ||
| </script> | ||
| </body> | ||
| </html> |
+40
-128
@@ -1,38 +0,23 @@ | ||
| <!DOCTYPE html> | ||
| <!--[if IE 8]><html class="no-js lt-ie9" lang="ja" > <![endif]--> | ||
| <!--[if gt IE 8]><!--> <html class="no-js" lang="ja" > <!--<![endif]--> | ||
| <html class="writer-html5" lang="ja" > | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <meta charset="utf-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>検索 — spAudio ドキュメント</title> | ||
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> | ||
| <script type="text/javascript" src="_static/jquery.js"></script> | ||
| <script type="text/javascript" src="_static/underscore.js"></script> | ||
| <script type="text/javascript" src="_static/doctools.js"></script> | ||
| <script type="text/javascript" src="_static/language_data.js"></script> | ||
| <script type="text/javascript" src="_static/translations.js"></script> | ||
| <script type="text/javascript" src="_static/searchtools.js"></script> | ||
| <script type="text/javascript" src="_static/js/theme.js"></script> | ||
| <!--[if lt IE 9]> | ||
| <script src="_static/js/html5shiv.min.js"></script> | ||
| <![endif]--> | ||
| <link rel="stylesheet" href="_static/css/custom_theme.css" type="text/css" /> | ||
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | ||
| <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> | ||
| <script src="_static/jquery.js"></script> | ||
| <script src="_static/underscore.js"></script> | ||
| <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> | ||
| <script src="_static/doctools.js"></script> | ||
| <script src="_static/translations.js"></script> | ||
| <script src="_static/js/theme.js"></script> | ||
| <script src="_static/searchtools.js"></script> | ||
| <script src="_static/language_data.js"></script> | ||
| <link rel="index" title="索引" href="genindex.html" /> | ||
@@ -42,28 +27,16 @@ <link rel="search" title="検索" href="#" /> | ||
| <body class="wy-body-for-nav"> | ||
| <body class="wy-body-for-nav"> | ||
| <div class="wy-grid-for-nav"> | ||
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
| <div class="wy-side-scroll"> | ||
| <div class="wy-side-nav-search" style="background: #1060A0" > | ||
| <a href="index.html" class="icon icon-home"> spAudio | ||
| <a href="index.html" class="icon icon-home"> | ||
| spAudio | ||
| </a> | ||
| <div role="search"> | ||
| <form id="rtd-search-form" class="wy-form" action="#" method="get"> | ||
| <input type="text" name="q" placeholder="Search docs" /> | ||
| <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> | ||
| <input type="hidden" name="check_keywords" value="yes" /> | ||
@@ -73,14 +46,4 @@ <input type="hidden" name="area" value="default" /> | ||
| </div> | ||
| </div> | ||
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
| <p class="caption"><span class="caption-text">目次</span></p> | ||
| </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> | ||
| <p class="caption" role="heading"><span class="caption-text">目次</span></p> | ||
| <ul> | ||
@@ -135,4 +98,2 @@ <li class="toctree-l1"><a class="reference internal" href="main.html">はじめに</a><ul> | ||
| </div> | ||
@@ -142,51 +103,16 @@ </div> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
| <nav class="wy-nav-top" aria-label="top navigation"> | ||
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #1060A0" > | ||
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
| <a href="index.html">spAudio</a> | ||
| </nav> | ||
| <div class="wy-nav-content"> | ||
| <div class="rst-content"> | ||
| <div role="navigation" aria-label="breadcrumbs navigation"> | ||
| <div role="navigation" aria-label="Page navigation"> | ||
| <ul class="wy-breadcrumbs"> | ||
| <li><a href="index.html">Docs</a> »</li> | ||
| <li>検索</li> | ||
| <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> | ||
| <li class="breadcrumb-item active">検索</li> | ||
| <li class="wy-breadcrumbs-aside"> | ||
| </li> | ||
| </ul> | ||
| <hr/> | ||
@@ -196,8 +122,7 @@ </div> | ||
| <div itemprop="articleBody"> | ||
| <noscript> | ||
| <div id="fallback" class="admonition warning"> | ||
| <p class="last"> | ||
| Please activate JavaScript to enable the search | ||
| functionality. | ||
| Please activate JavaScript to enable the search functionality. | ||
| </p> | ||
@@ -213,6 +138,4 @@ </div> | ||
| </div> | ||
| </div> | ||
| <footer> | ||
@@ -222,11 +145,11 @@ <hr/> | ||
| <div role="contentinfo"> | ||
| <p> | ||
| © Copyright 2017-2019 Hideki Banno | ||
| <span class="lastupdated"> | ||
| 最終更新: 2019-05-04 23:27:26 | ||
| </span> | ||
| <p>© Copyright 2017-2024 Hideki Banno. | ||
| <span class="lastupdated">最終更新: 2024-06-12 18:31:45 | ||
| </span></p> | ||
| </div> | ||
| </p> | ||
| </div> | ||
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a | ||
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> | ||
| provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
| <p><img src="/cgi-bin/labs/rj001/counter/count.cgi?id=spAudio_python"></p> | ||
@@ -237,13 +160,7 @@ | ||
| </footer> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </div> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function () { | ||
@@ -253,12 +170,7 @@ SphinxRtdTheme.Navigation.enable(true); | ||
| </script> | ||
| <script type="text/javascript"> | ||
| <script> | ||
| jQuery(function() { Search.loadIndex("searchindex.js"); }); | ||
| </script> | ||
| <script type="text/javascript" id="searchindexloader"></script> | ||
| <script id="searchindexloader"></script> | ||
@@ -265,0 +177,0 @@ |
@@ -1,1 +0,1 @@ | ||
| Search.setIndex({docnames:["apidoc","examples","index","main","modules","spaudio","spplugin"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["apidoc.rst","examples.rst","index.rst","main.rst","modules.rst","spaudio.rst","spplugin.rst"],objects:{"":{spaudio:[5,0,0,"-"],spplugin:[6,0,0,"-"]},"spaudio.SpAudio":{close:[5,3,1,""],createarray:[5,3,1,""],createndarray:[5,3,1,""],createrawarray:[5,3,1,""],createrawndarray:[5,3,1,""],getarraytypecode:[5,3,1,""],getblockingmode:[5,3,1,""],getbuffersize:[5,3,1,""],getcompname:[5,3,1,""],getcomptype:[5,3,1,""],getdevicelist:[5,3,1,""],getdevicename:[5,3,1,""],getframerate:[5,3,1,""],getnbuffers:[5,3,1,""],getnchannels:[5,3,1,""],getndarraydtype:[5,3,1,""],getndevices:[5,3,1,""],getparams:[5,3,1,""],getparamstuple:[5,3,1,""],getrawarraytypecode:[5,3,1,""],getrawndarraydtype:[5,3,1,""],getrawsampbit:[5,3,1,""],getrawsampwidth:[5,3,1,""],getsampbit:[5,3,1,""],getsamprate:[5,3,1,""],getsampwidth:[5,3,1,""],open:[5,3,1,""],read:[5,3,1,""],readframes:[5,3,1,""],readraw:[5,3,1,""],readrawframes:[5,3,1,""],reload:[5,3,1,""],selectdevice:[5,3,1,""],setblockingmode:[5,3,1,""],setbuffersize:[5,3,1,""],setcallback:[5,3,1,""],setcomptype:[5,3,1,""],setframerate:[5,3,1,""],setnbuffers:[5,3,1,""],setnchannels:[5,3,1,""],setparams:[5,3,1,""],setsampbit:[5,3,1,""],setsamprate:[5,3,1,""],setsampwidth:[5,3,1,""],stop:[5,3,1,""],sync:[5,3,1,""],terminate:[5,3,1,""],write:[5,3,1,""],writeframes:[5,3,1,""],writeraw:[5,3,1,""],writerawframes:[5,3,1,""]},"spplugin.SpFilePlugin":{appendsonginfo:[6,3,1,""],close:[6,3,1,""],copyarray2raw:[6,3,1,""],copyraw2array:[6,3,1,""],createarray:[6,3,1,""],createndarray:[6,3,1,""],createrawarray:[6,3,1,""],createrawndarray:[6,3,1,""],getarraytypecode:[6,3,1,""],getcompname:[6,3,1,""],getcomptype:[6,3,1,""],getfiledesc:[6,3,1,""],getfilefilter:[6,3,1,""],getfiletype:[6,3,1,""],getframerate:[6,3,1,""],getmark:[6,3,1,""],getmarkers:[6,3,1,""],getnchannels:[6,3,1,""],getndarraydtype:[6,3,1,""],getnframes:[6,3,1,""],getparams:[6,3,1,""],getparamstuple:[6,3,1,""],getplugindesc:[6,3,1,""],getpluginid:[6,3,1,""],getplugininfo:[6,3,1,""],getpluginname:[6,3,1,""],getpluginversion:[6,3,1,""],getrawarraytypecode:[6,3,1,""],getrawndarraydtype:[6,3,1,""],getrawsampbit:[6,3,1,""],getrawsampwidth:[6,3,1,""],getsampbit:[6,3,1,""],getsamprate:[6,3,1,""],getsampwidth:[6,3,1,""],getsonginfo:[6,3,1,""],open:[6,3,1,""],read:[6,3,1,""],readframes:[6,3,1,""],readraw:[6,3,1,""],readrawframes:[6,3,1,""],rewind:[6,3,1,""],setcomptype:[6,3,1,""],setfiletype:[6,3,1,""],setframerate:[6,3,1,""],setmark:[6,3,1,""],setnchannels:[6,3,1,""],setnframes:[6,3,1,""],setparams:[6,3,1,""],setpos:[6,3,1,""],setsampbit:[6,3,1,""],setsamprate:[6,3,1,""],setsampwidth:[6,3,1,""],setsonginfo:[6,3,1,""],tell:[6,3,1,""],write:[6,3,1,""],writeframes:[6,3,1,""],writeraw:[6,3,1,""],writerawframes:[6,3,1,""]},spaudio:{DeviceError:[5,1,1,""],DriverError:[5,1,1,""],Error:[5,1,1,""],SpAudio:[5,2,1,""],callbacksignature:[5,4,1,""],getdriverdevicename:[5,4,1,""],getdriverlist:[5,4,1,""],getdrivername:[5,4,1,""],getndriverdevices:[5,4,1,""],getndrivers:[5,4,1,""],open:[5,4,1,""]},spplugin:{BogusFileError:[6,1,1,""],Error:[6,1,1,""],FileError:[6,1,1,""],FileTypeError:[6,1,1,""],NChannelsError:[6,1,1,""],NFramesRequiredError:[6,1,1,""],SampleBitError:[6,1,1,""],SampleRateError:[6,1,1,""],SpFilePlugin:[6,2,1,""],SuitableNotFoundError:[6,1,1,""],WrongPluginError:[6,1,1,""],audioread:[6,4,1,""],audiowrite:[6,4,1,""],getplugindesc:[6,4,1,""],getplugininfo:[6,4,1,""],open:[6,4,1,""]}},objnames:{"0":["py","module","Python \u30e2\u30b8\u30e5\u30fc\u30eb"],"1":["py","exception","Python \u4f8b\u5916"],"2":["py","class","Python \u30af\u30e9\u30b9"],"3":["py","method","Python \u30e1\u30bd\u30c3\u30c9"],"4":["py","function","Python \u306e\u95a2\u6570"]},objtypes:{"0":"py:module","1":"py:exception","2":"py:class","3":"py:method","4":"py:function"},terms:{"!/":1,"# y":1,"% (":1,"%.":1,"%d":[1,6],"%s":1,"'(":1,"')":[1,6],"',":[1,5,6],"'.":1,"':":[1,6],"']":1,"'__":[1,6],"'array":[5,6],"'blockingmode":5,"'buffersize":5,"'bytearray":[5,6],"'compname":5,"'comptype":5,"'double":6,"'filetype":6,"'input":6,"'length":[],"'microsoft":6,"'nbuffers":5,"'nchannels":[5,6],"'ndarray":[5,6],"'nframes":6,"'none":[5,6],"'not":[5,6],"'output":6,"'r":[5,6],"'raw":6,"'ro":5,"'rw":5,"'s":[],"'sampbit":[5,6],"'samprate":[5,6],"'songinfo":6,"'t":[],"'w":[5,6],"'wo":5,"'write":6,"('":[1,5,6],"((":[1,6],"()":[2,5,6],"(a":1,"(args":1,"(audio":1,"(b":[1,5],"(buf":1,"(centos":3,"(data":[1,6],"(decodebytes":[1,5,6],"(default":[],"(description":1,"(duration":[1,6],"(filename":[1,6],"(ifilename":1,"(inputfile":1,"(nchannels":[1,5,6],"(nframes":[1,6],"(nloop":[1,5],"(ofilename":1,"(outputfile":1,"(params":[1,6],"(paramstuple":1,"(position":1,"(samprate":[1,6],"(sampwidth":1,"(songinfo":1,"(spaudio":1,"(start":6,"(sys":[1,6],"(true":1,"(ubuntu":3,"(version":[],"(x":[1,6],"(y":[1,6],")'":[1,6],"))":[1,6],"),":1,"):":[1,5,6],"*(":6,"*-":1,"*.":6,"*args":5,"+)":[],", '":1,", file":[1,6],", i":1,", ifileext":1,", ofileext":1,", params":1,", true":1,"--":[1,5,6],"-ie":3,"-level":[],"-precision":[],"-readable":[],"-u":3,".%":1,".ac":3,".add":1,".argumentparser":1,".argv":[1,6],".array":[5,6],".audioread":[1,6],".audiowrite":[1,6],".basename":[1,6],".close":1,".compname":1,".comptype":1,".copyarray":1,".copyraw":1,".createarray":1,".createndarray":[1,6],".createrawarray":1,".createrawndarray":1,".duration":1,".error":[5,6],".filename":1,".filetype":1,".framerate":1,".getfiledesc":1,".getfilefilter":1,".getfiletype":1,".getframerate":1,".getnchannels":[1,6],".getnframes":[1,6],".getparams":1,".getparamstuple":1,".getplugindesc":1,".getpluginid":1,".getpluginversion":1,".getsampbit":[1,6],".getsamprate":[1,6],".getsampwidth":1,".getsonginfo":1,".html":3,".jp":3,".linspace":[1,6],".meijo":3,".nchannels":1,".ndarray":[5,6],".nframes":1,".open":[1,3,5,6],".output":1,".parse":1,".path":[1,6],".plot":[1,6],".py":1,".pyplot":[1,6],".read":[1,6],".readframes":[1,6],".readraw":[1,5],".resize":[1,6],".sampbit":1,".samprate":1,".sampwidth":1,".setbuffersize":1,".setcallback":1,".setframerate":1,".setnchannels":1,".setnframes":1,".setparams":1,".setsamprate":1,".setsampwidth":1,".show":[1,6],".spaudio":1,".splitext":1,".stderr":[1,6],".stdout":1,".write":1,".writeframes":[1,6],".writeraw":[1,5],".xlabel":[1,6],".xlim":[1,6],".ylabel":[1,6],"//":1,"/bin":1,"/deb":3,"/el6":3,"/el7":3,"/en":3,"/env":1,"/index":3,"/ja":3,"/labs":3,"/o":2,"/python":3,"/readrawframes":3,"/rj":3,"/rpm":3,"/sample":1,"/spaudio":3,"/ubuntu":3,"/writerawframes":3,"2array":[1,6],"2f":1,"2raw":[1,6],"33":[5,6],"3f":1,"4th":[],"8bit":[1,6],":/":3,"<=":[1,6],"='":[1,5,6],"=(":[1,6],"=-":5,"=blocklen":1,"=false":[5,6],"=filetype":1,"=float":1,"=ibigendian":1,"=int":1,"=nchannels":1,"=none":[5,6],"=obigendian":1,"=params":[1,6],"=paramstuple":1,"=sampbit":1,"=samprate":1,"=sys":[1,6],"=true":[1,5,6],"['":1,"[:":[1,6],"\\n":[1,6],"\\r":1,"\u3042\u308a":[2,3,5],"\u3042\u308b":6,"\u3044\u308b":[3,5,6],"\u3044\u308f\u3086\u308b":[5,6],"\u304a\u3051\u308b":[3,5,6],"\u304a\u308a":[5,6],"\u304b\u3089":[5,6],"\u304c\u3042\u308a":[5,6],"\u304f\u3060":3,"\u3053\u3061\u3089":[3,5,6],"\u3053\u3068":[3,5,6],"\u3053\u306e":[3,5,6],"\u3053\u308c":[3,5],"\u3053\u308c\u3089":[5,6],"\u3054\u3068":2,"\u3055\u3044":3,"\u3055\u3089\u306b":6,"\u3059\u3079":[],"\u3059\u308b":[3,5,6],"\u305a\u308c":[3,5],"\u305d\u306e":2,"\u305d\u308c":3,"\u305f\u3044":[3,5,6],"\u305f\u304f":5,"\u305f\u3081":[5,6],"\u3060\u3051":[5,6],"\u3060\u3055\u3044":[3,5,6],"\u3067\u304d":[3,5,6],"\u3067\u3057\u304b":5,"\u3067\u3059":[2,3,5,6],"\u3067\u3082":6,"\u3068\u3057\u3066":[5,6],"\u3068\u3082":6,"\u306a\u3044":[3,5,6],"\u306a\u304a":[3,6],"\u306a\u304b\u3063":[5,6],"\u306a\u304f":5,"\u306a\u3063":[5,6],"\u306a\u3069":[3,5,6],"\u306a\u308a":[3,5,6],"\u306a\u308b":[5,6],"\u306b\u3066":5,"\u306b\u3088\u3063\u3066":[5,6],"\u306b\u3088\u308a":[3,6],"\u306b\u3088\u308b":[2,5],"\u306b\u5bfe\u3059\u308b":[5,6],"\u306b\u5bfe\u5fdc\u4ed8\u3051":[],"\u306e\u3044":3,"\u306e\u3044\u305a\u308c\u304b":[5,6],"\u306e\u3067":[3,5,6],"\u306e\u306b\u5bfe\u3057":[5,6],"\u306e\u307f":[3,6],"\u306f\u3044":5,"\u306f\u3058\u3081":2,"\u307e\u3057":[5,6],"\u307e\u3059":[3,5,6],"\u307e\u305b":[3,5,6],"\u307e\u305f":[3,5,6],"\u307e\u3067":5,"\u3082\u3057":[3,6],"\u3082\u3057\u304f":[5,6],"\u3082\u306e":6,"\u3088\u3046":6,"\u3089\u308c":6,"\u3089\u308c\u308b":[5,6],"\u308c\u308b":[5,6],"\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9":[5,6],"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":2,"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9":5,"\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3":6,"\u30aa\u30d5\u30a3\u30b7\u30e3\u30eb\u30b5\u30a4\u30c8":2,"\u30aa\u30d5\u30bb\u30c3\u30c8":[5,6],"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8":[5,6],"\u30aa\u30d7\u30b7\u30e7\u30f3":[5,6],"\u30aa\u30fc\u30c7\u30a3\u30aa":[2,5],"\u30aa\u30fc\u30c7\u30a3\u30aa\u30c7\u30d0\u30a4\u30b9":[3,5],"\u30aa\u30fc\u30c7\u30a3\u30aa\u30c9\u30e9\u30a4\u30d0\u30fc":5,"\u30ad\u30fc":[5,6],"\u30ad\u30fc\u30ef\u30fc\u30c9":[3,5,6],"\u30af\u30e9\u30b9":[5,6],"\u30b3\u30d4\u30fc":6,"\u30b3\u30de\u30f3\u30c9":3,"\u30b3\u30f3\u30d3\u30cd\u30fc\u30b7\u30e7\u30f3":5,"\u30b3\u30fc\u30c9":[5,6],"\u30b3\u30fc\u30eb\u30d0\u30c3\u30af":[2,5],"\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u30bf\u30a4\u30d7":5,"\u30b5\u30a4\u30ba":[5,6],"\u30b5\u30dd\u30fc\u30c8":[3,5,6],"\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9":2,"\u30b5\u30f3\u30d7\u30eb\u30ec\u30fc\u30c8":[5,6],"\u30b7\u30b0\u30cd\u30c1\u30e3":5,"\u30bd\u30f3\u30b0":6,"\u30bd\u30fc\u30b9":[5,6],"\u30c1\u30e3\u30cd\u30eb":[5,6],"\u30c1\u30e3\u30f3\u30cd\u30eb":3,"\u30c7\u30b3\u30fc\u30c9":[5,6],"\u30c7\u30d0\u30a4\u30b9":5,"\u30c7\u30d5\u30a9\u30eb\u30c8":[5,6],"\u30c7\u30fc\u30bf":[5,6],"\u30c7\u30fc\u30bf\u30d0\u30fc\u30b8\u30e7\u30f3":2,"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8":2,"\u30c9\u30e9\u30a4\u30d0\u30fc":5,"\u30ce\u30f3\u30d6\u30ed\u30c3\u30ad\u30f3\u30b0\u30e2\u30fc\u30c9":5,"\u30d0\u30a4\u30c8":[5,6],"\u30d0\u30a4\u30ca\u30ea\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8":3,"\u30d0\u30c3\u30d5\u30a1":5,"\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba":5,"\u30d0\u30fc\u30b8\u30e7\u30f3":[2,3,5,6],"\u30d1\u30c3\u30b1\u30fc\u30b8":[2,3],"\u30d1\u30e9\u30e1\u30fc\u30bf":[5,6],"\u30d3\u30c3\u30b0\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3":6,"\u30d3\u30c3\u30c8":[5,6],"\u30d3\u30c3\u30c8\u30c7\u30fc\u30bf":6,"\u30d3\u30eb\u30c9":2,"\u30d5\u30a1\u30a4\u30eb":[2,3,5,6],"\u30d5\u30a1\u30a4\u30eb\u30d5\u30a3\u30eb\u30bf\u30fc":6,"\u30d5\u30eb\u30c7\u30e5\u30d7\u30ec\u30c3\u30af\u30b9":3,"\u30d5\u30eb\u30c7\u30e5\u30d7\u30ec\u30c3\u30af\u30b9\u30aa\u30fc\u30c7\u30a3\u30aa":5,"\u30d5\u30eb\u30c7\u30e5\u30d7\u30ec\u30c3\u30af\u30b9i":2,"\u30d5\u30ec\u30fc\u30e0":[5,6],"\u30d6\u30ed\u30c3\u30ad\u30f3\u30b0\u30e2\u30fc\u30c9":5,"\u30d6\u30ed\u30c3\u30af":2,"\u30d7\u30e9\u30b0\u30a4\u30f3":[2,3,6],"\u30d7\u30ed\u30c3\u30c8":[2,6],"\u30d9\u30fc\u30b9\u30af\u30e9\u30b9":[5,6],"\u30da\u30fc\u30b8":3,"\u30e2\u30b8\u30e5\u30fc\u30eb":[0,2,3,4],"\u30e2\u30fc\u30c9":[5,6],"\u30e9\u30a4\u30d6\u30e9\u30ea":[3,5,6],"\u30ea\u30b5\u30a4\u30ba":[5,6],"\u30ea\u30b9\u30c8":5,"\u30ea\u30ea\u30fc\u30b9":3,"\u30ec\u30d9\u30eb":6,"\u4e0a\u8a18":[5,6],"\u4e0b\u8a18":[5,6],"\u4e0d\u9069\u5207":6,"\u4e0e\u3048\u308b":[5,6],"\u4e57\u3058":[5,6],"\u4e92\u63db":6,"\u4ed5\u69d8":3,"\u4ed8\u304d":6,"\u4ee5\u4e0a":5,"\u4ee5\u4e0b":[3,6],"\u4ee5\u5916":3,"\u4ee5\u964d":[2,6],"\u4efb\u610f":5,"\u4f4d\u7f6e":[5,6],"\u4f5c\u6210":[5,6],"\u4f7f\u3044":3,"\u4f7f\u3046":[3,5,6],"\u4f7f\u308f":6,"\u4f7f\u7528":[2,3,5,6],"\u4f8b\u3048":6,"\u4f8b\u5916":[5,6],"\u4f9d\u5b58":5,"\u4fc2\u6570":[5,6],"\u4fdd\u6301":[5,6],"\u505c\u6b62":5,"\u5148\u982d":6,"\u5165\u51fa":[2,3,5,6],"\u5165\u529b":6,"\u5168\u3066":[5,6],"\u5168\u4f53":6,"\u516c\u5f0f":3,"\u5185\u5bb9":[2,5,6],"\u5185\u90e8":6,"\u518d\u751f":2,"\u518d\u8aad\u8fbc":5,"\u51e6\u7406":5,"\u51fa\u529b":[5,6],"\u5206\u306e":[5,6],"\u5224\u5b9a":6,"\u5229\u7528":3,"\u53ca\u3073":[5,6],"\u53d6\u5f97":[5,6],"\u53ef\u5909":5,"\u53ef\u80fd":[3,5,6],"\u540c\u3058":6,"\u540c\u540d":6,"\u540c\u671f":5,"\u540d\u524d":[5,6],"\u542b\u307e":5,"\u542b\u307e\u308c":5,"\u542b\u307e\u308c\u308b":[5,6],"\u542b\u3080":[5,6],"\u547c\u3070":6,"\u547c\u3073\u51fa\u3057":[3,5,6],"\u547c\u3073\u51fa\u3059":6,"\u554f\u984c":[5,6],"\u5727\u7e2e":[5,6],"\u578b\u914d":[5,6],"\u57fa\u3065\u304f":[2,5,6],"\u57fa\u672c":[5,6],"\u5834\u5408":[3,5,6],"\u5909\u63db":[2,6],"\u5909\u6570":6,"\u5909\u66f4":3,"\u5916\u90e8":3,"\u591a\u3044":[],"\u5931\u6557":[5,6],"\u5b9f\u73fe":5,"\u5b9f\u884c":3,"\u5bfe\u5fdc":[5,6],"\u5c02\u7528":5,"\u5c0e\u5165":[5,6],"\u5c65\u6b74":2,"\u5f15\u6570":[3,5,6],"\u5f62\u5f0f":[3,5,6],"\u5f97\u308b":5,"\u5fc5\u8981":[3,5,6],"\u5fdc\u3058":[5,6],"\u60c5\u5831":6,"\u60f3\u5b9a":[5,6],"\u610f\u5473":6,"\u6210\u529f":[5,6],"\u623b\u308a\u5024":[5,6],"\u6301\u3064":[5,6],"\u6307\u5b9a":[3,5,6],"\u6319\u3052":6,"\u63a5\u982d":5,"\u6570\u4ee5":[],"\u6587\u5b57":[5,6],"\u6587\u5b57\u5217":[5,6],"\u65b0\u898f":6,"\u65e5\u672c\u8a9e":3,"\u6642\u9593":6,"\u66f4\u65b0":2,"\u66f8\u304d":3,"\u66f8\u304d\u8fbc\u307e":[5,6],"\u66f8\u304d\u8fbc\u307f":[2,5,6],"\u66f8\u304d\u8fbc\u3080":[5,6],"\u6700\u521d":3,"\u6700\u5f8c":6,"\u6709\u52b9":[5,6],"\u671f\u5316":5,"\u69d8\u3005":[3,6],"\u6a19\u6e96":[5,6],"\u6ce2\u5f62":6,"\u6ce8\u610f\u304f":[3,5,6],"\u6e21\u3059":5,"\u6e96\u95a2":3,"\u7121\u8996":[5,6],"\u7279\u306b":3,"\u73fe\u5728":[5,6],"\u74b0\u5883":5,"\u751f\u30d0\u30c3\u30d5\u30a1":[],"\u751fndarray":[],"\u7528\u3044":[3,5,6],"\u7528\u3044\u308b":[3,6],"\u7528\u610f":[3,5,6],"\u7570\u306a\u308a":[5,6],"\u7570\u5e38":6,"\u767a\u751f":[5,6],"\u76ee\u6b21":2,"\u77ed\u3044":6,"\u79fb\u52d5":6,"\u79fb\u52d5\u5148":6,"\u7a2e\u985e":6,"\u7b26\u53f7":6,"\u7bc4\u56f2":6,"\u7d42\u4e86":5,"\u81ea\u52d5":6,"\u82e5\u5e72":3,"\u884c\u5217":[5,6],"\u8981\u6c42":[5,6],"\u8981\u7d20":[5,6],"\u898b\u3064":6,"\u898b\u3066":3,"\u8a00\u3048\u308b":6,"\u8a2d\u5b9a":[5,6],"\u8a73\u7d30":[5,6],"\u8aac\u660e":[5,6],"\u8aad\u307f":3,"\u8aad\u307f\u8fbc\u307e":[5,6],"\u8aad\u307f\u8fbc\u307f":[2,5,6],"\u8aad\u307f\u8fbc\u3080":[5,6],"\u8efd\u304f":5,"\u8fd4\u3055":6,"\u8fd4\u3057":[5,6],"\u8fd4\u308a":[5,6],"\u8ffd\u52a0":[3,5,6],"\u9069\u5207":6,"\u9078\u629e":5,"\u914d\u5217":[2,3,5,6],"\u91cd\u307f":[5,6],"\u9332\u97f3":2,"\u9577\u3055":[5,6],"\u9589\u3058":[5,6],"\u958b\u304d":[5,6],"\u958b\u304f":[5,6],"\u958b\u304f\u969b":[5,6],"\u958b\u3051":5,"\u95a2\u6570":[3,5,6],"\u97f3\u58f0":[2,5,6],"\u9ad8\u6c34":3,"\uff08length":[5,6],"\uff09,":[5,6],"\uff09\uff0c":5,"\uff09\uff0e":[5,6],"\uff0c\"":3,"\uff0c\u65b0":6,"\uff0c\u65b0\u305f":[],"\uff0caifc":[5,6],"\uff0caiff":[3,6],"\uff0calac":[3,6],"\uff0cdecodes":[],"\uff0cdict":5,"\uff0cdouble":[5,6],"\uff0cflac":[3,6],"\uff0cmatlab":6,"\uff0cmp3":[3,6],"\uff0cpcm":6,"\uff0craw":[3,5,6],"\uff0csunau":[5,6],"\uff0cwav":3,"\uff0cwave":[5,6],"\uff0e\u307e\u305f":5,"\uff0eraw":6,"\uff0esampbit":[5,6],"\uff0ewav":6,"]'":[1,6],"])":[1,6],"],":1,"byte":1,"case":[],"char":[5,6],"class":[5,6],"default":1,"double":[5,6],"else":1,"false":[1,5,6],"float":[1,5,6],"for":[1,5,6],"function":[],"if":[1,6],"import":[1,5,6],"in":[1,5,6],"int":[5,6],"new":[],"package":[],"return":1,"this":[],"true":[1,5,6],"while":[],"with":[2,5,6],__:[1,6],_args:1,_argument:1,_buffer:[1,5],_callback:[1,5],_or:[1,6],_position:[1,5],_raw:[1,6],_s:1,_signed:[1,6],above:[],acceptable:[],added:[],afc:1,after:[],aif:1,aifc:[1,5,6],aiff:1,all:[],also:[],although:[],amd:3,amplitude:[1,6],an:1,anaconda:3,and:[],another:[],api:2,appendsonginfo:6,apt:3,archive:3,are:[],argparse:1,args:[1,5],argument:[],arguments:[],array:[1,5,6],arrays:[],arraytype:[1,5,6],as:[1,5,6],associated:[],au:1,audio:[1,5],audioread:[2,3,6],audioreadexample:[1,6],audiorwexample:1,audiowrite:[2,3,6],audiowriteexample:[1,6],automatically:[],bannohideki:3,be:1,becomes:[],benefit:[],bigendian:[1,6],bits:1,block:[],blockingmode:5,blocklen:1,blockread:1,blockwrite:1,bogusfileerror:6,bool:[5,6],buf:1,buffer:1,buffers:[],buffersize:[1,5],by:1,bytearray:[1,5,6],bytes:[5,6],call:[],callable:5,callback:[1,5],callbacksignature:5,calling:[],calltype:5,can:1,cannot:[],cbdata:[1,5],cbtype:1,ceil:1,centos:3,changed:[],channels:1,channelwise:[1,5,6],close:[5,6],code:[],coding:1,compatible:[],compname:[5,6],compressed:[5,6],compression:[],comptype:[1,5,6],conda:3,containing:[],contains:[],contents:[],convbyplugin:1,copyarray:6,copyraw:6,createarray:[5,6],createndarray:[5,6],createrawarray:[5,6],createrawndarray:[5,6],current:[],currently:[],data:[1,5,6],datatype:6,deb:3,decodebytes:[1,5,6],decoded:[],decodes:[],def:[1,6],described:[],detected:[],device:[],deviceerror:5,deviceindex:5,devices:[],dict:[5,6],doesn:[],don:[],dpkg:3,driver:[],drivererror:5,drivername:5,drivers:[],dtype:[5,6],duration:[1,6],element:[],elements:[],elif:1,encodestr:[5,6],end:[],entries:[],environments:[],equal:[],error:[5,6],example:[],exception:[5,6],expect:[],expects:[],external:[],faster:[],file:1,filedesc:1,fileerror:6,filefilter:1,filename:[1,6],filetype:[1,6],filetypeerror:6,find:[],finish:6,floatflag:[5,6],following:[],form:[],format:1,found:[],frame:[],framerate:[1,5,6],frames:[1,6],from:[],fullduplex:[],func:5,functions:[],generated:[],getarraytypecode:[5,6],getblockingmode:5,getbuffersize:5,getcompname:[5,6],getcomptype:[5,6],getdevicelist:5,getdevicename:5,getdriverdevicename:5,getdriverlist:5,getdrivername:5,getfiledesc:6,getfilefilter:6,getfiletype:6,getframerate:[5,6],getlength:[],getmark:6,getmarkers:6,getnbuffers:5,getnchannels:[5,6],getndarraydtype:[5,6],getndevices:5,getndriverdevices:5,getndrivers:5,getnframes:6,getparams:[5,6],getparamstuple:[5,6],getplugindesc:6,getpluginid:6,getplugininfo:6,getpluginname:6,getpluginversion:6,getrawarraytypecode:[5,6],getrawndarraydtype:[5,6],getrawsampbit:[5,6],getrawsampwidth:[5,6],gets:[],getsampbit:[5,6],getsamprate:[5,6],getsampwidth:[5,6],getsonginfo:6,greater:[],has:[],help:1,high:[],http:3,human:[],hz:1,ibigendian:1,id:6,ifilebody:[],ifileext:1,ifilename:1,ignored:[],ignores:[],inarray:6,included:[],including:1,index:5,initialize:[],input:1,inputfile:1,install:3,instance:[],internally:[],into:[],introduced:[],iotest:1,iotestwith:1,is:1,it:[],keys:[],keyword:[],len:[1,6],length:[1,5,6],libraries:[],library:[],linux:3,location:[],main:[1,6],makes:[],matlab:[],matplotlib:[1,6],matrix:[],may:[],mean:[],means:[],method:[],microsoft:[],miniconda:3,mode:[5,6],modes:[],module:[],must:[],myaudiocb:1,name:[1,6],namedtuple:[5,6],nbuffers:5,nchannels:[1,5,6],nchannelserror:6,ndarray:[2,5,6],needed:[],negative:[],next:[],nframes:[1,5,6],nframesflag:[5,6],nframesrequirederror:6,nloop:[1,5],no:[],normalized:[1,6],not:1,note:[],np:[1,6],nread:[1,6],number:1,numpy:[2,3,5,6],nwframes:[1,6],nwrite:1,obigendian:1,object:[5,6],objects:[],obtained:[],of:1,offset:[1,5,6],ofilebody:[],ofileext:1,ofilename:1,ogg:[3,6],omitted:1,one:[],only:[],open:[3,5,6],opening:[],opens:[],optional:[5,6],or:[5,6],os:[1,6],otherwise:[],output:[1,5],outputfile:1,parameter:[],parameters:[],params:[1,5,6],paramstuple:1,parser:1,pcm:6,pf:[1,6],pip:3,play:1,playfilebyplugin:1,playfromwav:1,playfromwavcb:1,playrawbyplugin:1,plot:[],plotfilebyplugin:[1,6],plt:[1,6],plugin:1,pluginname:[1,6],pos:6,position:1,print:[1,6],processing:[],pulseaudio:3,pulsesimple:3,py:1,python:[3,5,6],quit:[1,6],raise:1,raised:[],range:[1,5,6],rate:1,raw:[2,5,6],rawdata:6,rb:1,read:[5,6],readframes:[2,3,5,6],readndarray:1,readplot:1,readplotraw:1,readraw:[5,6],readrawframes:[5,6],readrawndarray:1,reads:[],realize:[],recieve:[],record:1,recording:1,rectowav:1,reload:[1,5],required:1,resizes:[],returned:[],returns:[],rewind:6,ro:[1,6],round:[1,6],rpm:3,runtimeerror:1,rw:[1,5],rwframesexample:1,same:[],sampbit:[1,5,6],sample:1,samplebiterror:6,samplerateerror:6,samples:6,sampling:1,samprate:[1,5,6],sampwidth:[1,5,6],selectdevice:5,selected:[],send:[],set:6,setblockingmode:5,setbuffersize:5,setcallback:5,setcomptype:[5,6],setfiletype:6,setframerate:[5,6],setlength:[],setmark:6,setnbuffers:5,setnchannels:[5,6],setnframes:6,setparams:[5,6],setpos:6,sets:[],setsampbit:[5,6],setsamprate:[5,6],setsampwidth:[5,6],setsonginfo:6,settings:[],sf:1,similar:[],size:1,sndlib:1,some:[],songinfo:[1,6],spaudio:[0,3,6],spbase:3,specification:[],specified:[],specify:[],spfileplugin:6,splibs:3,spplugin:[0,2,3,4],standard:[],statement:[],stop:5,str:[1,5,6],string:[1,5,6],successful:[],such:[],suitable:[],suitablenotfounderror:6,sunau:1,support:[],supported:1,swig:3,sync:5,sys:[1,6],tell:6,terminate:5,testaudioread:[],than:[],that:[],the:[],these:[],time:[1,6],to:1,total:1,totallengthrequirederror:[],tuple:[5,6],tye:[],type:1,types:[],ubuntu:3,usage:[1,6],use:[],used:[],using:[],usr:1,utf:1,valid:[],validate:[],value:[],valueerror:5,version:[1,3],vorbis:[3,6],want:[],was:[],wav:[2,6],wave:[1,5,6],wb:1,weight:[5,6],were:[],wf:1,when:[],which:[],whose:[],width:1,will:[],wo:[1,6],write:[1,5,6],writeframes:[2,3,5,6],writefrombyplugin:1,writeraw:[5,6],writerawframes:[5,6],writes:[],writetobyplugin:1,written:[],wrongpluginerror:6,www:3,you:[],yum:3},titles:["API\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8","\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9","spAudio for Python","\u306f\u3058\u3081\u306b","spAudio","spaudio\u30e2\u30b8\u30e5\u30fc\u30eb","spplugin\u30e2\u30b8\u30e5\u30fc\u30eb"],titleterms:{"()":1,"+)":[],"/o":1,"\u3042\u308a":1,"\u3054\u3068":1,"\u305d\u306e":1,"\u306b\u3088\u308b":1,"\u306f\u3058\u3081":3,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":3,"\u30aa\u30d5\u30a3\u30b7\u30e3\u30eb\u30b5\u30a4\u30c8":3,"\u30b3\u30fc\u30eb\u30d0\u30c3\u30af":1,"\u30b5\u30f3\u30d7\u30eb":[5,6],"\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9":1,"\u30c7\u30fc\u30bf\u30d0\u30fc\u30b8\u30e7\u30f3":1,"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8":0,"\u30d0\u30fc\u30b8\u30e7\u30f3":1,"\u30d3\u30eb\u30c9":3,"\u30d5\u30a1\u30a4\u30eb":1,"\u30d5\u30eb\u30c7\u30e5\u30d7\u30ec\u30c3\u30af\u30b9i":1,"\u30d6\u30ed\u30c3\u30af":1,"\u30d7\u30e9\u30b0\u30a4\u30f3":1,"\u30d7\u30ed\u30c3\u30c8":1,"\u30e2\u30b8\u30e5\u30fc\u30eb":[5,6],"\u4ee5\u964d":1,"\u4f7f\u7528":1,"\u5185\u5bb9":1,"\u518d\u751f":1,"\u5909\u63db":1,"\u5c65\u6b74":3,"\u66f4\u65b0":3,"\u66f8\u304d\u8fbc\u307f":1,"\u751fndarray":[],"\u7d22\u5f15":2,"\u8aad\u307f\u8fbc\u307f":1,"\u914d\u5217":1,"\u9332\u97f3":1,"\u97f3\u58f0":1,"for":2,"with":1,an:[],and:[],api:0,audio:[],audioread:1,audiowrite:1,block:[],by:[],callback:[],contents:[],example:[],file:[],fullduplex:[],it:[],ndarray:1,numpy:1,of:[],play:[],plot:[],plugin:[],python:[1,2],raw:1,read:[],readframes:1,record:[],spaudio:[1,2,4,5],spplugin:[1,6],statement:[],to:[],using:[],version:[],wav:1,write:[],writeframes:1}}) | ||
| Search.setIndex({"docnames": ["apidoc", "examples", "index", "main", "modules", "spaudio", "spplugin"], "filenames": ["apidoc.rst", "examples.rst", "index.rst", "main.rst", "modules.rst", "spaudio.rst", "spplugin.rst"], "titles": ["API\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8", "\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9", "spAudio for Python", "\u306f\u3058\u3081\u306b", "spAudio", "spaudio\u30e2\u30b8\u30e5\u30fc\u30eb", "spplugin\u30e2\u30b8\u30e5\u30fc\u30eb"], "terms": {"spaudio": [0, 3, 6], "\u30e2\u30b8\u30e5\u30fc\u30eb": [0, 2, 3, 4], "spplugin": [0, 2, 3, 4], "iotest": 1, ".py": 1, "!/": 1, "usr": 1, "/bin": 1, "/env": 1, "*-": 1, "coding": 1, "utf": 1, "import": [1, 5, 6], ".spaudio": 1, ".setnchannels": 1, ".setsamprate": 1, ".setbuffersize": 1, "nloop": [1, 5], "bytearray": [1, 5, 6], ".open": [1, 3, 5, 6], "('": [1, 5, 6], "')": [1, 6], "for": [1, 5, 6], "in": [1, 5, 6], "range": [1, 5, 6], "(nloop": [1, 5], "):": [1, 5, 6], ".readraw": [1, 5], "(b": [1, 5], ".writeraw": [1, 5], ".close": 1, "iotestwith": 1, "version": [1, 3], "required": 1, "rw": [1, 5], "',": [1, 5, 6], "nchannels": [1, 5, 6], "samprate": [1, 5, 6], "buffersize": [1, 5], "as": [1, 5, 6], "readplot": 1, "matplotlib": [1, 6], ".pyplot": [1, 6], "plt": [1, 6], "ro": [1, 6], ".createarray": 1, "nread": [1, 6], ".read": [1, 6], "print": [1, 6], "%d": [1, 6], "wo": [1, 6], "nwrite": 1, ".write": 1, ".plot": [1, 6], ".show": [1, 6], "readplotraw": 1, ".createrawarray": 1, "readndarray": 1, "np": [1, 6], ".createndarray": [1, 6], "(y": [1, 6], ".linspace": [1, 6], "(x": [1, 6], ".xlim": [1, 6], ".xlabel": [1, 6], "time": [1, 6], "]'": [1, 6], ".ylabel": [1, 6], "amplitude": [1, 6], "normalized": [1, 6], ")'": [1, 6], "py": 1, ".readframes": [1, 6], "channelwise": [1, 5, 6], "=true": [1, 6], "len": [1, 6], "))": [1, 6], "(a": 1, ".getnchannels": [1, 6], "[:": [1, 6], ", i": 1, "])": [1, 6], "readrawndarray": 1, ".createrawndarray": 1, "playfromwav": 1, "os": [1, 3, 6], "sys": [1, 6], "wave": [1, 5, 6], "def": [1, 6], "(filename": [1, 6], "rb": 1, "wf": 1, ".getframerate": 1, "sampwidth": [1, 5, 6], ".getsampwidth": 1, "nframes": [1, 5, 6], ".getnframes": [1, 6], "% (": 1, "(nchannels": [1, 5, 6], "(samprate": [1, 6], ".setsampwidth": 1, "(sampwidth": 1, "(nframes": [1, 6], "if": [1, 6], "name": [1, 6], "__": [1, 6], "'__": [1, 6], "main": [1, 6], "':": [1, 6], "(sys": [1, 6], ".argv": [1, 6], "<=": [1, 6], "usage": [1, 6], "filename": [1, 6], ".path": [1, 6], ".basename": [1, 6], ", file": [1, 6], "=sys": [1, 6], ".stderr": [1, 6], "quit": [1, 6], "paramstuple": 1, ".getparams": 1, "framerate": [1, 5, 6], ".nchannels": 1, ".framerate": 1, ".sampwidth": 1, ".nframes": 1, "params": [1, 5, 6], "=paramstuple": 1, "(paramstuple": 1, "playfromwavcb": 1, "myaudiocb": 1, "(audio": 1, "cbtype": 1, "cbdata": [1, 5], "args": [1, 5], ".output": 1, "_position": [1, 5], "_callback": [1, 5], "position": 1, "_s": 1, "float": [1, 5, 6], "(position": 1, "total": 1, ".stdout": 1, "%.": 1, "3f": 1, "\\r": 1, "elif": 1, "_buffer": [1, 5], "buf": 1, "output": [1, 5], "buffer": 1, "type": 1, "%s": 1, "size": 1, "(buf": 1, "),": 1, "return": 1, "true": [1, 5, 6], ".setcallback": 1, "(spaudio": 1, "callback": [1, 5], "=(": 1, "rectowav": 1, "argparse": 1, "duration": [1, 6], "wb": 1, "round": [1, 6], "(duration": [1, 6], ".setframerate": 1, ".setnframes": 1, ".writeframes": [1, 6], "file": 1, "parser": 1, ".argumentparser": 1, "(description": 1, "='": 1, "record": 1, "to": 1, ".add": 1, "_argument": 1, "help": 1, "of": 1, "--": [1, 5, 6], "=int": 1, "default": 1, "sampling": 1, "rate": 1, "hz": 1, "number": 1, "channels": 1, "sample": 1, "width": 1, "byte": 1, "=float": 1, "recording": 1, ".parse": 1, "_args": 1, "(args": 1, ".filename": 1, ".samprate": 1, ".duration": 1, "=nchannels": 1, "=samprate": 1, "sampbit": [1, 5, 6], ".getparamstuple": 1, "(true": 1, ".setparams": 1, "blockread": 1, "blocklen": 1, "((": [1, 6], "//": 1, "ceil": 1, "offset": [1, 5, 6], "length": [1, 5, 6], "=blocklen": 1, "blockwrite": 1, "write": [1, 5, 6], "rwframesexample": 1, "arraytype": [1, 5, 6], "array": [1, 5, 6], "nwframes": [1, 6], "frames": [1, 6], "audioreadexample": [1, 6], "data": [1, 5, 6], ".audioread": [1, 6], "str": [1, 5, 6], "\\n": [1, 6], "(params": [1, 6], "=params": [1, 6], "(data": [1, 6], "audiowriteexample": [1, 6], ".getsamprate": [1, 6], ".audiowrite": [1, 6], "audiorwexample": 1, "(ifilename": 1, "ofilename": 1, "false": [1, 5, 6], "(ofilename": 1, "['": 1, "']": 1, "else": 1, "reload": [1, 5], "ifilename": 1, "],": 1, "plotfilebyplugin": [1, 6], "pf": [1, 6], "input": 1, "plugin": 1, ".getpluginid": 1, ".getplugindesc": 1, ".%": 1, ".getpluginversion": 1, ".getsampbit": [1, 6], "2f": 1, ".resize": [1, 6], "can": 1, "be": 1, "omitted": 1, "by": 1, "# y": 1, "playfilebyplugin": 1, "filetype": [1, 6], ".getfiletype": 1, "filedesc": 1, ".getfiledesc": 1, "filefilter": 1, ".getfilefilter": 1, "'(": 1, "songinfo": [1, 6], ".getsonginfo": 1, "(songinfo": 1, "=sampbit": 1, "playrawbyplugin": 1, "pluginname": [1, 6], "_raw": [1, 6], "=filetype": 1, "play": 1, "an": 1, "audio": [1, 5], "including": 1, "bits": 1, "/sample": 1, "string": [1, 5, 6], ".sampbit": 1, ".filetype": 1, "writefrombyplugin": 1, "aifc": [1, 5, 6], "sunau": 1, "(inputfile": 1, "outputfile": 1, ", ofileext": 1, ".splitext": 1, "(outputfile": 1, "ofileext": 1, "'.": 1, "sndlib": 1, "decodebytes": [1, 5, 6], "obigendian": 1, "_or": [1, 6], "_signed": [1, 6], "8bit": [1, 6], "au": 1, "aif": 1, "aiff": 1, "afc": 1, "raise": 1, "runtimeerror": 1, "format": 1, "is": 1, "not": 1, "supported": 1, ", params": 1, ", '": 1, ", true": 1, "(decodebytes": [1, 5, 6], "sf": 1, ".copyarray": 1, "2raw": [1, 6], "bigendian": [1, 6], "=obigendian": 1, "inputfile": 1, "writetobyplugin": 1, ", ifileext": 1, "ifileext": 1, "ibigendian": 1, ".comptype": 1, "comptype": [1, 5, 6], ".compname": 1, ".copyraw": 1, "2array": [1, 6], "=ibigendian": 1, "convbyplugin": 1, "\u57fa\u3065\u304f": [2, 5, 6], "\u30aa\u30fc\u30c7\u30a3\u30aa": [2, 5], "\u5165\u51fa": [2, 3, 5, 6], "\u30d1\u30c3\u30b1\u30fc\u30b8": [2, 3], "\u3067\u3059": [2, 3, 5, 6], "\u306f\u3058\u3081": 2, "\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb": 2, "\u66f4\u65b0": 2, "\u5c65\u6b74": 2, "\u30d3\u30eb\u30c9": 2, "\u30aa\u30d5\u30a3\u30b7\u30e3\u30eb\u30b5\u30a4\u30c8": 2, "api": 2, "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8": [2, 3], "\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9": 2, "\u30d5\u30eb\u30c7\u30e5\u30d7\u30ec\u30c3\u30af\u30b9i": 2, "/o": 2, "with": [2, 5, 6], "\u4f7f\u7528": [2, 3, 5, 6], "\u30d0\u30fc\u30b8\u30e7\u30f3": [2, 3, 5, 6], "\u4ee5\u964d": [2, 6], "\u8aad\u307f\u8fbc\u307f": [2, 5, 6], "\u30d7\u30ed\u30c3\u30c8": [2, 6], "\u914d\u5217": [2, 3, 5, 6], "raw": [2, 5, 6], "\u30c7\u30fc\u30bf\u30d0\u30fc\u30b8\u30e7\u30f3": 2, "numpy": [2, 3, 5, 6], "ndarray": [2, 3, 5, 6], "wav": [2, 6], "\u30d5\u30a1\u30a4\u30eb": [2, 3, 5, 6], "\u518d\u751f": 2, "\u30b3\u30fc\u30eb\u30d0\u30c3\u30af": [2, 5], "\u3042\u308a": [2, 3, 5], "\u9332\u97f3": 2, "\u30d6\u30ed\u30c3\u30af": 2, "\u3054\u3068": 2, "\u66f8\u304d\u8fbc\u307f": [2, 5, 6], "readframes": [2, 3, 5, 6], "()": [2, 5, 6], "writeframes": [2, 3, 5, 6], "audioread": [2, 3, 6], "audiowrite": [2, 3, 6], "\u30d7\u30e9\u30b0\u30a4\u30f3": [2, 3, 6], "\u306b\u3088\u308b": [2, 5], "\u97f3\u58f0": [2, 5, 6], "\u305d\u306e": 2, "\u5185\u5bb9": [2, 5, 6], "\u5909\u63db": [2, 6], "\u3053\u306e": [3, 5, 6], "\u30e9\u30a4\u30d6\u30e9\u30ea": [3, 5, 6], "python": [3, 5, 6], "\u30d5\u30eb\u30c7\u30e5\u30d7\u30ec\u30c3\u30af\u30b9": 3, "\u30aa\u30fc\u30c7\u30a3\u30aa\u30c7\u30d0\u30a4\u30b9": [3, 5], "\u53ef\u80fd": [3, 5, 6], "\u3059\u308b": [3, 5, 6], "\uff0cwav": 3, "\uff0caiff": [3, 6], "\uff0cmp3": [3, 6], "ogg": [3, 6], "vorbis": [3, 6], "\uff0cflac": [3, 6], "\uff0calac": [3, 6], "\uff0craw": [3, 5, 6], "\u306a\u3069": [3, 5, 6], "\u69d8\u3005": [3, 6], "\u5f62\u5f0f": [3, 5, 6], "\u8aad\u307f": 3, "\u66f8\u304d": 3, "\u306b\u3088\u308a": [3, 6], "\u7528\u610f": [3, 5, 6], "\u307e\u3059": [3, 5, 6], "\uff0espplugin": 3, "\u30cf\u30a4\u30ec\u30be\u30d5\u30a1\u30a4\u30eb": 3, "\u7528\u3044": [3, 5, 6], "\u3089\u308c\u308b": [3, 5, 6], "\u30d3\u30c3\u30c8": [3, 5, 6], "\u30b5\u30f3\u30d7\u30eb": 3, "\u5bfe\u5fdc": [3, 5, 6], "\u304a\u308a": [3, 5, 6], "\u4f8b\u3048": [3, 6], "\u8aad\u307f\u8fbc\u3093": 3, "\u7c21\u5358": 3, "\u6271\u3046": 3, "\u3053\u3068": [3, 5, 6], "\u3067\u304d": [3, 5, 6], "\u30d0\u30a4\u30ca\u30ea\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8": 3, "pip": 3, "\u30b3\u30de\u30f3\u30c9": 3, "\u4f7f\u3046": [3, 5, 6], "install": 3, "\u3082\u3057": [3, 6], "anaconda": 3, "\u307e\u305f": [3, 5, 6], "miniconda": 3, "\u3044\u308b": [3, 5, 6], "\u5834\u5408": [3, 5, 6], "\uff0c\"": 3, "bannohideki": 3, "\u30c1\u30e3\u30f3\u30cd\u30eb": 3, "\u6307\u5b9a": [3, 5, 6], "conda": 3, "\u5b9f\u884c": 3, "\u304f\u3060": 3, "\u3055\u3044": 3, "\u7528\u3044\u308b": [3, 6], "\u306e\u307f": [3, 6], "\u5fc5\u8981": [3, 5, 6], "\u306a\u308a": [3, 5, 6], "\u305d\u308c": 3, "\u4ee5\u5916": 3, "\u5916\u90e8": 3, "\u7279\u306b": 3, "\u307e\u305b": [3, 5, 6], "\u306a\u304a": [3, 6], "\u30b5\u30dd\u30fc\u30c8": [3, 5, 6], "\u306a\u3044": [3, 5, 6], "\u306e\u3067": [3, 5, 6], "\u6ce8\u610f\u304f": [3, 5, 6], "\u3060\u3055\u3044": [3, 5, 6], "linux": 3, "pulseaudio": 3, "\u5229\u7528": 3, "pulsesimple": 3, "\u3053\u308c": [3, 5], "dpkg": 3, "(ubuntu": 3, "rpm": 3, "(centos": [], "\u4ee5\u4e0b": [3, 6], "\u306e\u3044": 3, "\u305a\u308c": [3, 5], "ubuntu": 3, "amd": 3, "https": 3, ":/": 3, "www": 3, "-ie": 3, ".meijo": 3, "-u": 3, ".ac": 3, ".jp": 3, "/labs": 3, "/rj": 3, "archive": 3, "/deb": 3, "/ubuntu": 3, "deb": 3, "centos": [], "/rpm": 3, "/el8": 3, "/el7": 3, "/el6": [], "apt": 3, "yum": 3, "\u4f7f\u3044": 3, "\u305f\u3044": [3, 5, 6], "\u3053\u3061\u3089": [3, 5, 6], "\u30da\u30fc\u30b8": 3, "\u898b\u3066": 3, "\u9ad8\u6c34": 3, "\u6e96\u95a2": 3, "\u95a2\u6570": [3, 5, 6], "\u8ffd\u52a0": [3, 5, 6], "/readrawframes": 3, "/writerawframes": 3, "\u82e5\u5e72": 3, "\u4ed5\u69d8": 3, "\u5909\u66f4": 3, "\u304a\u3051\u308b": [3, 5, 6], "\u30ad\u30fc\u30ef\u30fc\u30c9": [3, 5, 6], "\u5f15\u6570": [3, 5, 6], "open": [3, 5, 6], "\u547c\u3073\u51fa\u3057": [3, 5, 6], "\u6700\u521d": 3, "\u516c\u5f0f": 3, "\u30ea\u30ea\u30fc\u30b9": 3, "swig": 3, "spbase": 3, "splibs": 3, "/python": 3, "/spaudio": 3, "/en": 3, "/index": 3, ".html": 3, "\u65e5\u672c\u8a9e": 3, "/ja": 3, "\u4e0b\u8a18": [5, 6], "\u30d5\u30eb\u30c7\u30e5\u30d7\u30ec\u30c3\u30af\u30b9\u30aa\u30fc\u30c7\u30a3\u30aa": 5, "\u5b9f\u73fe": 5, "\u4ee5\u4e0a": 5, "\uff09\uff0e": [5, 6], "exception": [5, 6], "deviceerror": 5, "\u30bd\u30fc\u30b9": [5, 6], "\u30d9\u30fc\u30b9\u30af\u30e9\u30b9": [5, 6], "error": [5, 6], "\u554f\u984c": [5, 6], "\u4f8b\u5916": [5, 6], "drivererror": 5, "\u30aa\u30fc\u30c7\u30a3\u30aa\u30c9\u30e9\u30a4\u30d0\u30fc": 5, "\u57fa\u672c": [5, 6], "\u30af\u30e9\u30b9": [5, 6], "class": [5, 6], "drivername": 5, "none": [5, 6], "object": [5, 6], "\u305f\u3081": [5, 6], "\u30d1\u30e9\u30e1\u30fc\u30bf": [5, 6], "\u671f\u5316": 5, "\u30c9\u30e9\u30a4\u30d0\u30fc": 5, "close": [5, 6], "\u9589\u3058": [5, 6], "createarray": [5, 6], "nframesflag": [5, 6], "\u73fe\u5728": [5, 6], "\u30c7\u30d0\u30a4\u30b9": 5, "\u8a2d\u5b9a": [5, 6], "\u5fdc\u3058": [5, 6], "double": [5, 6], "\u578b\u914d": [5, 6], "\u4f5c\u6210": [5, 6], "\u9577\u3055": [5, 6], "\u3044\u308f\u3086\u308b": [5, 6], "\u30d5\u30ec\u30fc\u30e0": [5, 6], "\u7570\u306a\u308a": [5, 6], "\uff08length": [5, 6], "bool": [5, 6], "optional": [5, 6], "\u623b\u308a\u5024": [5, 6], "\u30aa\u30d6\u30b8\u30a7\u30af\u30c8": [5, 6], "\u8fd4\u308a": [5, 6], ".array": [5, 6], "createndarray": [5, 6], "\u51fa\u529b": [5, 6], "\u884c\u5217": [5, 6], "\u30ea\u30b5\u30a4\u30ba": [5, 6], "\u5c0e\u5165": [5, 6], "\u307e\u3057": [5, 6], ".ndarray": [5, 6], "createrawarray": [5, 6], "createrawndarray": [5, 6], "getarraytypecode": [5, 6], "\u4fdd\u6301": [5, 6], "\u30b3\u30fc\u30c9": [5, 6], "\u53d6\u5f97": [5, 6], "char": [5, 6], "getblockingmode": 5, "\u30d6\u30ed\u30c3\u30ad\u30f3\u30b0\u30e2\u30fc\u30c9": 5, "\u30c7\u30d5\u30a9\u30eb\u30c8": [5, 6], "\uff09\uff0c": 5, "\u30ce\u30f3\u30d6\u30ed\u30c3\u30ad\u30f3\u30b0\u30e2\u30fc\u30c9": 5, "int": [5, 6], "getbuffersize": 5, "\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba": 5, "getcompname": [5, 6], "\u5727\u7e2e": [5, 6], "\u8a73\u7d30": [5, 6], "'not": [5, 6], "compressed": [5, 6], "\u306e\u3044\u305a\u308c\u304b": [5, 6], "getcomptype": [5, 6], "'none": [5, 6], "getdevicelist": 5, "\u30ea\u30b9\u30c8": 5, "getdevicename": 5, "deviceindex": 5, "\u540d\u524d": [5, 6], "getframerate": [5, 6], "\u30b5\u30f3\u30d7\u30eb\u30ec\u30fc\u30c8": [5, 6], "getnbuffers": 5, "\u30d0\u30c3\u30d5\u30a1": 5, "getnchannels": [5, 6], "\u30c1\u30e3\u30cd\u30eb": [5, 6], "getndarraydtype": [5, 6], "dtype": [5, 6], "\u6587\u5b57\u5217": [5, 6], "\u6587\u5b57": [5, 6], "getndevices": 5, "getparams": [5, 6], "\u5168\u3066": [5, 6], "dict": [5, 6], "\u30ad\u30fc": [5, 6], "'nchannels": [5, 6], "'sampbit": [5, 6], "'samprate": [5, 6], "'blockingmode": 5, "'buffersize": 5, "'nbuffers": 5, "\u306a\u3063": [5, 6], "getparamstuple": [5, 6], "namedtuple": [5, 6], "'comptype": 5, "\u53ca\u3073": [5, 6], "'compname": 5, "bytes": [5, 6], "\u30c7\u30b3\u30fc\u30c9": [5, 6], "\u6a19\u6e96": [5, 6], "\uff0csunau": [5, 6], "\u8981\u6c42": [5, 6], "\u306e\u306b\u5bfe\u3057": [5, 6], "\u308c\u308b": [5, 6], "tuple": [5, 6], "\u8981\u7d20": [5, 6], "\u542b\u3080": [5, 6], "compname": [5, 6], "\uff0caifc": [5, 6], "\uff0cwave": [5, 6], "setparams": [5, 6], "\u3068\u3057\u3066": [5, 6], "\u4e0e\u3048\u308b": [5, 6], "getrawarraytypecode": [5, 6], "\u30c7\u30fc\u30bf": [5, 6], "getrawndarraydtype": [5, 6], "getrawsampbit": [5, 6], "getrawsampwidth": [5, 6], "\u30d0\u30a4\u30c8": [5, 6], "getsampbit": [5, 6], "\uff0esampbit": [5, 6], "33": [5, 6], "getsamprate": [5, 6], "getsampwidth": [5, 6], "mode": [5, 6], "blockingmode": 5, "nbuffers": 5, "\u958b\u304d": [5, 6], "\u958b\u304f\u969b": [5, 6], "\u30e2\u30fc\u30c9": [5, 6], "'r": [5, 6], "'w": [5, 6], "\u304c\u3042\u308a": [5, 6], "\uff0e\u307e\u305f": 5, "\u5c02\u7528": 5, "'ro": 5, "'wo": 5, "\u3053\u308c\u3089": [5, 6], "\u306f\u3044": 5, "\u3067\u3057\u304b": 5, "\u958b\u3051": 5, "\u306a\u304f": 5, "\u74b0\u5883": 5, "\u306b\u3088\u3063\u3066": [5, 6], "\u51e6\u7406": 5, "\u8efd\u304f": 5, "\u306a\u308b": [5, 6], "\u542b\u307e": 5, "setcallback": 5, "\u9078\u629e": 5, "\u30a4\u30f3\u30c7\u30c3\u30af\u30b9": 5, "\u4e0a\u8a18": [5, 6], "\u304b\u3089": [5, 6], "\u307e\u3067": 5, "\u4efb\u610f": 5, "\u542b\u307e\u308c": 5, "\u5f97\u308b": 5, "read": [5, 6], "weight": [5, 6], "or": [5, 6], "\u8aad\u307f\u8fbc\u3080": [5, 6], "\u4e57\u3058": [5, 6], "\u91cd\u307f": [5, 6], "\u4fc2\u6570": [5, 6], "\u30aa\u30d7\u30b7\u30e7\u30f3": [5, 6], "\u306b\u5bfe\u3059\u308b": [5, 6], "\u30aa\u30d5\u30bb\u30c3\u30c8": [5, 6], "\u6210\u529f": [5, 6], "\u30b5\u30a4\u30ba": [5, 6], "\u5931\u6557": [5, 6], "'ndarray": [5, 6], "\u5206\u306e": [5, 6], "\uff0cdouble": [5, 6], "\u8fd4\u3057": [5, 6], "\uff09,": [5, 6], "'array": [5, 6], "'bytearray": [5, 6], "\u3060\u3051": [5, 6], "\u6709\u52b9": [5, 6], "\u8aad\u307f\u8fbc\u307e": [5, 6], "\u542b\u307e\u308c\u308b": [5, 6], "readraw": [5, 6], "readrawframes": [5, 6], "\u518d\u8aad\u8fbc": 5, "selectdevice": 5, "valueerror": 5, "\u767a\u751f": [5, 6], "setblockingmode": 5, "setbuffersize": 5, "calltype": 5, "func": 5, "\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u30bf\u30a4\u30d7": 5, "\u30b3\u30f3\u30d3\u30cd\u30fc\u30b7\u30e7\u30f3": 5, "callable": 5, "callbacksignature": 5, "\u8aac\u660e": [5, 6], "\u30b7\u30b0\u30cd\u30c1\u30e3": 5, "\u6301\u3064": [5, 6], "*args": 5, "\u6e21\u3059": 5, "\u53ef\u5909": 5, "\u306a\u304b\u3063": [5, 6], "setcomptype": [5, 6], "encodestr": [5, 6], "\u7121\u8996": [5, 6], "setframerate": [5, 6], "setnbuffers": 5, "setnchannels": [5, 6], "\uff0cdict": 5, "\u3082\u3057\u304f": [5, 6], "setsampbit": [5, 6], "setsamprate": [5, 6], "setsampwidth": [5, 6], "floatflag": [5, 6], "stop": 5, "\u505c\u6b62": 5, "sync": 5, "\u540c\u671f": 5, "terminate": 5, "\u7d42\u4e86": 5, "\u66f8\u304d\u8fbc\u3080": [5, 6], "\u66f8\u304d\u8fbc\u307e": [5, 6], "writeraw": [5, 6], "writerawframes": [5, 6], "\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9": [5, 6], "\u4f9d\u5b58": 5, "\u4f4d\u7f6e": [5, 6], "\u306b\u3066": 5, "\u63a5\u982d": 5, "\u305f\u304f": 5, "getdriverdevicename": 5, "index": 5, "getdriverlist": 5, "getdrivername": 5, "getndriverdevices": 5, "getndrivers": 5, "\u60f3\u5b9a": [5, 6], "\u958b\u304f": [5, 6], "'rw": 5, "\uff0ewav": 6, "\u5165\u529b": 6, "\u6ce2\u5f62": 6, "\uff0cmatlab": 6, "\u540c\u540d": 6, "\u30ec\u30d9\u30eb": 6, "\u3055\u3089\u306b": 6, "'write": 6, "\u3068\u3082": 6, "\u8a00\u3048\u308b": 6, "bogusfileerror": 6, "\u7570\u5e38": 6, "\u3042\u308b": [3, 6], "fileerror": 6, "filetypeerror": 6, "nchannelserror": 6, "nframesrequirederror": 6, "samplebiterror": 6, "samplerateerror": 6, "spfileplugin": 6, "\u540c\u3058": 6, "\u3088\u3046": 6, "set": 6, "*(": 6, "\u547c\u3073\u51fa\u3059": 6, "\u6319\u3052": 6, "\u3089\u308c": 6, "\u3067\u3082": 6, "appendsonginfo": 6, "\u30bd\u30f3\u30b0": 6, "\u60c5\u5831": 6, "\u5185\u90e8": 6, "\u5909\u6570": 6, "copyarray": 6, "inarray": 6, "\uff0c\u65b0": 6, "\u30b3\u30d4\u30fc": 6, "\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3": 6, "\u30d3\u30c3\u30b0\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3": 6, "\u7b26\u53f7": 6, "\u4ed8\u304d": 6, "\u30d3\u30c3\u30c8\u30c7\u30fc\u30bf": 6, "copyraw": 6, "rawdata": 6, "getfiledesc": 6, "\uff0cpcm": 6, "'microsoft": 6, "pcm": 6, "getfilefilter": 6, "\u30d5\u30a1\u30a4\u30eb\u30d5\u30a3\u30eb\u30bf\u30fc": 6, "*.": 6, "getfiletype": 6, "getmark": 6, "id": 6, "\u4e92\u63db": [3, 6], "getmarkers": 6, "getnframes": 6, "'nframes": 6, "'filetype": 6, "'songinfo": 6, "getplugindesc": 6, "\u77ed\u3044": 6, "getpluginid": 6, "getplugininfo": 6, "getpluginname": 6, "getpluginversion": 6, "getsonginfo": 6, "\u9069\u5207": 6, "\u898b\u3064": 6, "suitablenotfounderror": 6, "\uff0eraw": 6, "'input": 6, "\u5168\u4f53": 6, "\u6642\u9593": 6, "\u610f\u5473": 6, "rewind": 6, "\u5148\u982d": 6, "\u79fb\u52d5": 6, "setfiletype": 6, "setmark": 6, "pos": 6, "setnframes": 6, "setpos": 6, "\u79fb\u52d5\u5148": 6, "setsonginfo": 6, "tell": 6, "wrongpluginerror": 6, "\u4e0d\u9069\u5207": 6, "samples": 6, "datatype": 6, "'double": 6, "\u7bc4\u56f2": 6, "(start": 6, "finish": 6, "\u6700\u5f8c": 6, "'raw": 6, "\u547c\u3070": 6, "\u4f7f\u308f": 6, "\u3082\u306e": 6, "=false": 6, "\u8fd4\u3055": 6, "\u7a2e\u985e": 6, "\u81ea\u52d5": 6, "\u5224\u5b9a": 6, "'output": 6, "\u65b0\u898f": 6, "the": [], "also": [], "requires": [], "installation": [], "device": [], "based": [], "on": [], ").": [], "you": [], "it": [], "using": [], "(rhel": 3, "command": [], "one": [], "following": [], "packages": [], "files": [], "rhel": 3, "were": [], "tested": [], "and": [], "almalinux": 3, "note": [], "that": [], "-enablerepo": [], "=powertools": [], "option": [], "=crb": [], "may": [], "respectively": [], "/el9": 3, "want": [], "use": [], "see": [], "this": [], "page": [], "\uff0erhel": 3, "\uff0crhel": 3, "\uff0ccentos": 3, "\u52d5\u4f5c": 3, "\u78ba\u8a8d": 3, "\uff0cyum": [], "\u306b\u5bfe\u3057": [], "\u30d0\u30a4\u30ca\u30ea\u30d5\u30a1\u30a4\u30eb": 3, "\u30d0\u30b0": 3, "\u4fee\u6b63": 3}, "objects": {"": [[5, 0, 0, "-", "spaudio"], [6, 0, 0, "-", "spplugin"]], "spaudio": [[5, 1, 1, "", "DeviceError"], [5, 1, 1, "", "DriverError"], [5, 1, 1, "", "Error"], [5, 2, 1, "", "SpAudio"], [5, 4, 1, "", "callbacksignature"], [5, 4, 1, "", "getdriverdevicename"], [5, 4, 1, "", "getdriverlist"], [5, 4, 1, "", "getdrivername"], [5, 4, 1, "", "getndriverdevices"], [5, 4, 1, "", "getndrivers"], [5, 4, 1, "", "open"]], "spaudio.SpAudio": [[5, 3, 1, "", "close"], [5, 3, 1, "", "createarray"], [5, 3, 1, "", "createndarray"], [5, 3, 1, "", "createrawarray"], [5, 3, 1, "", "createrawndarray"], [5, 3, 1, "", "getarraytypecode"], [5, 3, 1, "", "getblockingmode"], [5, 3, 1, "", "getbuffersize"], [5, 3, 1, "", "getcompname"], [5, 3, 1, "", "getcomptype"], [5, 3, 1, "", "getdevicelist"], [5, 3, 1, "", "getdevicename"], [5, 3, 1, "", "getframerate"], [5, 3, 1, "", "getnbuffers"], [5, 3, 1, "", "getnchannels"], [5, 3, 1, "", "getndarraydtype"], [5, 3, 1, "", "getndevices"], [5, 3, 1, "", "getparams"], [5, 3, 1, "", "getparamstuple"], [5, 3, 1, "", "getrawarraytypecode"], [5, 3, 1, "", "getrawndarraydtype"], [5, 3, 1, "", "getrawsampbit"], [5, 3, 1, "", "getrawsampwidth"], [5, 3, 1, "", "getsampbit"], [5, 3, 1, "", "getsamprate"], [5, 3, 1, "", "getsampwidth"], [5, 3, 1, "", "open"], [5, 3, 1, "", "read"], [5, 3, 1, "", "readframes"], [5, 3, 1, "", "readraw"], [5, 3, 1, "", "readrawframes"], [5, 3, 1, "", "reload"], [5, 3, 1, "", "selectdevice"], [5, 3, 1, "", "setblockingmode"], [5, 3, 1, "", "setbuffersize"], [5, 3, 1, "", "setcallback"], [5, 3, 1, "", "setcomptype"], [5, 3, 1, "", "setframerate"], [5, 3, 1, "", "setnbuffers"], [5, 3, 1, "", "setnchannels"], [5, 3, 1, "", "setparams"], [5, 3, 1, "", "setsampbit"], [5, 3, 1, "", "setsamprate"], [5, 3, 1, "", "setsampwidth"], [5, 3, 1, "", "stop"], [5, 3, 1, "", "sync"], [5, 3, 1, "", "terminate"], [5, 3, 1, "", "write"], [5, 3, 1, "", "writeframes"], [5, 3, 1, "", "writeraw"], [5, 3, 1, "", "writerawframes"]], "spplugin": [[6, 1, 1, "", "BogusFileError"], [6, 1, 1, "", "Error"], [6, 1, 1, "", "FileError"], [6, 1, 1, "", "FileTypeError"], [6, 1, 1, "", "NChannelsError"], [6, 1, 1, "", "NFramesRequiredError"], [6, 1, 1, "", "SampleBitError"], [6, 1, 1, "", "SampleRateError"], [6, 2, 1, "", "SpFilePlugin"], [6, 1, 1, "", "SuitableNotFoundError"], [6, 1, 1, "", "WrongPluginError"], [6, 4, 1, "", "audioread"], [6, 4, 1, "", "audiowrite"], [6, 4, 1, "", "getplugindesc"], [6, 4, 1, "", "getplugininfo"], [6, 4, 1, "", "open"]], "spplugin.SpFilePlugin": [[6, 3, 1, "", "appendsonginfo"], [6, 3, 1, "", "close"], [6, 3, 1, "", "copyarray2raw"], [6, 3, 1, "", "copyraw2array"], [6, 3, 1, "", "createarray"], [6, 3, 1, "", "createndarray"], [6, 3, 1, "", "createrawarray"], [6, 3, 1, "", "createrawndarray"], [6, 3, 1, "", "getarraytypecode"], [6, 3, 1, "", "getcompname"], [6, 3, 1, "", "getcomptype"], [6, 3, 1, "", "getfiledesc"], [6, 3, 1, "", "getfilefilter"], [6, 3, 1, "", "getfiletype"], [6, 3, 1, "", "getframerate"], [6, 3, 1, "", "getmark"], [6, 3, 1, "", "getmarkers"], [6, 3, 1, "", "getnchannels"], [6, 3, 1, "", "getndarraydtype"], [6, 3, 1, "", "getnframes"], [6, 3, 1, "", "getparams"], [6, 3, 1, "", "getparamstuple"], [6, 3, 1, "", "getplugindesc"], [6, 3, 1, "", "getpluginid"], [6, 3, 1, "", "getplugininfo"], [6, 3, 1, "", "getpluginname"], [6, 3, 1, "", "getpluginversion"], [6, 3, 1, "", "getrawarraytypecode"], [6, 3, 1, "", "getrawndarraydtype"], [6, 3, 1, "", "getrawsampbit"], [6, 3, 1, "", "getrawsampwidth"], [6, 3, 1, "", "getsampbit"], [6, 3, 1, "", "getsamprate"], [6, 3, 1, "", "getsampwidth"], [6, 3, 1, "", "getsonginfo"], [6, 3, 1, "", "open"], [6, 3, 1, "", "read"], [6, 3, 1, "", "readframes"], [6, 3, 1, "", "readraw"], [6, 3, 1, "", "readrawframes"], [6, 3, 1, "", "rewind"], [6, 3, 1, "", "setcomptype"], [6, 3, 1, "", "setfiletype"], [6, 3, 1, "", "setframerate"], [6, 3, 1, "", "setmark"], [6, 3, 1, "", "setnchannels"], [6, 3, 1, "", "setnframes"], [6, 3, 1, "", "setparams"], [6, 3, 1, "", "setpos"], [6, 3, 1, "", "setsampbit"], [6, 3, 1, "", "setsamprate"], [6, 3, 1, "", "setsampwidth"], [6, 3, 1, "", "setsonginfo"], [6, 3, 1, "", "tell"], [6, 3, 1, "", "write"], [6, 3, 1, "", "writeframes"], [6, 3, 1, "", "writeraw"], [6, 3, 1, "", "writerawframes"]]}, "objtypes": {"0": "py:module", "1": "py:exception", "2": "py:class", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python \u30e2\u30b8\u30e5\u30fc\u30eb"], "1": ["py", "exception", "Python \u4f8b\u5916"], "2": ["py", "class", "Python \u30af\u30e9\u30b9"], "3": ["py", "method", "Python \u30e1\u30bd\u30c3\u30c9"], "4": ["py", "function", "Python \u306e\u95a2\u6570"]}, "titleterms": {"api": 0, "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8": 0, "\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9": 1, "spaudio": [1, 2, 4, 5], "\u30d5\u30eb\u30c7\u30e5\u30d7\u30ec\u30c3\u30af\u30b9i": 1, "/o": 1, "with": 1, "\u4f7f\u7528": 1, "\u30d0\u30fc\u30b8\u30e7\u30f3": 1, "\u4ee5\u964d": 1, "\u8aad\u307f\u8fbc\u307f": 1, "\u30d7\u30ed\u30c3\u30c8": 1, "python": [1, 2], "\u914d\u5217": 1, "raw": 1, "\u30c7\u30fc\u30bf\u30d0\u30fc\u30b8\u30e7\u30f3": 1, "numpy": 1, "ndarray": 1, "wav": 1, "\u30d5\u30a1\u30a4\u30eb": 1, "\u518d\u751f": 1, "\u30b3\u30fc\u30eb\u30d0\u30c3\u30af": 1, "\u3042\u308a": 1, "\u9332\u97f3": 1, "\u30d6\u30ed\u30c3\u30af": 1, "\u3054\u3068": 1, "\u66f8\u304d\u8fbc\u307f": 1, "readframes": 1, "()": 1, "writeframes": 1, "spplugin": [1, 6], "audioread": 1, "audiowrite": 1, "\u30d7\u30e9\u30b0\u30a4\u30f3": 1, "\u306b\u3088\u308b": 1, "\u97f3\u58f0": 1, "\u305d\u306e": 1, "\u5185\u5bb9": 1, "\u5909\u63db": 1, "for": 2, "\u76ee\u6b21": 2, "\u7d22\u5f15": 2, "\u306f\u3058\u3081": 3, "\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb": 3, "\u66f4\u65b0": 3, "\u5c65\u6b74": 3, "\u30d3\u30eb\u30c9": 3, "\u30aa\u30d5\u30a3\u30b7\u30e3\u30eb\u30b5\u30a4\u30c8": 3, "\u30e2\u30b8\u30e5\u30fc\u30eb": [5, 6], "\u30b5\u30f3\u30d7\u30eb": [5, 6]}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) |
+41
-23
| Introduction | ||
| ============ | ||
| This package is the Python version of `spAudio library <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| This package is the Python version of `spAudio library <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| providing :doc:`spaudio</spaudio>` module which enables fullduplex audio device I/O and | ||
| :doc:`spplugin</spplugin>` module which enables plugin-based file I/O | ||
| supporting many sound formats including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| The spplugin module also supports 24/32-bit sample size used in high-resolution audio files, so | ||
| you can easily load data with 24/32-bit sample size into `NumPy <http://www.numpy.org/>`_'s ndarray. | ||
| Installation | ||
@@ -27,39 +28,56 @@ ------------ | ||
| The linux version also requires `spPlugin <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| The linux version also requires `spPlugin <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| installation (audio device I/O requires the pulsesimple plugin | ||
| based on `PulseAudio <https://www.freedesktop.org/wiki/Software/PulseAudio/>`_ ). | ||
| You can install it by using ``dpkg`` (Ubuntu) or ``rpm`` (CentOS) command with one of the following | ||
| packages. | ||
| You can install it by using ``dpkg`` (Ubuntu) or ``rpm`` (RHEL) command with one of the following | ||
| packages. The files for RHEL were tested on CentOS 7 (RHEL 7) and AlmaLinux 8/9 (RHEL 8/9). | ||
| * Ubuntu 24 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu24/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 22 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu22/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 20 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 18 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_amd64.deb | ||
| * i386: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_i386.deb | ||
| * Ubuntu 16 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_amd64.deb | ||
| * i386: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_i386.deb | ||
| * Ubuntu 14 | ||
| * RHEL 9 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el9/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb | ||
| * RHEL 8 | ||
| * CentOS 7 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el8/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm | ||
| * RHEL 7 | ||
| * CentOS 6 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm | ||
| If you want to use ``apt`` (Ubuntu) or ``yum`` (RHEL), | ||
| see `this page (for Ubuntu) <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg>`_ | ||
| or `this page (for RHEL) <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum>`_ . | ||
| If you want to use ``apt`` (Ubuntu) or ``yum`` (CentOS), | ||
| see `this page (for Ubuntu) <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg>`_ | ||
| or `this page (for CentOS) <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum>`_ . | ||
| Change Log | ||
| ---------- | ||
| - Version 0.7.17 | ||
| * Rebuilt binaries. | ||
| * Updated documents. | ||
| * Fixed some bugs of plugins for spplugin module. | ||
| - Version 0.7.16 | ||
@@ -91,3 +109,3 @@ | ||
| * `SWIG <http://www.swig.org/>`_ | ||
| * `spBase and spAudio <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| * `spBase and spAudio <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
@@ -97,4 +115,4 @@ | ||
| ------------- | ||
| The official web site is: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| The official web site is: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Japanese web site is also available: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html | ||
| Japanese web site is also available: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html |
+1
-1
@@ -1,2 +0,2 @@ | ||
| Copyright (c) 2017-2019 Hideki Banno | ||
| Copyright (c) 2017-2024 Hideki Banno | ||
@@ -3,0 +3,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy |
+123
-102
| Metadata-Version: 2.1 | ||
| Name: spaudio | ||
| Version: 0.7.16 | ||
| Version: 0.7.17 | ||
| Summary: spAudio audio I/O library | ||
| Home-page: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Home-page: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Author: Hideki Banno | ||
| Author-email: banno@meijo-u.ac.jp | ||
| License: MIT | ||
| Description: Introduction | ||
| ============ | ||
| This package is the Python version of `spAudio library <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| providing `spaudio module <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spaudio.html>`_ | ||
| which enables fullduplex audio device I/O and | ||
| `spplugin module <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spplugin.html>`_ | ||
| which enables plugin-based file I/O supporting many sound formats | ||
| including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| Installation | ||
| ============ | ||
| You can use ``pip`` command to install the binary package:: | ||
| pip install spaudio | ||
| If you use `Anaconda <https://www.anaconda.com/distribution/>`_ | ||
| or `Miniconda <https://docs.conda.io/en/latest/miniconda.html>`_ , | ||
| ``conda`` command with "bannohideki" channel can be used:: | ||
| conda install -c bannohideki spaudio | ||
| `NumPy <http://www.numpy.org/>`_ package is needed only if you want to | ||
| use NumPy arrays. If you don't use NumPy arrays, no external package is required. | ||
| Note that this package doesn't support Python 2. | ||
| The linux version also requires `spPlugin <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| installation (audio device I/O requires the pulsesimple plugin | ||
| based on `PulseAudio <https://www.freedesktop.org/wiki/Software/PulseAudio/>`_ ). | ||
| You can install it by using ``dpkg`` (Ubuntu) or ``rpm`` (CentOS) command with one of the following | ||
| packages. | ||
| * Ubuntu 18 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb | ||
| * Ubuntu 16 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb | ||
| * Ubuntu 14 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb | ||
| * CentOS 7 | ||
| * http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm | ||
| * CentOS 6 | ||
| * http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm | ||
| If you want to use ``apt`` (Ubuntu) or ``yum`` (CentOS), | ||
| see `this page (for Ubuntu) <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg>`_ | ||
| or `this page (for CentOS) <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum>`_ . | ||
| Change Log | ||
| ========== | ||
| - Version 0.7.16 | ||
| * Added high-level functions of audioread and audiowrite to spplugin module. | ||
| * Added functions of readframes/readrawframes and writeframes/writerawframes | ||
| to spaudio module and spplugin module. | ||
| * Changed some specification of spplugin. | ||
| - Version 0.7.15 | ||
| * Added spaudio.open function to spaudio module. | ||
| * Added support for open call of spaudio module with keyword arguments. | ||
| - Version 0.7.14 | ||
| * Added spplugin module which enables plugin-based audio file I/O. | ||
| - Version 0.7.13 | ||
| * Initial public release. | ||
| Build | ||
| ===== | ||
| To build this package, the following are required. | ||
| * `SWIG <http://www.swig.org/>`_ | ||
| * `spBase and spAudio <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| Official Site | ||
| ============= | ||
| The official web site is: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Japanese web site is also available: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html | ||
| Keywords: audio,sound,play,record,I/O,file,capture,wav,aiff,caf,ogg,mp3,flac,alac,python,library | ||
@@ -128,2 +28,123 @@ Platform: posix | ||
| Description-Content-Type: text/x-rst | ||
| License-File: LICENSE.txt | ||
| Provides-Extra: numpy | ||
| Requires-Dist: numpy; extra == "numpy" | ||
| Introduction | ||
| ============ | ||
| This package is the Python version of `spAudio library <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| providing `spaudio module <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spaudio.html>`_ | ||
| which enables fullduplex audio device I/O and | ||
| `spplugin module <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spplugin.html>`_ | ||
| which enables plugin-based file I/O supporting many sound formats | ||
| including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| The spplugin module also supports 24/32-bit sample size used in high-resolution audio files, so | ||
| you can easily load data with 24/32-bit sample size into `NumPy <http://www.numpy.org/>`_'s ndarray. | ||
| Installation | ||
| ============ | ||
| You can use ``pip`` command to install the binary package:: | ||
| pip install spaudio | ||
| If you use `Anaconda <https://www.anaconda.com/distribution/>`_ | ||
| or `Miniconda <https://docs.conda.io/en/latest/miniconda.html>`_ , | ||
| ``conda`` command with "bannohideki" channel can be used:: | ||
| conda install -c bannohideki spaudio | ||
| `NumPy <http://www.numpy.org/>`_ package is needed only if you want to | ||
| use NumPy arrays. If you don't use NumPy arrays, no external package is required. | ||
| Note that this package doesn't support Python 2. | ||
| The linux version also requires `spPlugin <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| installation (audio device I/O requires the pulsesimple plugin | ||
| based on `PulseAudio <https://www.freedesktop.org/wiki/Software/PulseAudio/>`_ ). | ||
| You can install it by using ``dpkg`` (Ubuntu) or ``rpm`` (RHEL) command with one of the following | ||
| packages. The files for RHEL were tested on CentOS 7 (RHEL 7) and AlmaLinux 8/9 (RHEL 8/9). | ||
| * Ubuntu 24 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu24/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 22 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu22/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 20 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 18 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_amd64.deb | ||
| * i386: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_i386.deb | ||
| * Ubuntu 16 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_amd64.deb | ||
| * i386: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_i386.deb | ||
| * RHEL 9 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el9/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * RHEL 8 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el8/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * RHEL 7 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| If you want to use ``apt`` (Ubuntu) or ``yum`` (RHEL), | ||
| see `this page (for Ubuntu) <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg>`_ | ||
| or `this page (for RHEL) <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum>`_ . | ||
| Change Log | ||
| ========== | ||
| - Version 0.7.17 | ||
| * Rebuilt binaries. | ||
| * Updated documents. | ||
| * Fixed some bugs of plugins for spplugin module. | ||
| - Version 0.7.16 | ||
| * Added high-level functions of audioread and audiowrite to spplugin module. | ||
| * Added functions of readframes/readrawframes and writeframes/writerawframes | ||
| to spaudio module and spplugin module. | ||
| * Changed some specification of spplugin. | ||
| - Version 0.7.15 | ||
| * Added spaudio.open function to spaudio module. | ||
| * Added support for open call of spaudio module with keyword arguments. | ||
| - Version 0.7.14 | ||
| * Added spplugin module which enables plugin-based audio file I/O. | ||
| - Version 0.7.13 | ||
| * Initial public release. | ||
| Build | ||
| ===== | ||
| To build this package, the following are required. | ||
| * `SWIG <http://www.swig.org/>`_ | ||
| * `spBase and spAudio <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| Official Site | ||
| ============= | ||
| The official web site is: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Japanese web site is also available: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html |
+43
-24
| Introduction | ||
| ============ | ||
| This package is the Python version of `spAudio library <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| providing `spaudio module <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spaudio.html>`_ | ||
| This package is the Python version of `spAudio library <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| providing `spaudio module <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spaudio.html>`_ | ||
| which enables fullduplex audio device I/O and | ||
| `spplugin module <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spplugin.html>`_ | ||
| `spplugin module <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spplugin.html>`_ | ||
| which enables plugin-based file I/O supporting many sound formats | ||
| including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| The spplugin module also supports 24/32-bit sample size used in high-resolution audio files, so | ||
| you can easily load data with 24/32-bit sample size into `NumPy <http://www.numpy.org/>`_'s ndarray. | ||
@@ -29,39 +31,56 @@ | ||
| The linux version also requires `spPlugin <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| The linux version also requires `spPlugin <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| installation (audio device I/O requires the pulsesimple plugin | ||
| based on `PulseAudio <https://www.freedesktop.org/wiki/Software/PulseAudio/>`_ ). | ||
| You can install it by using ``dpkg`` (Ubuntu) or ``rpm`` (CentOS) command with one of the following | ||
| packages. | ||
| You can install it by using ``dpkg`` (Ubuntu) or ``rpm`` (RHEL) command with one of the following | ||
| packages. The files for RHEL were tested on CentOS 7 (RHEL 7) and AlmaLinux 8/9 (RHEL 8/9). | ||
| * Ubuntu 24 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu24/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 22 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu22/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 20 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 18 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_amd64.deb | ||
| * i386: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_i386.deb | ||
| * Ubuntu 16 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_amd64.deb | ||
| * i386: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_i386.deb | ||
| * Ubuntu 14 | ||
| * RHEL 9 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el9/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb | ||
| * RHEL 8 | ||
| * CentOS 7 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el8/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm | ||
| * RHEL 7 | ||
| * CentOS 6 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm | ||
| If you want to use ``apt`` (Ubuntu) or ``yum`` (RHEL), | ||
| see `this page (for Ubuntu) <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg>`_ | ||
| or `this page (for RHEL) <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum>`_ . | ||
| If you want to use ``apt`` (Ubuntu) or ``yum`` (CentOS), | ||
| see `this page (for Ubuntu) <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg>`_ | ||
| or `this page (for CentOS) <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum>`_ . | ||
| Change Log | ||
| ========== | ||
| - Version 0.7.17 | ||
| * Rebuilt binaries. | ||
| * Updated documents. | ||
| * Fixed some bugs of plugins for spplugin module. | ||
| - Version 0.7.16 | ||
@@ -93,3 +112,3 @@ | ||
| * `SWIG <http://www.swig.org/>`_ | ||
| * `spBase and spAudio <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| * `spBase and spAudio <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
@@ -99,4 +118,4 @@ | ||
| ============= | ||
| The official web site is: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| The official web site is: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Japanese web site is also available: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html | ||
| Japanese web site is also available: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html |
+17
-9
@@ -6,2 +6,3 @@ #!/usr/bin/env python3 | ||
| import os | ||
| import platform | ||
| from setuptools import setup | ||
@@ -42,4 +43,4 @@ from setuptools import Extension | ||
| else: | ||
| # libpath = sptop + '/lib/x64/v141' | ||
| libpath = sptop + '/lib/x64/v140' | ||
| # libpath = sptop + '/lib/x64/v140' | ||
| libpath = sptop + '/lib/x64/v141' | ||
| sysdirname = 'win64' | ||
@@ -49,6 +50,8 @@ else: | ||
| if py_version_num <= 36: | ||
| libpath = sptop + '/lib/v140_xp' | ||
| # libpath = sptop + '/lib/v140_xp' | ||
| libpath = sptop + '/lib/v140' | ||
| else: | ||
| # libpath = sptop + '/lib/v141' | ||
| libpath = sptop + '/lib/v140_xp' | ||
| # libpath = sptop + '/lib/v140_xp' | ||
| # libpath = sptop + '/lib/v140' | ||
| libpath = sptop + '/lib/v141' | ||
| sysdirname = 'win32' | ||
@@ -61,4 +64,9 @@ pluginfiles_list = ['*.dll'] | ||
| '-Wl,-framework,AudioUnit', '-Wl,-framework,CoreAudio'] | ||
| ext_libraries = ['spa.mac64', 'spb.mac64'] | ||
| sysdirname = 'mac64' | ||
| if platform.machine() == 'arm64': | ||
| ext_libraries = ['spa.mac64ub', 'spb.mac64ub'] | ||
| sysdirname = 'mac64' | ||
| else: | ||
| ext_libraries = ['spa.mac64', 'spb.mac64'] | ||
| sysdirname = 'mac64' | ||
| pluginfiles_list = ['*.bundle/Contents/Info.plist', '*.bundle/Contents/MacOS/*', | ||
@@ -118,7 +126,7 @@ '*.bundle/Contents/Resources/English.lproj/InfoPlist.strings'] | ||
| name='spaudio', | ||
| version='0.7.16', | ||
| version='0.7.17', | ||
| description='spAudio audio I/O library', | ||
| long_description=readme, | ||
| long_description_content_type='text/x-rst', | ||
| url='http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html', | ||
| url='https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html', | ||
| keywords=['audio', 'sound', 'play', 'record', 'I/O', 'file', | ||
@@ -125,0 +133,0 @@ 'capture', 'wav', 'aiff', 'caf', 'ogg', 'mp3', |
+123
-102
| Metadata-Version: 2.1 | ||
| Name: spaudio | ||
| Version: 0.7.16 | ||
| Version: 0.7.17 | ||
| Summary: spAudio audio I/O library | ||
| Home-page: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Home-page: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Author: Hideki Banno | ||
| Author-email: banno@meijo-u.ac.jp | ||
| License: MIT | ||
| Description: Introduction | ||
| ============ | ||
| This package is the Python version of `spAudio library <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| providing `spaudio module <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spaudio.html>`_ | ||
| which enables fullduplex audio device I/O and | ||
| `spplugin module <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spplugin.html>`_ | ||
| which enables plugin-based file I/O supporting many sound formats | ||
| including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| Installation | ||
| ============ | ||
| You can use ``pip`` command to install the binary package:: | ||
| pip install spaudio | ||
| If you use `Anaconda <https://www.anaconda.com/distribution/>`_ | ||
| or `Miniconda <https://docs.conda.io/en/latest/miniconda.html>`_ , | ||
| ``conda`` command with "bannohideki" channel can be used:: | ||
| conda install -c bannohideki spaudio | ||
| `NumPy <http://www.numpy.org/>`_ package is needed only if you want to | ||
| use NumPy arrays. If you don't use NumPy arrays, no external package is required. | ||
| Note that this package doesn't support Python 2. | ||
| The linux version also requires `spPlugin <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| installation (audio device I/O requires the pulsesimple plugin | ||
| based on `PulseAudio <https://www.freedesktop.org/wiki/Software/PulseAudio/>`_ ). | ||
| You can install it by using ``dpkg`` (Ubuntu) or ``rpm`` (CentOS) command with one of the following | ||
| packages. | ||
| * Ubuntu 18 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.5-5_i386.deb | ||
| * Ubuntu 16 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.5-5_i386.deb | ||
| * Ubuntu 14 | ||
| * amd64: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_amd64.deb | ||
| * i386: http://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu14/spplugin_0.8.5-5_i386.deb | ||
| * CentOS 7 | ||
| * http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.5-5.x86_64.rpm | ||
| * CentOS 6 | ||
| * http://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el6/x86_64/spPlugin-0.8.5-5.x86_64.rpm | ||
| If you want to use ``apt`` (Ubuntu) or ``yum`` (CentOS), | ||
| see `this page (for Ubuntu) <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg>`_ | ||
| or `this page (for CentOS) <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum>`_ . | ||
| Change Log | ||
| ========== | ||
| - Version 0.7.16 | ||
| * Added high-level functions of audioread and audiowrite to spplugin module. | ||
| * Added functions of readframes/readrawframes and writeframes/writerawframes | ||
| to spaudio module and spplugin module. | ||
| * Changed some specification of spplugin. | ||
| - Version 0.7.15 | ||
| * Added spaudio.open function to spaudio module. | ||
| * Added support for open call of spaudio module with keyword arguments. | ||
| - Version 0.7.14 | ||
| * Added spplugin module which enables plugin-based audio file I/O. | ||
| - Version 0.7.13 | ||
| * Initial public release. | ||
| Build | ||
| ===== | ||
| To build this package, the following are required. | ||
| * `SWIG <http://www.swig.org/>`_ | ||
| * `spBase and spAudio <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| Official Site | ||
| ============= | ||
| The official web site is: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Japanese web site is also available: http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html | ||
| Keywords: audio,sound,play,record,I/O,file,capture,wav,aiff,caf,ogg,mp3,flac,alac,python,library | ||
@@ -128,2 +28,123 @@ Platform: posix | ||
| Description-Content-Type: text/x-rst | ||
| License-File: LICENSE.txt | ||
| Provides-Extra: numpy | ||
| Requires-Dist: numpy; extra == "numpy" | ||
| Introduction | ||
| ============ | ||
| This package is the Python version of `spAudio library <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| providing `spaudio module <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spaudio.html>`_ | ||
| which enables fullduplex audio device I/O and | ||
| `spplugin module <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/spplugin.html>`_ | ||
| which enables plugin-based file I/O supporting many sound formats | ||
| including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| The spplugin module also supports 24/32-bit sample size used in high-resolution audio files, so | ||
| you can easily load data with 24/32-bit sample size into `NumPy <http://www.numpy.org/>`_'s ndarray. | ||
| Installation | ||
| ============ | ||
| You can use ``pip`` command to install the binary package:: | ||
| pip install spaudio | ||
| If you use `Anaconda <https://www.anaconda.com/distribution/>`_ | ||
| or `Miniconda <https://docs.conda.io/en/latest/miniconda.html>`_ , | ||
| ``conda`` command with "bannohideki" channel can be used:: | ||
| conda install -c bannohideki spaudio | ||
| `NumPy <http://www.numpy.org/>`_ package is needed only if you want to | ||
| use NumPy arrays. If you don't use NumPy arrays, no external package is required. | ||
| Note that this package doesn't support Python 2. | ||
| The linux version also requires `spPlugin <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| installation (audio device I/O requires the pulsesimple plugin | ||
| based on `PulseAudio <https://www.freedesktop.org/wiki/Software/PulseAudio/>`_ ). | ||
| You can install it by using ``dpkg`` (Ubuntu) or ``rpm`` (RHEL) command with one of the following | ||
| packages. The files for RHEL were tested on CentOS 7 (RHEL 7) and AlmaLinux 8/9 (RHEL 8/9). | ||
| * Ubuntu 24 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu24/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 22 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu22/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 20 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu20/spplugin_0.8.6-3_amd64.deb | ||
| * Ubuntu 18 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_amd64.deb | ||
| * i386: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu18/spplugin_0.8.6-3_i386.deb | ||
| * Ubuntu 16 | ||
| * amd64: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_amd64.deb | ||
| * i386: https://www-ie.meijo-u.ac.jp/labs/rj001/archive/deb/ubuntu16/spplugin_0.8.6-3_i386.deb | ||
| * RHEL 9 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el9/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * RHEL 8 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el8/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| * RHEL 7 | ||
| * https://www-ie.meijo-u.ac.jp/labs/rj001/archive/rpm/el7/x86_64/spPlugin-0.8.6-3.x86_64.rpm | ||
| If you want to use ``apt`` (Ubuntu) or ``yum`` (RHEL), | ||
| see `this page (for Ubuntu) <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#apt_dpkg>`_ | ||
| or `this page (for RHEL) <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/linux_download.html#yum>`_ . | ||
| Change Log | ||
| ========== | ||
| - Version 0.7.17 | ||
| * Rebuilt binaries. | ||
| * Updated documents. | ||
| * Fixed some bugs of plugins for spplugin module. | ||
| - Version 0.7.16 | ||
| * Added high-level functions of audioread and audiowrite to spplugin module. | ||
| * Added functions of readframes/readrawframes and writeframes/writerawframes | ||
| to spaudio module and spplugin module. | ||
| * Changed some specification of spplugin. | ||
| - Version 0.7.15 | ||
| * Added spaudio.open function to spaudio module. | ||
| * Added support for open call of spaudio module with keyword arguments. | ||
| - Version 0.7.14 | ||
| * Added spplugin module which enables plugin-based audio file I/O. | ||
| - Version 0.7.13 | ||
| * Initial public release. | ||
| Build | ||
| ===== | ||
| To build this package, the following are required. | ||
| * `SWIG <http://www.swig.org/>`_ | ||
| * `spBase and spAudio <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| Official Site | ||
| ============= | ||
| The official web site is: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/en/index.html | ||
| Japanese web site is also available: https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/python/spAudio/ja/index.html |
@@ -23,71 +23,87 @@ LICENSE.txt | ||
| _spplugins/mac64/input_aiff.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_aiff.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_alac.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_alac.bundle/Contents/MacOS/input_alac | ||
| _spplugins/mac64/input_alac.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_alac.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_caf.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_caf.bundle/Contents/MacOS/input_caf | ||
| _spplugins/mac64/input_caf.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_caf.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_flac.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_flac.bundle/Contents/MacOS/input_flac | ||
| _spplugins/mac64/input_flac.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_flac.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_monkey.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_monkey.bundle/Contents/MacOS/input_monkey | ||
| _spplugins/mac64/input_monkey.bundle/Contents/Resources/en.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_monkey.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_mpeg.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_mpeg.bundle/Contents/MacOS/input_mpeg | ||
| _spplugins/mac64/input_mpeg.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_mpeg.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_nist.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_nist.bundle/Contents/MacOS/input_nist | ||
| _spplugins/mac64/input_nist.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_nist.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_ogg.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_ogg.bundle/Contents/MacOS/input_ogg | ||
| _spplugins/mac64/input_ogg.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_ogg.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_raw.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_raw.bundle/Contents/MacOS/input_raw | ||
| _spplugins/mac64/input_raw.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_raw.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_sndfile.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_sndfile.bundle/Contents/MacOS/input_sndfile | ||
| _spplugins/mac64/input_sndfile.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_sndfile.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_text.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_text.bundle/Contents/MacOS/input_text | ||
| _spplugins/mac64/input_text.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_text.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/input_wav.bundle/Contents/Info.plist | ||
| _spplugins/mac64/input_wav.bundle/Contents/MacOS/input_wav | ||
| _spplugins/mac64/input_wav.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_wav.bundle/Contents/Resources/en.lproj/InfoPlist.strings | ||
| _spplugins/mac64/input_wav.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_aiff.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_aiff.bundle/Contents/MacOS/output_aiff | ||
| _spplugins/mac64/output_aiff.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_aiff.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_alac.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_alac.bundle/Contents/MacOS/output_alac | ||
| _spplugins/mac64/output_alac.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_alac.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_caf.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_caf.bundle/Contents/MacOS/output_caf | ||
| _spplugins/mac64/output_caf.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_caf.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_flac.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_flac.bundle/Contents/MacOS/output_flac | ||
| _spplugins/mac64/output_flac.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_lame.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_lame.bundle/Contents/MacOS/output_lame | ||
| _spplugins/mac64/output_lame.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_flac.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_monkey.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_monkey.bundle/Contents/MacOS/output_monkey | ||
| _spplugins/mac64/output_monkey.bundle/Contents/Resources/en.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_mpeg.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_mpeg.bundle/Contents/MacOS/output_mpeg | ||
| _spplugins/mac64/output_mpeg.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_monkey.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_ogg.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_ogg.bundle/Contents/MacOS/output_ogg | ||
| _spplugins/mac64/output_ogg.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_ogg.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_raw.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_raw.bundle/Contents/MacOS/output_raw | ||
| _spplugins/mac64/output_raw.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_raw.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_sndfile.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_sndfile.bundle/Contents/MacOS/output_sndfile | ||
| _spplugins/mac64/output_sndfile.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_sndfile.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_text.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_text.bundle/Contents/MacOS/output_text | ||
| _spplugins/mac64/output_text.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_text.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/mac64/output_wav.bundle/Contents/Info.plist | ||
| _spplugins/mac64/output_wav.bundle/Contents/MacOS/output_wav | ||
| _spplugins/mac64/output_wav.bundle/Contents/Resources/English.lproj/InfoPlist.strings | ||
| _spplugins/mac64/output_wav.bundle/Contents/_CodeSignature/CodeResources | ||
| _spplugins/win32/asio.dll | ||
@@ -161,2 +177,90 @@ _spplugins/win32/input_aiff.dll | ||
| docs/spplugin.rst | ||
| docs/_build/html/apidoc.html | ||
| docs/_build/html/examples.html | ||
| docs/_build/html/genindex.html | ||
| docs/_build/html/index.html | ||
| docs/_build/html/main.html | ||
| docs/_build/html/modules.html | ||
| docs/_build/html/objects.inv | ||
| docs/_build/html/py-modindex.html | ||
| docs/_build/html/search.html | ||
| docs/_build/html/searchindex.js | ||
| docs/_build/html/spaudio.html | ||
| docs/_build/html/spplugin.html | ||
| docs/_build/html/_downloads/044ea161792e1cc4cbf04e2aa7650da4/rectowav2.py | ||
| docs/_build/html/_downloads/067ace04590502ffae4bb4844cf7b856/writetobyplugin.py | ||
| docs/_build/html/_downloads/08fdd0598b7cf04d66faee07114b7c76/convbyplugin.py | ||
| docs/_build/html/_downloads/25d2dc866a1903eaa84c940c7e840dfe/readrawndarray.py | ||
| docs/_build/html/_downloads/3529e53422fe0784f3a94a78594466c0/playrawbyplugin.py | ||
| docs/_build/html/_downloads/3ffaae8801e6ff32bb93f5f872a25d2d/iotest.py | ||
| docs/_build/html/_downloads/45114539688415088cd8bd1d4a3dd712/readndarray.py | ||
| docs/_build/html/_downloads/6f1172f273665d5607772a44c1813af9/blockread.py | ||
| docs/_build/html/_downloads/739ccd7ece02a7998f1512cd4b341699/audiorwexample.py | ||
| docs/_build/html/_downloads/7709d7871e2f76923698dc353960927c/playfromwav2.py | ||
| docs/_build/html/_downloads/7bf363b32f15508f15ed4ba2d45b83c7/audiowriteexample.py | ||
| docs/_build/html/_downloads/7db8036ac445b1be3541c7bf943b8858/iotestwith.py | ||
| docs/_build/html/_downloads/7f47639842e47eca38c06c28cd21a002/readndarray2.py | ||
| docs/_build/html/_downloads/89feb1c25d97b309f5904ee910fb05f7/readplot.py | ||
| docs/_build/html/_downloads/973afae3494047e3b673ba61a7ff910b/plotfilebyplugin.py | ||
| docs/_build/html/_downloads/9ed0de75b13870aab8ec450abbcaa1e1/playfilebyplugin.py | ||
| docs/_build/html/_downloads/a29fc8f71dc17ebb336646586e3ede8f/readplotraw.py | ||
| docs/_build/html/_downloads/ac30e171bae6710060963a6e627d8a4b/writefrombyplugin.py | ||
| docs/_build/html/_downloads/aec45351ba6c2e177d08888d7b1827e6/blockwrite.py | ||
| docs/_build/html/_downloads/af185505cff65f495a49f5e4b48042f0/rectowav.py | ||
| docs/_build/html/_downloads/b645f96d3ffb11122b253982f96b0b80/audioreadexample.py | ||
| docs/_build/html/_downloads/baa59b0a7d8ece985bf864720e0d3b8c/playfromwavcb.py | ||
| docs/_build/html/_downloads/d1d9d5a752cbbb3813c0f28cebff0092/playfromwavcb2.py | ||
| docs/_build/html/_downloads/e0f82c7573c33d1ac3e67b745d2aa474/playfromwav.py | ||
| docs/_build/html/_downloads/f689dba134d500598fc15f50bcce2219/rwframesexample.py | ||
| docs/_build/html/_modules/index.html | ||
| docs/_build/html/_modules/spaudio.html | ||
| docs/_build/html/_modules/spplugin.html | ||
| docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js | ||
| docs/_build/html/_static/basic.css | ||
| docs/_build/html/_static/doctools.js | ||
| docs/_build/html/_static/documentation_options.js | ||
| docs/_build/html/_static/file.png | ||
| docs/_build/html/_static/jquery-3.6.0.js | ||
| docs/_build/html/_static/jquery.js | ||
| docs/_build/html/_static/language_data.js | ||
| docs/_build/html/_static/minus.png | ||
| docs/_build/html/_static/plus.png | ||
| docs/_build/html/_static/pygments.css | ||
| docs/_build/html/_static/searchtools.js | ||
| docs/_build/html/_static/underscore-1.13.1.js | ||
| docs/_build/html/_static/underscore.js | ||
| docs/_build/html/_static/css/badge_only.css | ||
| docs/_build/html/_static/css/custom_theme.css | ||
| docs/_build/html/_static/css/theme.css | ||
| docs/_build/html/_static/fonts/fontawesome-webfont.eot | ||
| docs/_build/html/_static/fonts/fontawesome-webfont.svg | ||
| docs/_build/html/_static/fonts/fontawesome-webfont.ttf | ||
| docs/_build/html/_static/fonts/fontawesome-webfont.woff | ||
| docs/_build/html/_static/fonts/fontawesome-webfont.woff2 | ||
| docs/_build/html/_static/fonts/Lato/lato-bold.eot | ||
| docs/_build/html/_static/fonts/Lato/lato-bold.ttf | ||
| docs/_build/html/_static/fonts/Lato/lato-bold.woff | ||
| docs/_build/html/_static/fonts/Lato/lato-bold.woff2 | ||
| docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot | ||
| docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf | ||
| docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff | ||
| docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 | ||
| docs/_build/html/_static/fonts/Lato/lato-italic.eot | ||
| docs/_build/html/_static/fonts/Lato/lato-italic.ttf | ||
| docs/_build/html/_static/fonts/Lato/lato-italic.woff | ||
| docs/_build/html/_static/fonts/Lato/lato-italic.woff2 | ||
| docs/_build/html/_static/fonts/Lato/lato-regular.eot | ||
| docs/_build/html/_static/fonts/Lato/lato-regular.ttf | ||
| docs/_build/html/_static/fonts/Lato/lato-regular.woff | ||
| docs/_build/html/_static/fonts/Lato/lato-regular.woff2 | ||
| docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot | ||
| docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf | ||
| docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff | ||
| docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 | ||
| docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot | ||
| docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf | ||
| docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff | ||
| docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 | ||
| docs/_build/html/_static/js/modernizr.min.js | ||
| docs/_build/html/_static/js/theme.js | ||
| docs/_build/locale/apidoc.pot | ||
@@ -183,5 +287,12 @@ docs/_build/locale/examples.pot | ||
| docs/html/spplugin.html | ||
| docs/html/_downloads/044ea161792e1cc4cbf04e2aa7650da4/rectowav2.py | ||
| docs/html/_downloads/067ace04590502ffae4bb4844cf7b856/writetobyplugin.py | ||
| docs/html/_downloads/08fdd0598b7cf04d66faee07114b7c76/convbyplugin.py | ||
| docs/html/_downloads/2450d8bedc0f06dafae0366e07eb117d/readndarray2.py | ||
| docs/html/_downloads/25d2dc866a1903eaa84c940c7e840dfe/readrawndarray.py | ||
| docs/html/_downloads/2787f76495fe7bafe51280af50f7055e/convbyplugin.py | ||
| docs/html/_downloads/3529e53422fe0784f3a94a78594466c0/playrawbyplugin.py | ||
| docs/html/_downloads/3b2e9ef921d5ad6400014d6f9e3658dd/playfromwav.py | ||
| docs/html/_downloads/3ffaae8801e6ff32bb93f5f872a25d2d/iotest.py | ||
| docs/html/_downloads/45114539688415088cd8bd1d4a3dd712/readndarray.py | ||
| docs/html/_downloads/4e43be20a2a5dddee3bfa13cddbb8858/plotfilebyplugin.py | ||
@@ -191,17 +302,35 @@ docs/html/_downloads/577d4b05734b780e2d1ffc19ae9817bd/rectowav2.py | ||
| docs/html/_downloads/6e64b02651b0109d48aae4b8605011f4/playfromwavcb2.py | ||
| docs/html/_downloads/6f1172f273665d5607772a44c1813af9/blockread.py | ||
| docs/html/_downloads/715219b0bf1fed45311fc983f4fe3ceb/readrawndarray.py | ||
| docs/html/_downloads/739ccd7ece02a7998f1512cd4b341699/audiorwexample.py | ||
| docs/html/_downloads/7446a4f8426aaa70264bd8d39dd62fc8/playrawbyplugin.py | ||
| docs/html/_downloads/7709d7871e2f76923698dc353960927c/playfromwav2.py | ||
| docs/html/_downloads/782ea18bebcd2569ca9595acc6a76f1a/audiowriteexample.py | ||
| docs/html/_downloads/795cc24d29b303df85dcb4e53c392b44/writetobyplugin.py | ||
| docs/html/_downloads/7bf363b32f15508f15ed4ba2d45b83c7/audiowriteexample.py | ||
| docs/html/_downloads/7cbab2428255f0c3e39993c3c3eb198c/readndarray.py | ||
| docs/html/_downloads/7d09ca8aca8d2ea1bbcfbcde20560a24/iotest.py | ||
| docs/html/_downloads/7db8036ac445b1be3541c7bf943b8858/iotestwith.py | ||
| docs/html/_downloads/7f47639842e47eca38c06c28cd21a002/readndarray2.py | ||
| docs/html/_downloads/89feb1c25d97b309f5904ee910fb05f7/readplot.py | ||
| docs/html/_downloads/973afae3494047e3b673ba61a7ff910b/plotfilebyplugin.py | ||
| docs/html/_downloads/9ed0de75b13870aab8ec450abbcaa1e1/playfilebyplugin.py | ||
| docs/html/_downloads/a1de329231e687d9c9d9b5bd83d1210d/blockwrite.py | ||
| docs/html/_downloads/a29fc8f71dc17ebb336646586e3ede8f/readplotraw.py | ||
| docs/html/_downloads/a3a5cfeef1c553d0ee4a8deb3af67aa4/rwframesexample.py | ||
| docs/html/_downloads/ac30e171bae6710060963a6e627d8a4b/writefrombyplugin.py | ||
| docs/html/_downloads/ac56e3248ac62c89617fb5736aca397c/iotestwith.py | ||
| docs/html/_downloads/aec45351ba6c2e177d08888d7b1827e6/blockwrite.py | ||
| docs/html/_downloads/af185505cff65f495a49f5e4b48042f0/rectowav.py | ||
| docs/html/_downloads/b645f96d3ffb11122b253982f96b0b80/audioreadexample.py | ||
| docs/html/_downloads/baa59b0a7d8ece985bf864720e0d3b8c/playfromwavcb.py | ||
| docs/html/_downloads/bc59d40f4a30574cc80d229832fe5044/readplot.py | ||
| docs/html/_downloads/cdff26d2211e62e59ddce98238e25d7b/audiorwexample.py | ||
| docs/html/_downloads/d1d9d5a752cbbb3813c0f28cebff0092/playfromwavcb2.py | ||
| docs/html/_downloads/d46a70a7998d64493479af678a95ac81/playfilebyplugin.py | ||
| docs/html/_downloads/d9b3096a069446bfee28b8b2ef1b5a37/rectowav.py | ||
| docs/html/_downloads/e0f82c7573c33d1ac3e67b745d2aa474/playfromwav.py | ||
| docs/html/_downloads/e2c84785184759e884824c09f7e4e309/readplotraw.py | ||
| docs/html/_downloads/ebb03e2f40d7bb5fcbf50fcb13f33c77/blockread.py | ||
| docs/html/_downloads/f689dba134d500598fc15f50bcce2219/rwframesexample.py | ||
| docs/html/_downloads/f7a412e10683e3f1ac170289e46102a8/playfromwavcb.py | ||
@@ -220,2 +349,3 @@ docs/html/_downloads/fd034489ebf5360a01a6757d62b41104/audioreadexample.py | ||
| docs/html/_sources/spplugin.rst.txt | ||
| docs/html/_static/_sphinx_javascript_frameworks_compat.js | ||
| docs/html/_static/ajax-loader.gif | ||
@@ -232,2 +362,4 @@ docs/html/_static/basic.css | ||
| docs/html/_static/jquery-3.2.1.js | ||
| docs/html/_static/jquery-3.4.1.js | ||
| docs/html/_static/jquery-3.6.0.js | ||
| docs/html/_static/jquery.js | ||
@@ -239,2 +371,3 @@ docs/html/_static/language_data.js | ||
| docs/html/_static/searchtools.js | ||
| docs/html/_static/underscore-1.13.1.js | ||
| docs/html/_static/underscore-1.3.1.js | ||
@@ -248,2 +381,19 @@ docs/html/_static/underscore.js | ||
| docs/html/_static/css/theme.css | ||
| docs/html/_static/css/fonts/Roboto-Slab-Bold.woff | ||
| docs/html/_static/css/fonts/Roboto-Slab-Bold.woff2 | ||
| docs/html/_static/css/fonts/Roboto-Slab-Regular.woff | ||
| docs/html/_static/css/fonts/Roboto-Slab-Regular.woff2 | ||
| docs/html/_static/css/fonts/fontawesome-webfont.eot | ||
| docs/html/_static/css/fonts/fontawesome-webfont.svg | ||
| docs/html/_static/css/fonts/fontawesome-webfont.ttf | ||
| docs/html/_static/css/fonts/fontawesome-webfont.woff | ||
| docs/html/_static/css/fonts/fontawesome-webfont.woff2 | ||
| docs/html/_static/css/fonts/lato-bold-italic.woff | ||
| docs/html/_static/css/fonts/lato-bold-italic.woff2 | ||
| docs/html/_static/css/fonts/lato-bold.woff | ||
| docs/html/_static/css/fonts/lato-bold.woff2 | ||
| docs/html/_static/css/fonts/lato-normal-italic.woff | ||
| docs/html/_static/css/fonts/lato-normal-italic.woff2 | ||
| docs/html/_static/css/fonts/lato-normal.woff | ||
| docs/html/_static/css/fonts/lato-normal.woff2 | ||
| docs/html/_static/fonts/fontawesome-webfont.eot | ||
@@ -278,2 +428,5 @@ docs/html/_static/fonts/fontawesome-webfont.svg | ||
| docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 | ||
| docs/html/_static/js/badge_only.js | ||
| docs/html/_static/js/html5shiv-printshiv.min.js | ||
| docs/html/_static/js/html5shiv.min.js | ||
| docs/html/_static/js/modernizr.min.js | ||
@@ -293,5 +446,12 @@ docs/html/_static/js/theme.js | ||
| docs/ja/html/spplugin.html | ||
| docs/ja/html/_downloads/044ea161792e1cc4cbf04e2aa7650da4/rectowav2.py | ||
| docs/ja/html/_downloads/067ace04590502ffae4bb4844cf7b856/writetobyplugin.py | ||
| docs/ja/html/_downloads/08fdd0598b7cf04d66faee07114b7c76/convbyplugin.py | ||
| docs/ja/html/_downloads/2450d8bedc0f06dafae0366e07eb117d/readndarray2.py | ||
| docs/ja/html/_downloads/25d2dc866a1903eaa84c940c7e840dfe/readrawndarray.py | ||
| docs/ja/html/_downloads/2787f76495fe7bafe51280af50f7055e/convbyplugin.py | ||
| docs/ja/html/_downloads/3529e53422fe0784f3a94a78594466c0/playrawbyplugin.py | ||
| docs/ja/html/_downloads/3b2e9ef921d5ad6400014d6f9e3658dd/playfromwav.py | ||
| docs/ja/html/_downloads/3ffaae8801e6ff32bb93f5f872a25d2d/iotest.py | ||
| docs/ja/html/_downloads/45114539688415088cd8bd1d4a3dd712/readndarray.py | ||
| docs/ja/html/_downloads/4e43be20a2a5dddee3bfa13cddbb8858/plotfilebyplugin.py | ||
@@ -301,17 +461,35 @@ docs/ja/html/_downloads/577d4b05734b780e2d1ffc19ae9817bd/rectowav2.py | ||
| docs/ja/html/_downloads/6e64b02651b0109d48aae4b8605011f4/playfromwavcb2.py | ||
| docs/ja/html/_downloads/6f1172f273665d5607772a44c1813af9/blockread.py | ||
| docs/ja/html/_downloads/715219b0bf1fed45311fc983f4fe3ceb/readrawndarray.py | ||
| docs/ja/html/_downloads/739ccd7ece02a7998f1512cd4b341699/audiorwexample.py | ||
| docs/ja/html/_downloads/7446a4f8426aaa70264bd8d39dd62fc8/playrawbyplugin.py | ||
| docs/ja/html/_downloads/7709d7871e2f76923698dc353960927c/playfromwav2.py | ||
| docs/ja/html/_downloads/782ea18bebcd2569ca9595acc6a76f1a/audiowriteexample.py | ||
| docs/ja/html/_downloads/795cc24d29b303df85dcb4e53c392b44/writetobyplugin.py | ||
| docs/ja/html/_downloads/7bf363b32f15508f15ed4ba2d45b83c7/audiowriteexample.py | ||
| docs/ja/html/_downloads/7cbab2428255f0c3e39993c3c3eb198c/readndarray.py | ||
| docs/ja/html/_downloads/7d09ca8aca8d2ea1bbcfbcde20560a24/iotest.py | ||
| docs/ja/html/_downloads/7db8036ac445b1be3541c7bf943b8858/iotestwith.py | ||
| docs/ja/html/_downloads/7f47639842e47eca38c06c28cd21a002/readndarray2.py | ||
| docs/ja/html/_downloads/89feb1c25d97b309f5904ee910fb05f7/readplot.py | ||
| docs/ja/html/_downloads/973afae3494047e3b673ba61a7ff910b/plotfilebyplugin.py | ||
| docs/ja/html/_downloads/9ed0de75b13870aab8ec450abbcaa1e1/playfilebyplugin.py | ||
| docs/ja/html/_downloads/a1de329231e687d9c9d9b5bd83d1210d/blockwrite.py | ||
| docs/ja/html/_downloads/a29fc8f71dc17ebb336646586e3ede8f/readplotraw.py | ||
| docs/ja/html/_downloads/a3a5cfeef1c553d0ee4a8deb3af67aa4/rwframesexample.py | ||
| docs/ja/html/_downloads/ac30e171bae6710060963a6e627d8a4b/writefrombyplugin.py | ||
| docs/ja/html/_downloads/ac56e3248ac62c89617fb5736aca397c/iotestwith.py | ||
| docs/ja/html/_downloads/aec45351ba6c2e177d08888d7b1827e6/blockwrite.py | ||
| docs/ja/html/_downloads/af185505cff65f495a49f5e4b48042f0/rectowav.py | ||
| docs/ja/html/_downloads/b645f96d3ffb11122b253982f96b0b80/audioreadexample.py | ||
| docs/ja/html/_downloads/baa59b0a7d8ece985bf864720e0d3b8c/playfromwavcb.py | ||
| docs/ja/html/_downloads/bc59d40f4a30574cc80d229832fe5044/readplot.py | ||
| docs/ja/html/_downloads/cdff26d2211e62e59ddce98238e25d7b/audiorwexample.py | ||
| docs/ja/html/_downloads/d1d9d5a752cbbb3813c0f28cebff0092/playfromwavcb2.py | ||
| docs/ja/html/_downloads/d46a70a7998d64493479af678a95ac81/playfilebyplugin.py | ||
| docs/ja/html/_downloads/d9b3096a069446bfee28b8b2ef1b5a37/rectowav.py | ||
| docs/ja/html/_downloads/e0f82c7573c33d1ac3e67b745d2aa474/playfromwav.py | ||
| docs/ja/html/_downloads/e2c84785184759e884824c09f7e4e309/readplotraw.py | ||
| docs/ja/html/_downloads/ebb03e2f40d7bb5fcbf50fcb13f33c77/blockread.py | ||
| docs/ja/html/_downloads/f689dba134d500598fc15f50bcce2219/rwframesexample.py | ||
| docs/ja/html/_downloads/f7a412e10683e3f1ac170289e46102a8/playfromwavcb.py | ||
@@ -330,2 +508,3 @@ docs/ja/html/_downloads/fd034489ebf5360a01a6757d62b41104/audioreadexample.py | ||
| docs/ja/html/_sources/spplugin.rst.txt | ||
| docs/ja/html/_static/_sphinx_javascript_frameworks_compat.js | ||
| docs/ja/html/_static/ajax-loader.gif | ||
@@ -342,2 +521,4 @@ docs/ja/html/_static/basic.css | ||
| docs/ja/html/_static/jquery-3.2.1.js | ||
| docs/ja/html/_static/jquery-3.4.1.js | ||
| docs/ja/html/_static/jquery-3.6.0.js | ||
| docs/ja/html/_static/jquery.js | ||
@@ -350,2 +531,3 @@ docs/ja/html/_static/language_data.js | ||
| docs/ja/html/_static/translations.js | ||
| docs/ja/html/_static/underscore-1.13.1.js | ||
| docs/ja/html/_static/underscore-1.3.1.js | ||
@@ -359,2 +541,19 @@ docs/ja/html/_static/underscore.js | ||
| docs/ja/html/_static/css/theme.css | ||
| docs/ja/html/_static/css/fonts/Roboto-Slab-Bold.woff | ||
| docs/ja/html/_static/css/fonts/Roboto-Slab-Bold.woff2 | ||
| docs/ja/html/_static/css/fonts/Roboto-Slab-Regular.woff | ||
| docs/ja/html/_static/css/fonts/Roboto-Slab-Regular.woff2 | ||
| docs/ja/html/_static/css/fonts/fontawesome-webfont.eot | ||
| docs/ja/html/_static/css/fonts/fontawesome-webfont.svg | ||
| docs/ja/html/_static/css/fonts/fontawesome-webfont.ttf | ||
| docs/ja/html/_static/css/fonts/fontawesome-webfont.woff | ||
| docs/ja/html/_static/css/fonts/fontawesome-webfont.woff2 | ||
| docs/ja/html/_static/css/fonts/lato-bold-italic.woff | ||
| docs/ja/html/_static/css/fonts/lato-bold-italic.woff2 | ||
| docs/ja/html/_static/css/fonts/lato-bold.woff | ||
| docs/ja/html/_static/css/fonts/lato-bold.woff2 | ||
| docs/ja/html/_static/css/fonts/lato-normal-italic.woff | ||
| docs/ja/html/_static/css/fonts/lato-normal-italic.woff2 | ||
| docs/ja/html/_static/css/fonts/lato-normal.woff | ||
| docs/ja/html/_static/css/fonts/lato-normal.woff2 | ||
| docs/ja/html/_static/fonts/fontawesome-webfont.eot | ||
@@ -389,2 +588,5 @@ docs/ja/html/_static/fonts/fontawesome-webfont.svg | ||
| docs/ja/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 | ||
| docs/ja/html/_static/js/badge_only.js | ||
| docs/ja/html/_static/js/html5shiv-printshiv.min.js | ||
| docs/ja/html/_static/js/html5shiv.min.js | ||
| docs/ja/html/_static/js/modernizr.min.js | ||
@@ -391,0 +593,0 @@ docs/ja/html/_static/js/theme.js |
+1
-1
| # -*- coding: utf-8 -*- | ||
| """ | ||
| A python module for audio I/O based on `spAudio <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_. | ||
| A python module for audio I/O based on `spAudio <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_. | ||
@@ -5,0 +5,0 @@ Example: |
+9
-9
| # -*- coding: utf-8 -*- | ||
| """ | ||
| A python module for plugin-based audio file I/O based on `spPlugin | ||
| <http://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| <https://www-ie.meijo-u.ac.jp/labs/rj001/spLibs/index.html>`_ | ||
| which supports several sound formats including WAV, AIFF, MP3, | ||
@@ -1333,4 +1333,4 @@ Ogg Vorbis, FLAC, ALAC, raw, and more. | ||
| datatype (str, optional): The format of the output data. ``'double'`` | ||
| case makes :func:`~spplugin.SpPlugin.readframes` method used and | ||
| ``'raw'`` case makes :func:`~spplugin.SpPlugin.readrawframes` | ||
| case makes :func:`~spplugin.SpFilePlugin.readframes` method used and | ||
| ``'raw'`` case makes :func:`~spplugin.SpFilePlugin.readrawframes` | ||
| method used internally. Note that ``'raw'`` case ignores | ||
@@ -1346,5 +1346,5 @@ `weight` argument. | ||
| getparamstuple (bool, optional): ``True`` makes | ||
| :func:`~spplugin.SpPlugin.getparamstuple` used internally. | ||
| :func:`~spplugin.SpFilePlugin.getparamstuple` used internally. | ||
| decodebytes (bool, optional): ``True`` decodes bytes objects into | ||
| string objects in calling :func:`~spplugin.SpPlugin.getparamstuple` | ||
| string objects in calling :func:`~spplugin.SpFilePlugin.getparamstuple` | ||
| method. This argument is valid only in ``getparamstuple=True`` case. | ||
@@ -1375,6 +1375,6 @@ pluginname (str, optional): The name of the plugin used when | ||
| If ``getparamstuple=False`` , A dict object same as that | ||
| obtained by :func:`~spplugin.SpPlugin.getparams` method | ||
| obtained by :func:`~spplugin.SpFilePlugin.getparams` method | ||
| will be returned. | ||
| If ``getparamstuple=True`` , A namedtuple object same as | ||
| that obtained by :func:`~spplugin.SpPlugin.getparamstuple` | ||
| that obtained by :func:`~spplugin.SpFilePlugin.getparamstuple` | ||
| method will be returned. | ||
@@ -1453,4 +1453,4 @@ | ||
| datatype (str, optional): The format of the input data. ``'double'`` | ||
| case makes :func:`~spplugin.SpPlugin.write` method used and | ||
| ``'raw'`` case makes :func:`~spplugin.SpPlugin.writeraw` | ||
| case makes :func:`~spplugin.SpFilePlugin.write` method used and | ||
| ``'raw'`` case makes :func:`~spplugin.SpFilePlugin.writeraw` | ||
| method used internally. Note that ``'raw'`` case ignores | ||
@@ -1457,0 +1457,0 @@ `weight` argument. In some array types, this parameter |
Sorry, the diff of this file is not supported yet
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| <plist version="1.0"> | ||
| <dict> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18B75</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
| <string>English</string> | ||
| <key>CFBundleExecutable</key> | ||
| <string>output_lame</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
| <string>6.0</string> | ||
| <key>CFBundlePackageType</key> | ||
| <string>BNDL</string> | ||
| <key>CFBundleShortVersionString</key> | ||
| <string>1.0</string> | ||
| <key>CFBundleSignature</key> | ||
| <string>????</string> | ||
| <key>CFBundleSupportedPlatforms</key> | ||
| <array> | ||
| <string>MacOSX</string> | ||
| </array> | ||
| <key>CFBundleVersion</key> | ||
| <string>1.0</string> | ||
| <key>CSResourcesFileMapped</key> | ||
| <true/> | ||
| <key>DTCompiler</key> | ||
| <string>com.apple.compilers.llvm.clang.1_0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10B61</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18B71</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <key>DTXcode</key> | ||
| <string>1010</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10B61</string> | ||
| </dict> | ||
| </plist> |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| <plist version="1.0"> | ||
| <dict> | ||
| <key>BuildMachineOSBuild</key> | ||
| <string>18B75</string> | ||
| <key>CFBundleDevelopmentRegion</key> | ||
| <string>English</string> | ||
| <key>CFBundleExecutable</key> | ||
| <string>output_mpeg</string> | ||
| <key>CFBundleIdentifier</key> | ||
| <string>com.apple.carbonbundletemplate</string> | ||
| <key>CFBundleInfoDictionaryVersion</key> | ||
| <string>6.0</string> | ||
| <key>CFBundlePackageType</key> | ||
| <string>BNDL</string> | ||
| <key>CFBundleShortVersionString</key> | ||
| <string>1.0</string> | ||
| <key>CFBundleSignature</key> | ||
| <string>????</string> | ||
| <key>CFBundleSupportedPlatforms</key> | ||
| <array> | ||
| <string>MacOSX</string> | ||
| </array> | ||
| <key>CFBundleVersion</key> | ||
| <string>1.0</string> | ||
| <key>CSResourcesFileMapped</key> | ||
| <true/> | ||
| <key>DTCompiler</key> | ||
| <string>com.apple.compilers.llvm.clang.1_0</string> | ||
| <key>DTPlatformBuild</key> | ||
| <string>10B61</string> | ||
| <key>DTPlatformVersion</key> | ||
| <string>GM</string> | ||
| <key>DTSDKBuild</key> | ||
| <string>18B71</string> | ||
| <key>DTSDKName</key> | ||
| <string>macosx10.14</string> | ||
| <key>DTXcode</key> | ||
| <string>1010</string> | ||
| <key>DTXcodeBuild</key> | ||
| <string>10B61</string> | ||
| </dict> | ||
| </plist> |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
64381710
68.64%627
47.53%83341
176.4%