About Project

OpnBeat is a low cost sampler which is simple, easy to use and fun! Thanks to its core component voice recorder chip ISD1700 series, OpnBeat is really easy to understand. There is no complex technology such as mp3 or codec. The simplicity and understandability are useful for anyone who want to modify or customize it. All that lead to fun and joy!

Reason why I started this project

I love hiphop music and become interested in sampler which is musical instrument and used for music production. But popular samplers in market was expensive and since I've never made 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]

[Back View]

[Side View]

Demo Video

Main Features

[Functions]

[Input / Output]

PCB

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.

How it works

 Its core 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 it enables full control of the chip.

 Below 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 chip has internal multi-level storage array which records and stores input analog sound directly. It provides Direct Memory Access commands such as SET_PLAY or SET_REC which enable play and record sound segments based on designated memory address. In short, you can play only specific segment of recorded sound. The most important point is there is no need to understand complex idea such as file format or codec (e.g. .mp3, .wav) but you only have to send SPI command (PLAY/REC, start address, end address). 

 Each ISD1700 chips output analog sound via AUD/AUX pin which is only available in SPI mode. The all 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.

For example, you can use set_play command with start and end address which you want to play. Please refer below diagram to understand 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, please watch the video below (from 0:14).

 Below is block diagram of controls and I/F to Arduino. A rotary encoder is for selecting menus. It uses ClickEncoder.h library. For reading 12 keys status (Back, Play, REC, encorder button, Sound1, Sound2, ... Sound8) , it uses AnalogMultiButton.h library. For LCD, it uses 16x2 LCD with I2C I/F which required only 4 wire (VDD, VSS, SCL, SDA). 

Below is block diagram of power part. It uses USB Type C connector. When I used USB mini B connector in previous version of prototype, voltage drop between USB supply and this product is very big, and input 5V measured at USB connector on this product was only about 4.3V. Finally this Ver.3 used Type C connector and maybe because of low resistance of type C cable, the correct input 5V was acquired.

 B0505S-1W (5V output isolated DCDC) is used for generating -5V. And By both LM317 and LM337, it generates ±3V from ±5V for analog circuit.

About recording duration and the sound quality, you can set them by external resister called Rosc. OpnBeat uses 56k ohm which corresponds to 12kHz sampling frequency and maximum 12 seconds recording duration. I thinks this sound quality is acceptable if it's not for professionals but for DIY makers.  Finally, I found some hack for improving its sound quality, but let me share it in another place...

Thanks for being interested in this project and read this article!!