1 #include "mozzi_rand.h"
4 static unsigned long x=132456789, y=362436069, z=521288629;
50 #if defined (__AVR_ATmega644P__)
53 static long longRandom()
55 return ((
long)analogRead(0)+63)*(analogRead(1)+97);
58 #elif defined (__AVR_ATmega2560__)
70 static long longRandom()
74 for (uint8_t i=0; i< 32; i++) rv |= ((analogRead(8)+2294) & 1L) << i;
80 static long longRandom()
84 for (uint8_t i=0; i< 32; i++) rv |= ((analogRead(8)+1171) & 1L) << i;
107 #if defined(__MK20DX128__) || defined(__MK20DX256__) // teensy 3, 3.1
109 ADCSRA &= ~ (1 << ADIE);
118 ADCSRA |= (1 << ADIE);
141 int8_t
rand(int8_t minval, int8_t maxval)
143 return (int8_t) ((((int) (lowByte(
xorshift96()))) * (maxval-minval))>>8) + minval;
153 uint8_t
rand(uint8_t minval, uint8_t maxval)
155 return (uint8_t) ((((
unsigned int) (lowByte(
xorshift96()))) * (maxval-minval))>>8) + minval;
165 int rand(
int minval,
int maxval)
167 return (
int) ((((
xorshift96() & 0xFFFF) * (maxval-minval))>>16) + minval);
177 unsigned int rand(
unsigned int minval,
unsigned int maxval)
179 return (
unsigned int) ((((
xorshift96() & 0xFFFF) * (maxval-minval))>>16) + minval);
190 return (int8_t) ((((int) (lowByte(
xorshift96()))) * maxval)>>8);
201 return (uint8_t) ((((
unsigned int) (lowByte(
xorshift96()))) * maxval)>>8);
212 return (
int) (((
xorshift96() & 0xFFFF) * maxval)>>16);
221 unsigned int rand(
unsigned int maxval)
223 return (
unsigned int) (((
xorshift96() & 0xFFFF) * maxval)>>16);
void xorshiftSeed(long seed)
Initialises Mozzi's (pseudo)random number generator xorshift96() with a chosen seed number...
void randSeed(long seed)
Initialises Mozzi's (pseudo)random number generator xorshift96(), which is used in Mozzi's rand() fun...
unsigned long xorshift96()
Random number generator.
uint8_t randMidiNote()
Generates a random number in the range for midi notes.
int8_t rand(int8_t minval, int8_t maxval)
Ranged random number generator, faster than Arduino's built-in random function, which is too slow for...