bananenkeyboard/README.md

53 lines
2.1 KiB
Markdown

# bananenkeyboard
Resistive touch sensors to sound by touching the probes or things connected to them.
# Install
* Raspberry Pi OS Lite
* Release date: January 28th 2022
* System: 32-bit
* Kernel version: 5.10
* Debian version: 11 (bullseye)
Remember to activate "ssh" before booting first (touch "/boot/ssh" on the MicroSD-card)
After login (ssh) proceed with these steps:
1. `sudo apt update`
2. `sudo apt upgrade`
3. `sudo apt -y install git python3-pip libsdl2-mixer-2.0-0 usbmount screen libasound2-dev`
4. `wget go1.19.2.linux-armv6l.tar.gz`
5. `rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.2.linux-amd64.tar.gz`
6. `echo 'export PATH=$PATH:/usr/local/go/bin' >>~/.profile`
7. `git clone https://repos.ctdo.de/interfisch/bananenkeyboard/`
8. `cd ~/bananakeyboard/Pi`
9. `go get .`
10. `go build .`
11. `sudo sh -c 'echo "\n[all]\nenable_uart=1\n" >>/boot/config.txt'`
12. `sudo sh -c 'sed "s/^dtoverlay=vc4-kms-v3d/dtoverlay=vc4-fkms-v3d/" -i /boot/config.txt'`
13. `sudo mkdir /etc/systemd/system/systemd-udevd.service.d`
14. `sudo sh -c 'echo "[Service]\nPrivateMounts=no" >/etc/systemd/system/systemd-udevd.service.d/00-my-custom-mountflags.conf'`
15. `sudo sh -c 'cp /home/pi/bananenkeyboard/piconfig/rc.local /etc/rc.local'`
16. `sudo chmod u+x /etc/rc.local`
17. `chmod u+x ~/bananenkeyboard/piconfig/readonly.sh`
18. `sudo gpasswd --add pi tty`
19. `sudo /home/pi/bananenkeyboard/piconfig/readonly.sh`
20. `sudo reboot`
By copying the rc.local (step 15), the script will be started in a `screen` after reboot.
To start it manually type:
`./bananakeyboard_go`
# Convert and remove silence from samples:
`for file in *.mp3; do ffmpeg -i ${file} -af silenceremove=1:0:-30dB ${file/mp3/wav} -y; done`
An open source for samples is for example: https://philharmonia.co.uk/resources/sound-samples/
# TODO
* Connect USB stick with samples which should override the default samples
* `ALSA lib pcm.c:8545:(snd_pcm_recover) underrun occurred`. Especially if using mp3s?
* It's necessary to activate the serial via raspi-config?
* raspi-config -> Interface -> I6 Serial Port -> No (Login Shell?) -> Yes (Serial hardware port?) -> Ok