The dsp-L8 Latin Perc Chip Source code

The source code to the dsp-L8 Latin Percussions chip is now avaliable for download.

dsp-L8

L8sch

The code runs unmodified on any Arduino Uno/Nano or on a standalone ATmega with 32Kb or more flash.

You can still buy the preprogrammed chip for $20

Order the preprogrammed dsp-L8 chip

The code is free for non commercial use and if you find it useful, please consider a $3 donation.

Donate $3

Source code:

Download the dsp-L8 Source

 

// dsp-L8 Latin Perc Chip (c) DSP Synthesizers 2015
// Free for non commercial use
// Please consider a donation of $3 if you find this code useful

#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

// Standard Arduino Pins
#define digitalPinToPortReg(P) \
(((P) >= 0 && (P) <= 7) ? &PORTD : (((P) >= 8 && (P) <= 13) ? &PORTB : &PORTC))
#define digitalPinToDDRReg(P) \
(((P) >= 0 && (P) <= 7) ? &DDRD : (((P) >= 8 && (P) <= 13) ? &DDRB : &DDRC))
#define digitalPinToPINReg(P) \
(((P) >= 0 && (P) <= 7) ? &PIND : (((P) >= 8 && (P) <= 13) ? &PINB : &PINC))
#define digitalPinToBit(P) \
(((P) >= 0 && (P) <= 7) ? (P) : (((P) >= 8 && (P) <= 13) ? (P) – 8 : (P) – 14))

#define digitalReadFast(P) bitRead(*digitalPinToPINReg(P), digitalPinToBit(P))

#define digitalWriteFast(P, V) bitWrite(*digitalPinToPortReg(P), digitalPinToBit(P), (V))

const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
//——— Ringbuf parameters ———-
uint8_t Ringbuffer[256];
uint8_t RingWrite=0;
uint8_t RingRead=0;
volatile uint8_t RingCount=0;
volatile uint16_t SFREQ;
//—————————————–

 

6 Responses to “The dsp-L8 Latin Perc Chip Source code”

  1. Jon Pyre Says:

    Thanks for open sourcing this, What are you using to convert your sounds into hex?

  2. pierre Says:

    thanks for sharing, but a pdf to share code isn’t the best format… lot of wrong “return” to remove manually before being able to run the code.
    Why not putting a simple .ino file?

  3. Levi Says:

    So this is source code for an Arduino?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: