A managed ctypes wrapper around the BASS audio library
Project description
PyBASS wrapper
LICENSING
The PyBass PYTHON wrapper is licensed under the MIT license. Meanwhile the BASS C 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
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
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
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)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
PyBASS3-0.2.0.tar.gz
(213.5 kB
view details)
Built Distribution
PyBASS3-0.2.0-py3-none-any.whl
(218.8 kB
view details)
File details
Details for the file PyBASS3-0.2.0.tar.gz
.
File metadata
- Download URL: PyBASS3-0.2.0.tar.gz
- Upload date:
- Size: 213.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee2438480f1413cd04df10f083cae7260cb5e5ac0aa5a6b24ebdc99dafe1e894 |
|
MD5 | 26343b633331327f1cde1078ab7a14b8 |
|
BLAKE2b-256 | f064846abd06e17ba90929db62143139ed9e904393b73a83619687fcb4bd23f0 |
File details
Details for the file PyBASS3-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: PyBASS3-0.2.0-py3-none-any.whl
- Upload date:
- Size: 218.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2515f5390dc38591361448d730455d9906b4c89c912f214077ff57d4c1e75948 |
|
MD5 | 510eab7abc86bd550cb19ee7cd80ddb4 |
|
BLAKE2b-256 | 68683e454bec43a57d9f589456ca28c89c6be133f09281010090b3d36c310c74 |