This small project is a audio recording box built from a Raspberry Pi and some basic components. Audio recording is possible via any USB microphone. For playback a USB sound card is recommended. The goal is to have simple cassette recorder like functionality.
Features are
- direct recording with one button push
- a display with a basic menu to navigate through recordings and setup audio devices
- menu navigation is done with a rotary encoder with a built-in switch (push)
- playback can be started by navigating to a recorded file and pushing the play button
- a separate button can be used to set up a A/B loop for continuous playback.
- recorded files are named with a date and time stamp
- the RTC module keeps time and date when unplugged from power
- Raspberry Pi 3
- 3 push buttons (1 momentary: Loop, and 2 on/off switches: Rec and Play)
- 3 LEDs and resistors
- a rotary encoder with integrated push button (for menu navigation)
- LCD Display (20x4 characters) with I2C adapter
- a USB microphone or USB sound card (with speaker out and mic in)
- some wire
- real Time Clock module, e.g. Adafruit PiRTC - PCF8523
- sturdy push buttons, momentary and on/off with LED included (I used this one in different colors)
- an adequate enclosure, e.g. a console like this one
- a heat sink for the Raspberry Pi, possibly a small fan
Install the required packages:
sudo apt-get update
sudo apt-get install python3-pip python3-pyaudio python3-smbus python3-gpiozero git
sudo pip3 install RPLCD
git clone https://github.com/lochbika/recording_box.git
Make sure that the RTC module is configured and working correctly and add the following lines to /boot/config.txt:
dtparam=i2c_arm=on
dtoverlay=i2c-rtc,pcf8523
There is an example file at RaspberryPi_config/config.txt.
Either log in via ssh and manually start it
python3 main.py
or modify and copy the systemd service file to /etc/systemd/system, start and enable it:
sudo cp systemd/recording_box.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start recording_box.service
sudo systemctl enable recording_box.service