Software apps and online services
Hand tools and fabrication machines
SnapBeat (former OpnBeat) is Arduino-based Lofi sampler which is affordable, easy to understand and fun to play! Thanks to its core component the voice recorder chip ISD1700 series, OpnBeat is really simple. There is no complex technology such as mp3 or codec. The simplicity and understandability are useful for anyone who wants to modify it or make original DIY sampler. Most importantly, It's really fun to play. You need only a stereo audio cable, earphones and music source such as Sportify to start making your original track.
Now you can buy SnapBeat pre-soldered PCBA on Tindie.The reason why I started this project
I love hip-hop music and become interested in sampler and music production. But popular samplers in market was expensive and since I've never tried making music before, I didn't have confidence whether I was able to use it or not. Finally I reached the idea that I should make it by myself so that I could fully understand how it works and how to use it.OpnBeat (Prototype Ver.3) Overview
[Parts and Names][Top View]
- Sampling sounds up to 12 second each for 8 channels(sampling frequency is about 12kHz, standard)
- Play 8 sounds at the same time
- Play mode (real time play by keys just like music instrument)
- Sound edit mode (cut and trim sampled sound)
- Rhythm edit mode (record and memory rhythm pattern by editing rhythm in realtime)
- BPM setting
- Level setting for each 8 channel output
[Input / Output]
- 1x Line In (3.5mm stereo jack)
- 1x Line Out (RCA jack)
- 1x Headphone Out (3.5mm stereo jack)
- Volume (for heaphone, metronome)
PCB size is 180 mm x 110 mm. It fits on working table of affordable FDM 3D printers so that you can make its case with 3D printer. All components are mounted on top side.
Before reaching this prototype Ver.3, I made two other prototypes and evaluated user interface and its usability. And I reduced its size as small as I can print its case within 3D printer's printing area (in my Ender-3 V2 Neo 3D Printer, it's 220x220mm). Finally I'm satisfied with the Ver.3.
I'm using Blender to model 3D. I exported PCB 3D data from KiCad and imported in Blender. Also you can import KiCad standard 3D component data (.wrl) with Blender. I prefer Blender because it is useful both in designing 3D model such as cases and in rendering high quality finished product image.
After making 3D data of cases, I sliced it with 3D printer slicer software. And printed it. The only problem is it takes too long time. In my setting, it took about 11 hours for the upper case and about 5 hours for bottom case.
Let me explain the core idea of the product. Its main component is voice recorder chip ISD1700 (in the prototype, ISD1720 is used). Usually it's used with standalone mode for simple voice recorder or toy applications. But OpnBeat uses it with SPI mode which enables full control of the chip.
The above is block diagram of audio part. In sampling sound, sound signal is input from LINE IN stereo jack, then downmixed to monaural by U1 because ISD1700 inputs and outputs only monaural sound. The input audio signal is input to all ISD1700 chips in parallel. Arduino selects only one ISD1700 chip at once by SS (slave select). So the only selected ISD1700 chip executes record, play or change volume function depending on SPI command from Arduino.
ISD1700 provides Direct Memory Access commands such as SET_PLAY or SET_REC which enable play and record sound segments based on designated memory address.
Finally all the outputs from all ISD1700 chips are mixed by OPAMP (U1) and output from LINE OUT. Also the mixed signal is adjusted its volume and output from headphone out. The U2 is headphone amplifier.
The above is ISD1700 memory structure where recorded sound is stored. Just by specifying start and end address, you can trim and play recorded sound segment. It enables the device to trim and play only a shot of drum from seconds of recorded sound.
About sampling sound and trimming function, please watch the video below (from 0:14).How to build itStep.1 Fabricate PCB
You can download gerber files from here.Then you can order PCB to some popular PCB prototyping service such as PCBWay.Step.2 Order components
You can buy ISD1720SY (or ISD1730SY) on Aliexpress from here. I think this is only component which is not so popular in current market. For PCB mount pars such as audio jacks, potentiometer and rotary encoder, please confirm that your purchased parts are compatible for their footprint and mount holes.Step. 3 Soldering and complete PCBA
Let's solder components on PCB. Since most of components are SMD, it seems to be difficult for beginners. I think it take more than 3 hours for completion if done by intermediate level engineers. Especially, IC U1 and U2 are TSSOP package (please refer below photo) and very difficult to hand soldering if you haven't done it before (I'm going to change it to SOP package which is much easier for hand soldering in next PCB update).
For soldering U1 and U2, you should prepare solder flux, solder wick and tweezers. It helps you to fight with them. About soldering using flux, please refer this video on youtube.
After completing soldering and all the components are soldered, let's check short circuit between power (5V, 3V, -5V, -3V) and GND line. By doing so before power on the board at the first time, you can prevent from having devices being damaged.
For placing LCD, you can download the LCD holder's 3D data from here. Please print it by 3D printer and paste it onto PCB with double sided tape.
Next step is uploading sketch to Arduino Nano. You can download source code of Arduino from here.Connect USB cable to Arduino and open Arduino IDE (be careful not to connect USB power to both USB C connector on the board and USB mini-B on Arduino).
On Arduino IDE -> Tools, please select correct COM port. And because I'm using Arduino Nano v3.0 (clone), please choose ATmega328p (Old Bootloader). Then execute uploading.
After uploading, the board powers on and works.Congratulations!Step. 5 3D print cases
You can download 3D data (.stl) from here.It consists of two data. One is upper case and the other is bottom case. Please slice it with 3D printer's slicer software and print them by your 3D printer. It takes long time especially for the upper case (about 11 hours). For my case, I started printing at night and it completed on next morning.Step. 6 Assembly
Now, you have all stuffs. In addition that, you need four screw (wood screw, 2.8mm diameter and about 13mm length).
Hold the upper case upside down. Then, place PCBA so that connectors and jacks on the PCB are inserted in the holes correctly.
Next, place the bottom cover at the bottom of PCB. Please confirm that holes positions are nicely aligned.
Then screw the four screw at all corners.
Wow, now you've completed everything!Connect it to PC or smartphone via LINE IN and try sampling some sound. And enjoy playing with music.Please Join
I started this project and until now I've been working for this project alone. But since basically I'm an electrical engineer and I'm not so good at programming, I would be happy if you could help me especially develop its software.
Thanks very much for reading.