PokittoLib is the library needed for programming the Pokitto DIY game console (www.pokitto.com)

Dependents:   YATTT sd_map_test cPong SnowDemo ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Synth_osc.h Source File

Synth_osc.h

Go to the documentation of this file.
00001 /**************************************************************************/
00002 /*!
00003     @file     Synth_osc.h
00004     @author   Jonne Valola
00005 
00006     @section LICENSE
00007 
00008     Pokitto development stage library
00009     Software License Agreement
00010 
00011     Copyright (c) 2015, Jonne Valola ("Author")
00012     All rights reserved.
00013 
00014     This library is intended solely for the purpose of Pokitto development.
00015 
00016     Redistribution and use in source and binary forms, with or without
00017     modification requires written permission from Author.
00018 */
00019 /**************************************************************************/
00020 
00021 #ifndef SYNTH_OSC_H
00022 #define SYNTH_OSC_H
00023 
00024 #include "Pokitto.h "
00025 
00026 typedef uint8_t byte;
00027 
00028 struct OSC {
00029   byte on;
00030   byte wave;
00031   byte loop;
00032   byte echo;
00033   byte echodiv;
00034   byte adsr;
00035   byte tonic;
00036 
00037   //uint16_t count;
00038   uint32_t count;
00039 
00040   uint16_t vol;
00041   //uint16_t cinc; // how much to add per cycle
00042   uint32_t cinc; // how much to add per cycle
00043   uint16_t output; // output is stored as  16 bit value and shifted before its put in OCR2B
00044 
00045   uint8_t adsrphase;
00046   uint16_t adsrvol;
00047   uint16_t attack; // Attack change
00048   uint16_t decay; // Attack change
00049   uint16_t sustain; // Attack change
00050   uint16_t release; // Attack change
00051 
00052   int32_t pitchbend;   // bends cycle counter (more is higher pitch)
00053   int32_t maxbend; // maximum bend before stopping
00054   int32_t bendrate; // how much to bend by every cycle
00055 
00056   uint8_t vibrate;
00057   uint8_t arpmode;
00058   uint8_t arpspeed;
00059   uint8_t arpstep;
00060   uint8_t overdrive;
00061   uint8_t kick;
00062 
00063   uint32_t duration;
00064 
00065   uint32_t samplepos;
00066   uint32_t samplestep;
00067   uint32_t samplelength;
00068   uint8_t* sample;
00069   //uint32_t samplebendcount;
00070   //uint32_t samplebendtick;
00071 
00072 };
00073 
00074 
00075 
00076 #endif // SYNTH_OSC_H
00077 
00078