Metadata-Version: 2.1
Name: PyBASS3
Version: 0.0.3
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
Description: # PyBASS wrapper
        
        [![Downloads](https://pepy.tech/badge/pybass3)](https://pepy.tech/project/pybass3)
        
        
        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.position, playlist.current.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)
        ```
        
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
