commit 3a3ccb13c86c972a1eac0476807b2ced491192e6 Author: jakob Date: Tue Aug 20 12:11:41 2019 +0200 Init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d8dd753 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.wav diff --git a/campatmo.py b/campatmo.py new file mode 100755 index 0000000..6464d2a --- /dev/null +++ b/campatmo.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +import time +import sys +import random +from glob import glob +from pygame import mixer + + +tracks_per_type = 2 +single_track_types = ["lines"] + + +def load_files(): + files = glob("samples/*.wav") + type_names = glob("samples/*/") + type_files = {c.split("/")[1]: glob(c + "/*.wav") for c in type_names} + return type_files + + +def main(): + type_files = load_files() + mixer.init(frequency=22050 * 2) + types = {} + i = 0 + mixer.set_num_channels( + sum( + [ + 1 if name in single_track_types else tracks_per_type + for name in type_files + ] + ) + ) + print(f"{mixer.get_num_channels()} channels set") + for name in type_files: + types[name] = [] + for k in range(1 if name in single_track_types else tracks_per_type): + types[name].append(mixer.Channel(i)) + i += 1 + sounds = {} + for name, files in type_files.items(): + sounds[name] = [] + for f in files: + sounds[name].append(mixer.Sound(f)) + random.shuffle(sounds[name]) + try: + while True: + for name, type_ in types.items(): + if len(sounds[name]) == 0: + continue + try: + next_sound_index = max( + [sounds[name].index(tt.get_queue() or tt.get_sound()) for tt in type_] + ) + except ValueError: + next_sound_index = 0 + if next_sound_index >= len(sounds[name]): + random.shuffle(sounds[name]) + next_sound_index = 0 + for c in type_: + if c.get_queue() is not None and len(sounds[name]) > 1: + continue + c.queue(sounds[name][next_sound_index]) + if c.get_queue() is None and len(sounds[name]) > 1: + c.queue(sounds[name][next_sound_index + 1]) + time.sleep(1) + except KeyboardInterrupt: + print("exit") + sys.exit(0) + + +if __name__ == "__main__": + main() diff --git a/samples/background/.exists b/samples/background/.exists new file mode 100644 index 0000000..e69de29 diff --git a/samples/background/1.mp3 b/samples/background/1.mp3 new file mode 100644 index 0000000..004f3d1 Binary files /dev/null and b/samples/background/1.mp3 differ diff --git a/samples/background/1.wav b/samples/background/1.wav new file mode 100644 index 0000000..b3d489c Binary files /dev/null and b/samples/background/1.wav differ diff --git a/samples/background/2.mp3 b/samples/background/2.mp3 new file mode 100644 index 0000000..a781375 Binary files /dev/null and b/samples/background/2.mp3 differ diff --git a/samples/background/2.wav b/samples/background/2.wav new file mode 100644 index 0000000..99af506 Binary files /dev/null and b/samples/background/2.wav differ diff --git a/samples/buzzwords/.exists b/samples/buzzwords/.exists new file mode 100644 index 0000000..e69de29 diff --git a/samples/laughter/.exists b/samples/laughter/.exists new file mode 100644 index 0000000..e69de29 diff --git a/samples/lines/.exists b/samples/lines/.exists new file mode 100644 index 0000000..e69de29 diff --git a/samples/other/.exists b/samples/other/.exists new file mode 100644 index 0000000..e69de29