Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: RPi-Distro/pi-gen
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: kdoren/jambox-pi-gen
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: jambox
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.

Commits on Sep 22, 2020

  1. Copy the full SHA
    49cff38 View commit details
  2. Copy the full SHA
    b82912a View commit details

Commits on Sep 23, 2020

  1. Copy the full SHA
    2d90e87 View commit details

Commits on Sep 25, 2020

  1. remove unneeded stage3 files

    kdoren committed Sep 25, 2020
    Copy the full SHA
    0ee6d2f View commit details
  2. remove unneeded stages 4 & 5

    kdoren committed Sep 25, 2020
    Copy the full SHA
    de7c2e0 View commit details
  3. remove unneeded stage2 files

    kdoren committed Sep 25, 2020
    Copy the full SHA
    8dd8c6c View commit details
  4. export image from stage3

    kdoren committed Sep 25, 2020
    Copy the full SHA
    c82b34b View commit details

Commits on Oct 3, 2020

  1. Copy the full SHA
    73433e1 View commit details

Commits on Oct 9, 2020

  1. Copy the full SHA
    abae9f5 View commit details
  2. Copy the full SHA
    16d8976 View commit details

Commits on Oct 15, 2020

  1. Copy the full SHA
    fc800ca View commit details

Commits on Oct 19, 2020

  1. fix comments

    kdoren committed Oct 19, 2020
    Copy the full SHA
    a8fe352 View commit details
  2. fix comments

    kdoren committed Oct 19, 2020
    Copy the full SHA
    7733f7e View commit details

Commits on Oct 25, 2020

  1. Copy the full SHA
    f32cd42 View commit details

Commits on Nov 22, 2020

  1. Copy the full SHA
    51ffb0f View commit details

Commits on Nov 23, 2020

  1. Copy the full SHA
    6c47f4e View commit details

Commits on Nov 28, 2020

  1. add link to releases

    kdoren committed Nov 28, 2020
    Copy the full SHA
    af7f5b2 View commit details

