OpnBeat / DIY Lo-fi Sampler with ISD1700 series

Low cost, understandable, easy to use sampler with true Lo-fi sound powered by Arduino and legacy voice recorder chip.

Similar projects worth following
Starting from
Hiro_Akihabara has 19 orders / 0reviews
Ships from Vietnam
SnapBeat (former OpnBeat) is a simple Lo-fi sampler. You can sample and play any sounds quickly and easily.

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


  • 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.

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,...

Read more »

LPF module.pdf

schematic of LPF module

Adobe Portable Document Format - 22.64 kB - 04/24/2023 at 06:43


Adobe Portable Document Format - 308.75 kB - 03/29/2023 at 06:01


View all 16 components

  • Update PCB v03-02, 2023/04/23

    Hiro Akihabara04/23/2023 at 10:20 0 comments

    PCB v03-02

    I updated PCB. Major change points are below.

    • changed OPAMP package from SSOP to SOP for easier hand soldering
    • added test points for easy access to 5V power input, mix-out and ISD1700 Rosc

    Below red area shows there test points.

    These test points are useful for DIY.

    For example,

    • test point for 5V IN : battery powered sampler by connecting battery and DCDC module
    • test point for mix-out : built-in speaker by connecting tiny amplifier board
    • test point for ISD1700 Rosc : real time pitch control function by connecting potentiometer

    I got feedback from some people who prefer the real time pitch control function in previous prototype. If you want that function, it's very easy to implement by using these test points. 

    About real time pitch control function, please watch video below.

    example of using test points for real time pitch control

    By connecting potentiometer, you can change Rosc value of ISD1700 which determine sampling and playback speed. As a result you can change pitch of playback sound. This function is using ISD1700 hardware and doesn't have nothing to do with Arduino software. 

    PCB v03-03

    I'm modifying PCB for optimizing BOM towards small batch PCBA production.

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates