From 0e0ab5431f85baa8f537be293ef36f86d55ef99e Mon Sep 17 00:00:00 2001 From: Mikey Sklar Date: Thu, 14 Aug 2025 12:32:14 -0700 Subject: [PATCH 1/5] headphone vs speaker usage Short examples showing how to set volume and play WAV files for both headphone 3.5mm jack and mini speaker. --- examples/fruitjam_headphone.py | 26 ++++++++++++++++++++++++++ examples/fruitjam_speaker.py | 26 ++++++++++++++++++++++++++ examples/wav/beep.wav | Bin 0 -> 9362 bytes examples/wav/dip.wav | Bin 0 -> 26570 bytes examples/wav/rise.wav | Bin 0 -> 26358 bytes 5 files changed, 52 insertions(+) create mode 100644 examples/fruitjam_headphone.py create mode 100644 examples/fruitjam_speaker.py create mode 100755 examples/wav/beep.wav create mode 100755 examples/wav/dip.wav create mode 100755 examples/wav/rise.wav diff --git a/examples/fruitjam_headphone.py b/examples/fruitjam_headphone.py new file mode 100644 index 0000000..b0c7ed0 --- /dev/null +++ b/examples/fruitjam_headphone.py @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: Copyright (c) 2025 Tim Cocks for Adafruit Industries +# +# SPDX-License-Identifier: MIT +import time +import adafruit_fruitjam + +pobj = adafruit_fruitjam.peripherals.Peripherals() +dac = pobj.dac # use Fruit Jam's codec + +# Route once for headphones +dac.headphone_output = True +dac.speaker_output = False + +FILES = ["beep.wav", "dip.wav", "rise.wav"] +VOLUMES_DB = [12, 6, 0, -6, -12] + +while True: + print("\n=== Headphones Test ===") + for vol in VOLUMES_DB: + dac.dac_volume = vol + print(f"Headphones volume: {vol} dB") + for f in FILES: + print(f" -> {f}") + pobj.play_file(f) + time.sleep(0.2) + time.sleep(1.0) diff --git a/examples/fruitjam_speaker.py b/examples/fruitjam_speaker.py new file mode 100644 index 0000000..fa1ef3e --- /dev/null +++ b/examples/fruitjam_speaker.py @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: Copyright (c) 2025 Tim Cocks for Adafruit Industries +# +# SPDX-License-Identifier: MIT +import time +import adafruit_fruitjam + +pobj = adafruit_fruitjam.peripherals.Peripherals() +dac = pobj.dac # use Fruit Jam's codec + +# Route once for speaker +dac.headphone_output = False +dac.speaker_output = True + +FILES = ["beep.wav", "dip.wav", "rise.wav"] +VOLUMES_DB = [12, 6, 0, -6, -12] + +while True: + print("\n=== Speaker Test ===") + for vol in VOLUMES_DB: + dac.dac_volume = vol + print(f"Speaker volume: {vol} dB") + for f in FILES: + print(f" -> {f}") + pobj.play_file(f) + time.sleep(0.2) + time.sleep(1.0) diff --git a/examples/wav/beep.wav b/examples/wav/beep.wav new file mode 100755 index 0000000000000000000000000000000000000000..8a6eea63a9377b867665eeaeb131d622cb582de4 GIT binary patch literal 9362 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 G^#1^AWkA9J literal 0 HcmV?d00001 diff --git a/examples/wav/dip.wav b/examples/wav/dip.wav new file mode 100755 index 0000000000000000000000000000000000000000..000d849050d2c295259660b5fb02d4b383f773c9 GIT binary patch literal 26570 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 QPyhY@)3rYx_o?>(0gN&~t^fc4 literal 0 HcmV?d00001 diff --git a/examples/wav/rise.wav b/examples/wav/rise.wav new file mode 100755 index 0000000000000000000000000000000000000000..f20a35103f554e7ed25638f8d7f356c0280a15bc GIT binary patch literal 26358 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 L{on5!{MY{g*x|Gv literal 0 HcmV?d00001 From e95edb3e3d9688066ff6da4f1e44de94fa4d5c72 Mon Sep 17 00:00:00 2001 From: Mikey Sklar Date: Thu, 14 Aug 2025 12:55:17 -0700 Subject: [PATCH 2/5] license files for wavs --- examples/wav/beep.wav.license | 2 ++ examples/wav/dip.wav.license | 2 ++ examples/wav/rise.wav.license | 2 ++ 3 files changed, 6 insertions(+) create mode 100644 examples/wav/beep.wav.license create mode 100644 examples/wav/dip.wav.license create mode 100644 examples/wav/rise.wav.license diff --git a/examples/wav/beep.wav.license b/examples/wav/beep.wav.license new file mode 100644 index 0000000..53df827 --- /dev/null +++ b/examples/wav/beep.wav.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2025 Adafruit +SPDX-License-Identifier: CC-BY-4.0 diff --git a/examples/wav/dip.wav.license b/examples/wav/dip.wav.license new file mode 100644 index 0000000..53df827 --- /dev/null +++ b/examples/wav/dip.wav.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2025 Adafruit +SPDX-License-Identifier: CC-BY-4.0 diff --git a/examples/wav/rise.wav.license b/examples/wav/rise.wav.license new file mode 100644 index 0000000..53df827 --- /dev/null +++ b/examples/wav/rise.wav.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2025 Adafruit +SPDX-License-Identifier: CC-BY-4.0 From 456851aabfb1397c94b7fc8623e2bf6b29be9073 Mon Sep 17 00:00:00 2001 From: Mikey Sklar Date: Thu, 14 Aug 2025 13:04:19 -0700 Subject: [PATCH 3/5] wav file reuse --- .reuse/dep5 | 7 +++++++ examples/wav/beep.wav.license | 2 -- examples/wav/dip.wav.license | 2 -- examples/wav/rise.wav.license | 2 -- 4 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 .reuse/dep5 delete mode 100644 examples/wav/beep.wav.license delete mode 100644 examples/wav/dip.wav.license delete mode 100644 examples/wav/rise.wav.license diff --git a/.reuse/dep5 b/.reuse/dep5 new file mode 100644 index 0000000..7d9d8c3 --- /dev/null +++ b/.reuse/dep5 @@ -0,0 +1,7 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Adafruit CircuitPython FruitJam +Source: https://github.com/adafruit/Adafruit_CircuitPython_FruitJam + +Files: examples/wav/*.wav +Copyright: 2025 Adafruit +License: CC-BY-4.0 diff --git a/examples/wav/beep.wav.license b/examples/wav/beep.wav.license deleted file mode 100644 index 53df827..0000000 --- a/examples/wav/beep.wav.license +++ /dev/null @@ -1,2 +0,0 @@ -SPDX-FileCopyrightText: 2025 Adafruit -SPDX-License-Identifier: CC-BY-4.0 diff --git a/examples/wav/dip.wav.license b/examples/wav/dip.wav.license deleted file mode 100644 index 53df827..0000000 --- a/examples/wav/dip.wav.license +++ /dev/null @@ -1,2 +0,0 @@ -SPDX-FileCopyrightText: 2025 Adafruit -SPDX-License-Identifier: CC-BY-4.0 diff --git a/examples/wav/rise.wav.license b/examples/wav/rise.wav.license deleted file mode 100644 index 53df827..0000000 --- a/examples/wav/rise.wav.license +++ /dev/null @@ -1,2 +0,0 @@ -SPDX-FileCopyrightText: 2025 Adafruit -SPDX-License-Identifier: CC-BY-4.0 From 09af721cf70a5fe789a84ce8930070580872e2c2 Mon Sep 17 00:00:00 2001 From: Mikey Sklar Date: Thu, 14 Aug 2025 13:06:25 -0700 Subject: [PATCH 4/5] ruff whitespace --- examples/fruitjam_headphone.py | 1 + examples/fruitjam_speaker.py | 1 + 2 files changed, 2 insertions(+) diff --git a/examples/fruitjam_headphone.py b/examples/fruitjam_headphone.py index b0c7ed0..c5d3a94 100644 --- a/examples/fruitjam_headphone.py +++ b/examples/fruitjam_headphone.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: MIT import time + import adafruit_fruitjam pobj = adafruit_fruitjam.peripherals.Peripherals() diff --git a/examples/fruitjam_speaker.py b/examples/fruitjam_speaker.py index fa1ef3e..02e75fa 100644 --- a/examples/fruitjam_speaker.py +++ b/examples/fruitjam_speaker.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: MIT import time + import adafruit_fruitjam pobj = adafruit_fruitjam.peripherals.Peripherals() From b8b1770da545f5f6d29f448f878815ecf8e28995 Mon Sep 17 00:00:00 2001 From: foamyguy Date: Thu, 14 Aug 2025 16:50:14 -0500 Subject: [PATCH 5/5] use .license files --- .reuse/dep5 | 7 ------- examples/wav/beep.wav.license | 3 +++ examples/wav/dip.wav.license | 3 +++ examples/wav/rise.wav.license | 3 +++ 4 files changed, 9 insertions(+), 7 deletions(-) delete mode 100644 .reuse/dep5 create mode 100644 examples/wav/beep.wav.license create mode 100644 examples/wav/dip.wav.license create mode 100644 examples/wav/rise.wav.license diff --git a/.reuse/dep5 b/.reuse/dep5 deleted file mode 100644 index 7d9d8c3..0000000 --- a/.reuse/dep5 +++ /dev/null @@ -1,7 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: Adafruit CircuitPython FruitJam -Source: https://github.com/adafruit/Adafruit_CircuitPython_FruitJam - -Files: examples/wav/*.wav -Copyright: 2025 Adafruit -License: CC-BY-4.0 diff --git a/examples/wav/beep.wav.license b/examples/wav/beep.wav.license new file mode 100644 index 0000000..e840764 --- /dev/null +++ b/examples/wav/beep.wav.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: Copyright (c) 2025 Adafruit Industries +# +# SPDX-License-Identifier: CC-BY-4.0 diff --git a/examples/wav/dip.wav.license b/examples/wav/dip.wav.license new file mode 100644 index 0000000..e840764 --- /dev/null +++ b/examples/wav/dip.wav.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: Copyright (c) 2025 Adafruit Industries +# +# SPDX-License-Identifier: CC-BY-4.0 diff --git a/examples/wav/rise.wav.license b/examples/wav/rise.wav.license new file mode 100644 index 0000000..e840764 --- /dev/null +++ b/examples/wav/rise.wav.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: Copyright (c) 2025 Adafruit Industries +# +# SPDX-License-Identifier: CC-BY-4.0