Commits on Dec 10, 2020

  1. minor formatting changes

    kdoren committed Dec 10, 2020
    Copy the full SHA
    fdc20e9 View commit details
  2. Copy the full SHA
    108f889 View commit details
  3. Automagically use i386/debian:buster (#415)

    * Autmagically use 1386/debian:buster when running on 64-bit host to prevent error #271
    aniongithub authored and kdoren committed Dec 10, 2020
    Copy the full SHA
    257bc19 View commit details
  4. Copy the full SHA
    79f4a6c View commit details

Commits on Dec 11, 2020

  1. Copy the full SHA
    d419792 View commit details

Commits on Dec 23, 2020

  1. use rt kernel 5.4.81-rt

    kdoren committed Dec 23, 2020
    Copy the full SHA
    3b81abe View commit details
  2. add jambox-project apt repo

    kdoren committed Dec 23, 2020
    Copy the full SHA
    fd0b50b View commit details
  3. fix file location

    kdoren committed Dec 23, 2020
    Copy the full SHA
    159d6b3 View commit details
  4. add control back to taskbar

    kdoren committed Dec 23, 2020
    Copy the full SHA
    cc98961 View commit details
  5. add jambox-project repo key

    kdoren committed Dec 23, 2020
    Copy the full SHA
    70e6617 View commit details
  6. Copy the full SHA
    38dedde View commit details
  7. Copy the full SHA
    2c9a786 View commit details
  8. install sonobus

    kdoren committed Dec 23, 2020
    Copy the full SHA
    711fe27 View commit details
  9. try to fix race condition

    kdoren committed Dec 23, 2020
    Copy the full SHA
    ce8ad13 View commit details
  10. install aj-snapshot from repo

    kdoren committed Dec 23, 2020
    Copy the full SHA
    6ee92af View commit details
  11. clean up comments

    kdoren committed Dec 23, 2020
    Copy the full SHA
    c711b50 View commit details

Commits on Dec 26, 2020

  1. update desktop README.md

    kdoren committed Dec 26, 2020
    Copy the full SHA
    cb72495 View commit details
  2. make autostart configurable

    kdoren committed Dec 26, 2020
    Copy the full SHA
    60dcb9a View commit details
  3. remove unneeded Jamulus files

    kdoren committed Dec 26, 2020
    Copy the full SHA
    986fc79 View commit details
  4. Copy the full SHA
    e4af268 View commit details
  5. Copy the full SHA
    802420e View commit details

Commits on Dec 27, 2020

  1. fix filename

    kdoren committed Dec 27, 2020
    Copy the full SHA
    e861b18 View commit details
  2. update desktop README.md

    kdoren committed Dec 27, 2020
    Copy the full SHA
    c87862e View commit details
  3. change shutdown icon

    kdoren committed Dec 27, 2020
    Copy the full SHA
    89a7a68 View commit details
  4. add update button

    kdoren committed Dec 27, 2020
    Copy the full SHA
    06381ff View commit details

Commits on Dec 29, 2020

  1. Copy the full SHA
    b00b262 View commit details
  2. Copy the full SHA
    b79ffbb View commit details
  3. remove iptables items

    kdoren committed Dec 29, 2020
    Copy the full SHA
    be17542 View commit details
  4. add jacktrip

    kdoren committed Dec 29, 2020
    Copy the full SHA
    d2e8137 View commit details
  5. reposition desktop icons

    kdoren committed Dec 29, 2020
    Copy the full SHA
    85e510d View commit details
  6. Copy the full SHA
    3e99f4f View commit details
  7. Copy the full SHA
    7c304f7 View commit details
  8. Copy the full SHA
    4cceedf View commit details
Showing with 7,861 additions and 880 deletions.
  1. +2 −1 Dockerfile
  2. +144 −0 README.md
  3. +11 −1 build-docker.sh
  4. +2 −0 export-image/01-set-sources/01-run.sh
  5. +0 −1 export-image/04-finalise/01-run.sh
  6. +27 −3 export-image/prerun.sh
  7. +0 −43 export-noobs/00-release/00-run.sh
  8. BIN export-noobs/00-release/files/OS.png
  9. BIN export-noobs/00-release/files/marketing/slides_vga/A.png
  10. BIN export-noobs/00-release/files/marketing/slides_vga/B.png
  11. BIN export-noobs/00-release/files/marketing/slides_vga/C.png
  12. BIN export-noobs/00-release/files/marketing/slides_vga/D.png
  13. BIN export-noobs/00-release/files/marketing/slides_vga/E.png
  14. BIN export-noobs/00-release/files/marketing/slides_vga/F.png
  15. BIN export-noobs/00-release/files/marketing/slides_vga/G.png
  16. +0 −20 export-noobs/00-release/files/os.json
  17. +0 −46 export-noobs/00-release/files/partition_setup.sh
  18. +0 −22 export-noobs/00-release/files/partitions.json
  19. +0 −540 export-noobs/00-release/files/release_notes.txt
  20. +0 −36 export-noobs/prerun.sh
  21. +0 −2 stage2/03-accept-mathematica-eula/00-debconf
  22. +0 −4 stage2/EXPORT_IMAGE
  23. +0 −2 stage2/EXPORT_NOOBS
  24. +20 −0 stage3/00-configure-apt/00-run.sh
  25. +30 −0 stage3/00-configure-apt/files/blokas.gpg.key
  26. +1 −0 stage3/00-configure-apt/files/jambox-project.list
  27. +52 −0 stage3/00-configure-apt/files/repo.jambox-project.com.gpg
  28. +0 −2 stage3/00-install-packages/00-debconf
  29. +0 −15 stage3/00-install-packages/00-packages
  30. +0 −6 stage3/00-install-packages/00-packages-nr
  31. +0 −8 stage3/00-install-packages/01-run.sh
  32. +13 −0 stage3/01-misc-config/00-run.sh
  33. +1 −0 stage3/01-misc-config/files/010_pi-nopasswd
  34. +0 −3 stage3/01-tweaks/00-run.sh
  35. +2 −0 stage3/02-misc-config2/00-debconf
  36. +5 −0 stage3/02-misc-config2/00-packages
  37. +18 −0 stage3/02-misc-config2/01-run.sh
  38. +9 −0 stage3/02-misc-config2/files/cpu_performance_scaling_governor.service
  39. +15 −0 stage3/02-misc-config2/files/rules.v4
  40. +2 −0 stage3/03-install-jack/00-debconf
  41. +3 −0 stage3/03-install-jack/00-packages
  42. +4 −0 stage3/03-install-jack/00-packages-nr
  43. +15 −0 stage3/03-install-jack/01-run.sh
  44. +32 −0 stage3/03-install-jack/files/ajs-jamulus-ch1_only.xml
  45. +32 −0 stage3/03-install-jack/files/ajs-jamulus-ch2_only.xml
  46. +35 −0 stage3/03-install-jack/files/ajs-jamulus-dual_mono.xml
  47. +33 −0 stage3/03-install-jack/files/ajs-jamulus-stereo.xml
  48. +35 −0 stage3/03-install-jack/files/ajs-sonobus-stereo.xml
  49. +17 −0 stage3/03-install-jack/files/jack.service
  50. +1 −0 stage3/04-install-sw/00-debconf
  51. +11 −0 stage3/04-install-sw/00-packages
  52. +23 −0 stage3/04-install-sw/00-packages-nr
  53. +33 −0 stage3/04-install-sw/01-run.sh
  54. +30 −0 stage3/04-install-sw/02-run.sh
  55. +5 −0 stage3/04-install-sw/03-run.sh
  56. +16 −0 stage3/04-install-sw/04-run.sh
  57. +6 −0 stage3/04-install-sw/06-run.sh
  58. +1 −0 stage3/04-install-sw/07-run.sh
  59. +13 −0 stage3/04-install-sw/08-run.sh
  60. +2 −0 stage3/04-install-sw/files/.vimrc
  61. +2 −0 stage3/04-install-sw/files/60-desktop-policy.conf
  62. +9 −0 stage3/04-install-sw/files/Desktop/README.desktop
  63. +9 −0 stage3/04-install-sw/files/Desktop/Shutdown.desktop
  64. +9 −0 stage3/04-install-sw/files/Desktop/Update.desktop
  65. +5 −0 stage3/04-install-sw/files/Desktop/audacity.desktop.unused
  66. +5 −0 stage3/04-install-sw/files/Desktop/patchage.desktop
  67. +5 −0 stage3/04-install-sw/files/Desktop/pimixer.desktop
  68. +5 −0 stage3/04-install-sw/files/Desktop/qasmixer.desktop
  69. +182 −0 stage3/04-install-sw/files/README.md
  70. +205 −0 stage3/04-install-sw/files/audacity.cfg
  71. +90 −0 stage3/04-install-sw/files/config.txt
  72. +89 −0 stage3/04-install-sw/files/daemon.conf
  73. +70 −0 stage3/04-install-sw/files/desktop-items-0.conf
  74. +44 −0 stage3/04-install-sw/files/hostapd.conf
  75. +6 −0 stage3/04-install-sw/files/jambox_update.sh
  76. +50 −0 stage3/04-install-sw/files/libfm.conf
  77. +168 −0 stage3/04-install-sw/files/lxde-panel
  78. +11 −0 stage3/04-install-sw/files/novnc.service
  79. +9 −0 stage3/04-install-sw/files/patchagerc
  80. +29 −0 stage3/04-install-sw/files/pcmanfm.conf
  81. +5 −0 stage3/04-install-sw/files/pulseaudio-jack.desktop
  82. +31 −0 stage3/04-install-sw/files/qasmixer.conf
  83. +63 −0 stage3/04-install-sw/files/qjackctl.svg
  84. +20 −0 stage3/05-install-rt-kernel/00-packages
  85. +44 −0 stage3/05-install-rt-kernel/01-run.sh
  86. +6 −0 stage3/05-install-rt-kernel/02-run.sh
  87. +68 −0 stage3/05-install-rt-kernel/files/gen-latency-plot.sh
  88. +7 −0 stage3/05-install-rt-kernel/files/scarlett-gen3.conf
  89. +5 −0 stage3/06-install-jamulus/00-packages
  90. +92 −0 stage3/06-install-jamulus/01-run.sh
  91. +10 −0 stage3/06-install-jamulus/files/Desktop/jamulus-server-start.desktop
  92. +10 −0 stage3/06-install-jamulus/files/Desktop/jamulus-start.desktop
  93. +1,563 −0 stage3/06-install-jamulus/files/Jamulus.ini
  94. +15 −0 stage3/06-install-jamulus/files/Jamulusserver.ini
  95. +15 −0 stage3/06-install-jamulus/files/Jamulusserver2.ini
  96. +4 −0 stage3/06-install-jamulus/files/autostart
  97. +5 −0 stage3/06-install-jamulus/files/jackdrc
  98. +102 −0 stage3/06-install-jamulus/files/jackdrc.conf
  99. +46 −0 stage3/06-install-jamulus/files/jambox_start.sh
  100. +40 −0 stage3/06-install-jamulus/files/jamulus-server.conf
  101. BIN stage3/06-install-jamulus/files/jamulus-server.png
  102. +46 −0 stage3/06-install-jamulus/files/jamulus-server.service
  103. +40 −0 stage3/06-install-jamulus/files/jamulus-server2.conf
  104. +45 −0 stage3/06-install-jamulus/files/jamulus-server2.service
  105. +26 −0 stage3/06-install-jamulus/files/jamulus_start.conf
  106. +137 −0 stage3/06-install-jamulus/files/jamulus_start.sh
  107. +1,550 −0 stage3/06-install-jamulus/files/jns/Jamulus.ini
  108. +202 −0 stage3/06-install-jamulus/files/jns/README.md
  109. +98 −0 stage3/06-install-jamulus/files/jns/jackdrc.conf
  110. +19 −0 stage3/06-install-jamulus/files/jns/jamulus_start.conf
  111. BIN stage3/06-install-jamulus/files/jns/wp_jns_logo_small_5_260x.gif
  112. +70 −0 stage3/06-install-jamulus/files/midi-jamulus-passthrough.py
  113. +386 −0 stage3/06-install-jamulus/files/midi-jamulus-xtouchmini-16ch.py
  114. +44 −0 stage3/07-install-boot-script/01-run.sh
  115. +1 −0 stage3/07-install-boot-script/files/jambox_version
  116. +53 −0 stage3/07-install-boot-script/files/one-time-script.conf
  117. +23 −0 stage3/07-install-boot-script/files/unattended
  118. +28 −0 stage3/07-install-boot-script/files/urlrelay.conf
  119. +14 −0 stage3/07-install-boot-script/files/urlrelay.service
  120. +77 −0 stage3/07-install-boot-script/files/urlrelay.sh
  121. +1 −0 stage3/08-install-sonobus/00-packages
  122. +55 −0 stage3/08-install-sonobus/01-run.sh
  123. +11 −0 stage3/08-install-sonobus/files/Desktop/sonobus-start.desktop
  124. +15 −0 stage3/08-install-sonobus/files/SonoBus.settings
  125. +14 −0 stage3/08-install-sonobus/files/sonobus_start.conf
  126. +62 −0 stage3/08-install-sonobus/files/sonobus_start.sh
  127. +1 −0 stage3/09-install-jacktrip/00-packages
  128. +16 −0 stage3/09-install-jacktrip/01-run.sh
  129. +11 −0 stage3/09-install-jacktrip/files/Desktop/jacktrip-start.desktop
  130. +10 −0 stage3/09-install-jacktrip/files/jacktrip_start.conf
  131. +47 −0 stage3/09-install-jacktrip/files/jacktrip_start.sh
  132. +3 −0 stage3/10-install-jamtaba/00-packages
  133. +17 −0 stage3/10-install-jamtaba/01-run.sh
  134. +10 −0 stage3/10-install-jamtaba/files/Desktop/jamtaba-start.desktop
  135. +4 −0 stage3/10-install-jamtaba/files/JamTaba 2.conf
  136. +136 −0 stage3/10-install-jamtaba/files/Jamtaba.json
  137. +46 −0 stage3/10-install-jamtaba/files/ajs-jamtaba-stereo.xml
  138. +7 −0 stage3/10-install-jamtaba/files/jamtaba_start.conf
  139. +81 −0 stage3/10-install-jamtaba/files/jamtaba_start.sh
  140. +1 −0 stage3/11-install-jammernetz/00-packages
  141. +47 −0 stage3/11-install-jammernetz/01-run.sh
  142. +11 −0 stage3/11-install-jammernetz/files/Desktop/jammernetz-server-start.desktop
  143. +10 −0 stage3/11-install-jammernetz/files/Desktop/jammernetz-start.desktop
  144. +26 −0 stage3/11-install-jammernetz/files/JammerNetz.settings
  145. BIN stage3/11-install-jammernetz/files/JammerNetzIcon.png
  146. BIN stage3/11-install-jammernetz/files/JammerNetzIcon_bw.png
  147. +29 −0 stage3/11-install-jammernetz/files/jammernetz-server.conf
  148. +41 −0 stage3/11-install-jammernetz/files/jammernetz-server.service
  149. +17 −0 stage3/11-install-jammernetz/files/jammernetz_start.conf
  150. +65 −0 stage3/11-install-jammernetz/files/jammernetz_start.sh
  151. BIN stage3/11-install-jammernetz/files/zeros.bin
  152. +1 −0 stage3/12-install-hpsjam/00-packages
  153. +16 −0 stage3/12-install-hpsjam/01-run.sh
  154. +10 −0 stage3/12-install-hpsjam/files/Desktop/hpsjam-server-start.desktop
  155. +10 −0 stage3/12-install-hpsjam/files/Desktop/hpsjam-start.desktop
  156. +19 −0 stage3/12-install-hpsjam/files/HpsJam.conf
  157. BIN stage3/12-install-hpsjam/files/HpsJam_bw.png
  158. +29 −0 stage3/12-install-hpsjam/files/hpsjam-server.conf
  159. +44 −0 stage3/12-install-hpsjam/files/hpsjam-server.service
  160. +14 −0 stage3/12-install-hpsjam/files/hpsjam_start.conf
  161. +97 −0 stage3/12-install-hpsjam/files/hpsjam_start.sh
  162. +13 −0 stage3/13-install-midi/00-packages
  163. +5 −0 stage3/13-install-midi/01-run.sh
  164. +81 −0 stage3/13-install-midi/files/Qsynth.conf
  165. +15 −0 stage3/99-fixup-perm/00-run.sh
  166. 0 {stage4 → stage3}/EXPORT_IMAGE
  167. +0 −2 stage4/00-install-packages/00-debconf
  168. +0 −25 stage4/00-install-packages/00-packages
  169. +0 −2 stage4/00-install-packages/00-packages-nr
  170. +0 −22 stage4/00-install-packages/01-packages
  171. +0 −4 stage4/00-install-packages/02-packages
  172. +0 −5 stage4/01-console-autologin/00-run.sh
  173. +0 −7 stage4/02-extras/00-run.sh
  174. +0 −15 stage4/03-bookshelf/00-run.sh
  175. +0 −1 stage4/03-bookshelf/files/.gitignore
  176. +0 −5 stage4/04-enable-xcompmgr/00-run.sh
  177. +0 −2 stage4/EXPORT_NOOBS
  178. +0 −5 stage4/prerun.sh
  179. +0 −16 stage5/00-install-extras/00-packages
  180. +0 −3 stage5/00-install-libreoffice/00-packages
  181. +0 −4 stage5/EXPORT_IMAGE
  182. +0 −2 stage5/EXPORT_NOOBS
  183. +0 −5 stage5/prerun.sh
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
FROM debian:buster
ARG BASE_IMAGE=debian:buster
FROM ${BASE_IMAGE}

ENV DEBIAN_FRONTEND noninteractive

144 changes: 144 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,147 @@
# Jambox

**A Raspberry Pi micro-SD card image for online jamming.
Pre-built image file is available under "Releases" to download and burn with balenaEtcher
Runs Jamulus (client-server), SonoBus (peer-to-peer), JamTaba (NINJAM), JackTrip, JammerNetz (client-server) or HpsJam (client-server) on Raspberry Pi.
Web Browser UI - use any laptop, tablet, desktop - even a smartphone.**

* Makes it easy for non-technical musicians to play together online, with a high-quality, high-performnace, low-cost system.
* Suitable for a musical group or school to supply a pre-configured jamming appliance.

### Features
* Runs on a **headless Raspberry Pi**. Pi4 is highly recommended but Jambox has been verified to work on Pi3B.
* **easy UI access via web browser** on same local network.
* Wired ethernet connection required (wireless adds jitter).
* Audio interface required (USB or HAT card).
* Can be easily configured to automatically connect to a Jamulus server on startup, then shutdown after a time.
* Low-latency kernel and default settings tuned for low delay.
* Jamulus requires a Jamulus server, in same area for lowest delay. Use a public server, or host your own.
* Can run as a Jamulus Server, JammerNetz Server, or HpsJam Server.
* SonoBus for peer-to-peer jamming.
* JamTaba for long-distance jamming using NINJAM servers.
* JackTrip for multi-machine network jamming.
* JammerNetz for high-quality client-server jamming.
* HpsJam for high-quality client-server jamming.
* Jamming apps can be updated via desktop "Update Apps" button.
* HDMI monitor can be used if desired.
* Jamulus client can be controlled using X-Touch Mini MIDI controller (level/mute/solo/pan)

---
<img src="https://jambox-project.s3-us-west-2.amazonaws.com/resources/jambox14_desktop-shadow.png" width="871" />

<img src="https://jambox-project.s3-us-west-2.amazonaws.com/resources/jambox14_jamulus-shadow.png" width="871" />

<img src="https://jambox-project.s3-us-west-2.amazonaws.com/resources/jambox14_sonobus-shadow.png" width="871" />

<img src="https://jambox-project.s3-us-west-2.amazonaws.com/resources/jambox_jamtaba2-shadow.png" width="871" />

<img src="https://jambox-project.s3-us-west-2.amazonaws.com/resources/jambox14_jammernetz-shadow.png" width="871" />

<img src="https://jambox-project.s3-us-west-2.amazonaws.com/resources/jambox14_hpsjam-shadow.png" width="871" />

---
### Easy to Setup
1. Download image file from "Releases" (https://github.com/kdoren/jambox-pi-gen/releases). No need to unzip.
2. Flash micro SD card using balenaEtcher.
3. (optional) customize settings after burning by editing/adding files in /boot/payload directory.
4. Works with most USB audio interfaces and audio HAT cards. Some interfaces may require changes to settings files.
5. Connect wires: ethernet, USB audio interface, mic/instrument, headphones and power.
6. Headphone amp may be needed (i.e. Rockville RHPA-4) depending on your audio interface.

### Easy to Use
1. Power on, boot up.
2. Raspberry Pi will acquire a local IP address and register its access URL with urlrelay.com
3. From any web browser on same local network (i.e. laptop or tablet), access Raspberry Pi UI via urlrelay.com/go
4. Web browser will show Raspberry Pi desktop.
5. Jamulus or SonoBus can be set to automatically launch at startup.
6. If JAMULUS_SERVER is set, Jamulus will automatically connect (and shutdown after JAMULUS_TIMEOUT minutes)
7. Double-click on a jamming app desktop icon:
* "Jamulus Start" to launch Jamulus.
* "SonoBus Start" to launch SonoBus.
* "JamTaba Start" to launch JamTaba.
* "JackTrip Start" to launch JackTrip.
* "JammerNetz Start" to launch JammerNetz Client.
* "HpsJam Start" to launch HpsJam Client
8. Double-click on desktop icon "Off Switch" to shut down Raspberry Pi.

---
### Simple hardware platform
Raspberry Pi + Audio Interface. 2GB Raspberry Pi is OK for jamming; 4GB model costs slightly more and allows flexibility for other purposes later. Can be attached to a board with velcro and pre-wired for easy setup.

**Suggested Bill of Materials**, prices in USD as of Nov 27, 2021:

|Price (USD)|Item|URL|
|-----:|--|--|
|$ 46|Raspberry Pi 4-2GB|https://vilros.com/products/raspberry-pi-4-2gb-ram|
|14|Vilros Self Cooling Heavy Duty Case|https://vilros.com/products/vilros-raspberry-pi-4-compatible-self-cooling-heavy-duty-aluminum-case|
|11|Vilros Power Supply with Switch|https://vilros.com/products/vilros-usb-c-5v-3a-power-supply-with-switch-designed-for-pi-4|
|8|SanDisk Ultra 16GB micro SD card|https://www.amazon.com/gp/product/9966573445|
|45|Behringer UM2 USB Audio Interface|https://www.americanmusical.com/behringer-u-phoria-um2-usb-audio-interface/p/BEH-UM2|
|18|Pyle PDMIC78 Microphone|https://www.amazon.com/gp/product/B005BSOVRY|
|12|XLR Microphone Cable, 15 ft|https://www.amazon.com/gp/product/B004UJHXUC|
|22|Microphone Stand w/clip|https://www.amazon.com/gp/product/B00OZ9C9LK|
|?|Over-ear Headphones|Use decent ones (likely $40 or more)|

---
### Customizable Settings
* Can be set immediately after flashing, on micro SD card "boot" partition /payload directory
* Or set later after booting
* Depending on your interface, you may be able to lower delay by reducing NPERIODS in /etc/jackdrc.conf.
* if JAMULUS_SERVER is defined, Jambox will automatically connect on boot, then power off after 2 hours.
* AJ_SNAPSHOT files are stored in /home/pi/.config/aj_snapshot/

| Name | Value | Default | File |
|----------|----------------------------------------|--------------------------------------|---------|
| **urlrelay settings** ||||
| NODE_ID | *id unique for your local network* | 1 | /etc/urlrelay/urlrelay.conf |
| URL_ARGS | *url arguments sent to noVNC* | /?password=jambox | /etc/urlrelay/urlrelay.conf |
| **Jamulus Settings** ||||
| JAMULUS_AUTOSTART | *set to 1 to launch on boot* | 0 | /home/pi/.config/Jamulus/jamulus_start.conf |
| JAMULUS_SERVER | *DNS name or IP of Jamulus server* | | /home/pi/.config/Jamulus/jamulus_start.conf |
| JAMULUS_TIMEOUT | *shutdown timer if auto-connecting* | 120m | /home/pi/.config/Jamulus/jamulus_start.conf |
| AJ_SNAPSHOT | *filename of alsa-jack patch configuration* | ajs-jamulus-stereo.xml | /home/pi/.config/Jamulus/jamulus_start.conf |
| MASTER_LEVEL | *master output level for audio interface* | 80% | /home/pi/.config/Jamulus/jamulus_start.conf |
| CAPTURE_LEVEL | *capture level for audio interface* | 80% | /home/pi/.config/Jamulus/jamulus_start.conf |
| **SonoBus Settings** ||||
| SONOBUS_AUTOSTART | *set to 1 to launch on boot* | 0 | /home/pi/.config/sonobus_start.conf |
| AJ_SNAPSHOT | *filename of alsa-jack patch configuration* | ajs-sonobus-stereo.xml | /home/pi/.config/sonobus_start.conf |
| MASTER_LEVEL | *master output level for audio interface* | 80% | /home/pi/.config/sonobus_start.conf |
| CAPTURE_LEVEL | *capture level for audio interface* | 80% | /home/pi/.config/sonobus_start.conf |
| **Jack Settings** ||||
| DEVICE | *alsa device ID of audio interface* | last capture device | /etc/jackdrc.conf |
| PERIOD | *Jack Audio samples per period* | 64 [pi4] or 128 [pi3]| /etc/jackdrc.conf |
| NPERIODS | *Jack Audio number of periods per buffer* | 3 [pi4] or 3 [pi3]| /etc/jackdrc.conf |
| **Jamulus Server Settings** | *see file* || /home/pi/.config/Jamulus/jamulus-server.conf |
| **JammerNetz Client Settings** | *see file* || /home/pi/JammerNetz/jammernetz_start.conf |
| **JammerNetz Server Settings** | *see file* || /home/pi/JammerNetz/jammernetz-server.conf |
| **HpsJam Client Settings** | *see file* || /home/pi/.config/hpsjam_start.conf |
| **HpsJam Server Settings** | *see file* || /home/pi/.config/hpsjam-server.conf |

---
### Web Browser access to Raspberry Pi Desktop - How it works
**urlrelay + noVNC = easy web browser access to Raspberry Pi desktop, without installing anything or knowing its IP address**

##### urlrelay
1. Raspberry PI on wired ethernet gets private IP address on local network assigned by router (DHCP), but we don't know what it is.
2. urlrelay service running on Raspberry Pi registers its private IP access URL with urlrelay.com (web service in AWS)
3. urlrelay.com stores this URL using source IP (public IP of router) as primary key
4. urlrelay.com uses NODE_ID (default: "1") as secondary key
5. If only a single device is registered for a local network (source IP), NODE_ID doesn't matter. From web browser on same local network (same source IP), urlrelay.com/go will redirect to Raspberry Pi.
6. If >1 device exists on same local network, NODE_ID of each device should be different, then access via urlrelay.com/go?id=<NODE_ID>
7. Recommended practice is to assign a different id to each micro SD card after flashing (in boot: /payload/etc/urlrelay/urlrelay.conf, i.e. NODE_ID=11), and place a label on each box with full URL "urlrelay.com/go?id=11"
8. NODE_ID can be set after flashing (booting not required). In boot: partition, edit file /payload/etc/urlrelay/urlrelay.conf
8. urlrelay.com deletes stale registrations after a set time (currently 30 days)

##### noVNC
1. Web browser on same local network gets URL as a redirect from urlrelay.com
2. noVNC is a VNC client written in Javascript which runs in web browser
3. noVNC js code is served to browser from Raspberry Pi by a mini-http server on port 6080
4. noVNC running in browser makes websocket connection to Rasbpberry Pi
5. websockify (companion to noVNC) bridges websocket to VNC server
6. Raspberry Pi runs VNC server presenting linux desktop

---
**Original pi-gen README.md follows:**
# pi-gen

Tool used to create Raspberry Pi OS images. (Previously known as Raspbian).
12 changes: 11 additions & 1 deletion build-docker.sh
Original file line number Diff line number Diff line change
@@ -73,7 +73,17 @@ fi
# Modify original build-options to allow config file to be mounted in the docker container
BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')"

${DOCKER} build -t pi-gen "${DIR}"
# Check the arch of the machine we're running on. If it's 64-bit, use a 32-bit base image instead
case "$(uname -m)" in
x86_64|aarch64)
BASE_IMAGE=i386/debian:buster
;;
*)
BASE_IMAGE=debian:buster
;;
esac
${DOCKER} build --build-arg BASE_IMAGE=${BASE_IMAGE} -t pi-gen "${DIR}"

if [ "${CONTAINER_EXISTS}" != "" ]; then
trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${CONTAINER_NAME}_cont' SIGINT SIGTERM
time ${DOCKER} run --rm --privileged \
2 changes: 2 additions & 0 deletions export-image/01-set-sources/01-run.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash -e

rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache"
find "${ROOTFS_DIR}/var/lib/apt/lists/" -type f -delete
on_chroot << EOF
apt-get update
apt-get -y dist-upgrade
1 change: 0 additions & 1 deletion export-image/04-finalise/01-run.sh
Original file line number Diff line number Diff line change
@@ -16,7 +16,6 @@ if [ -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config" ]; then
chmod 700 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config"
fi

rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache"
rm -f "${ROOTFS_DIR}/usr/bin/qemu-arm-static"

if [ "${USE_QEMU}" != "1" ]; then
30 changes: 27 additions & 3 deletions export-image/prerun.sh
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ ALIGN="$((4 * 1024 * 1024))"
# some overhead (since actual space usage is usually rounded up to the
# filesystem block size) and gives some free space on the resulting
# image.
ROOT_MARGIN="$(echo "($ROOT_SIZE * 0.2 + 200 * 1024 * 1024) / 1" | bc)"
ROOT_MARGIN="$(echo "($ROOT_SIZE * 0.3 + 200 * 1024 * 1024) / 1" | bc)"

BOOT_PART_START=$((ALIGN))
BOOT_PART_SIZE=$(((BOOT_SIZE + ALIGN - 1) / ALIGN * ALIGN))
@@ -39,8 +39,32 @@ BOOT_LENGTH=$(echo "$PARTED_OUT" | grep -e '^1:' | cut -d':' -f 4 | tr -d B)
ROOT_OFFSET=$(echo "$PARTED_OUT" | grep -e '^2:' | cut -d':' -f 2 | tr -d B)
ROOT_LENGTH=$(echo "$PARTED_OUT" | grep -e '^2:' | cut -d':' -f 4 | tr -d B)

BOOT_DEV=$(losetup --show -f -o "${BOOT_OFFSET}" --sizelimit "${BOOT_LENGTH}" "${IMG_FILE}")
ROOT_DEV=$(losetup --show -f -o "${ROOT_OFFSET}" --sizelimit "${ROOT_LENGTH}" "${IMG_FILE}")
echo "Mounting BOOT_DEV..."
cnt=0
until BOOT_DEV=$(losetup --show -f -o "${BOOT_OFFSET}" --sizelimit "${BOOT_LENGTH}" "${IMG_FILE}"); do
if [ $cnt -lt 5 ]; then
cnt=$(($cnt + 1))
echo "Error in losetup for BOOT_DEV. Retrying..."
sleep 5
else
echo "ERROR: losetup for BOOT_DEV failed; exiting"
exit 1
fi
done

echo "Mounting ROOT_DEV..."
cnt=0
until ROOT_DEV=$(losetup --show -f -o "${ROOT_OFFSET}" --sizelimit "${ROOT_LENGTH}" "${IMG_FILE}"); do
if [ $cnt -lt 5 ]; then
cnt=$(($cnt + 1))
echo "Error in losetup for ROOT_DEV. Retrying..."
sleep 5
else
echo "ERROR: losetup for ROOT_DEV failed; exiting"
exit 1
fi
done

echo "/boot: offset $BOOT_OFFSET, length $BOOT_LENGTH"
echo "/: offset $ROOT_OFFSET, length $ROOT_LENGTH"

43 changes: 0 additions & 43 deletions export-noobs/00-release/00-run.sh

This file was deleted.

Binary file removed export-noobs/00-release/files/OS.png
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
20 changes: 0 additions & 20 deletions export-noobs/00-release/files/os.json

This file was deleted.

46 changes: 0 additions & 46 deletions export-noobs/00-release/files/partition_setup.sh

This file was deleted.

22 changes: 0 additions & 22 deletions export-noobs/00-release/files/partitions.json

This file was deleted.

Loading