Metadata-Version: 2.1 Name: PyBASS3 Version: 0.0.2 Summary: A managed ctypes wrapper around the BASS audio library Home-page: https://github.com/devdave/pybass3 Author: DevDave (David Ward) Author-email: devdave@ominian.net License: UNKNOWN Platform: UNKNOWN Classifier: Programming Language :: Python :: 3 Classifier: Operating System :: Microsoft :: Windows Classifier: Development Status :: 3 - Alpha Classifier: Intended Audience :: Developers Classifier: License :: Free for non-commercial use Classifier: Natural Language :: English Classifier: Topic :: Multimedia :: Sound/Audio Requires-Python: >= 3.6 Description-Content-Type: text/markdown # PyBASS wrapper LICENSING --------- The PyBass PYTHON wrapper is licensed under the MIT license BUT the BASS Library is dual licensed as free to use for non-commercial development but requires a license for paid/commercial work. Please see http://un4seen.com BASS library documentation --------------------------- http://www.un4seen.com/doc/ Purpose and notes ------------------ A simple wrapper around un4seen.com's BASS audio library to enable playing various format media files from python. Stock python usage ------------------ ```python from argparse import ArgumentParser from pybass3 import Song import time def main(song_file): song = Song(song_file) song.play() len_bytes = song.duration_bytes position_bytes = song.position_bytes print("Playing: ", song_file) print(f"Bytes: {len_bytes=}") while position_bytes < len_bytes: print(song.position, song.duration) time.sleep(1) if __name__ == "__main__": parser = ArgumentParser() parser.add_argument("song_file") args = parser.parse_args() main(args.song_file) ``` # Windows playlist example ```python import pathlib import time import argparse import msvcrt from pybass3 import Song from pybass3.playlist import Playlist def kbfunc(): x = msvcrt.kbhit() if x: ret = ord(msvcrt.getch()) else: ret = 0 return ret def main(dir_path): dir_path = pathlib.Path(dir_path) playlist = Playlist() playlist.add_directory(dir_path, recurse=True) playlist.play() play_indefinitely = True while play_indefinitely: try: print(playlist.current.file_path.name, playlist.current_song.position, playlist.current_song.duration) playlist.tick() key = kbfunc() if key: if key == 122: # Z print("Previous") playlist.previous() elif key == 98: # B print("Next") playlist.next() elif key == 120: # X print("Play") playlist.play() elif key == 99: # c print("Pause") playlist.pause() elif key == 118: # v print("Stop") playlist.stop() else: time.sleep(1) except KeyboardInterrupt: playlist.free() play_indefinitely = False if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("song_dir") args = parser.parse_args() main(args.song_dir) ```