OSCtoCV Library

Dependents:   OSCtoCVConverter

Committer:
casiotone401
Date:
Thu Feb 25 11:21:37 2016 +0000
Revision:
6:7fb15b1b5459
Parent:
4:fe335dc8d53d
minor change

Who changed what in which revision?

UserRevisionLine numberNew contents of line
casiotone401 0:cd43a974c54c 1 /*
casiotone401 0:cd43a974c54c 2 OSCtoCV Euclidean Sequencer
casiotone401 0:cd43a974c54c 3 */
casiotone401 0:cd43a974c54c 4
casiotone401 0:cd43a974c54c 5 #pragma O3
casiotone401 0:cd43a974c54c 6 #pragma Otime
casiotone401 0:cd43a974c54c 7
casiotone401 0:cd43a974c54c 8 #ifndef OSCtoCV_EUCLIDEAN_H
casiotone401 0:cd43a974c54c 9 #define OSCtoCV_EUCLIDEAN_H
casiotone401 0:cd43a974c54c 10
casiotone401 0:cd43a974c54c 11 #include "mbed.h"
casiotone401 0:cd43a974c54c 12 #include "OSCtoCV.h"
casiotone401 0:cd43a974c54c 13
casiotone401 0:cd43a974c54c 14 //-------------------------------------------------------------
casiotone401 0:cd43a974c54c 15 // Euclidean Sequencer Functions
casiotone401 0:cd43a974c54c 16
casiotone401 4:fe335dc8d53d 17 // Euclidean Sequencer return triggerState
casiotone401 2:9fa7540890c9 18 unsigned int EuclideanSeq(int trigger, bool reset, bool gatesoff, bool auto_offset);
casiotone401 0:cd43a974c54c 19
casiotone401 0:cd43a974c54c 20 // Init Euclidean Sequencer
casiotone401 0:cd43a974c54c 21 void InitEuclideanSeq(void);
casiotone401 0:cd43a974c54c 22
casiotone401 0:cd43a974c54c 23 // Euclid calculation function
casiotone401 2:9fa7540890c9 24 inline unsigned int Euclid(int n, int k, int o);
casiotone401 0:cd43a974c54c 25
casiotone401 0:cd43a974c54c 26 // Reads a bit of a number
casiotone401 0:cd43a974c54c 27 inline int BitRead(uint16_t b, int bitPos);
casiotone401 0:cd43a974c54c 28
casiotone401 0:cd43a974c54c 29 // Function to right rotate n by d bits
casiotone401 0:cd43a974c54c 30 inline uint16_t BitReadOffset(int shift, uint16_t value, uint16_t pattern_length);
casiotone401 0:cd43a974c54c 31
casiotone401 0:cd43a974c54c 32 // Function to find the binary length of a number by counting bitwise
casiotone401 0:cd43a974c54c 33 inline int findlength(unsigned int bnry);
casiotone401 0:cd43a974c54c 34
casiotone401 0:cd43a974c54c 35 // Function to concatenate two binary numbers bitwise
casiotone401 0:cd43a974c54c 36 inline unsigned int ConcatBin(unsigned int bina, unsigned int binb);
casiotone401 0:cd43a974c54c 37
casiotone401 0:cd43a974c54c 38 // routine triggered by each beat
casiotone401 2:9fa7540890c9 39 inline void Sync(int active_channel, bool gatesoff);
casiotone401 0:cd43a974c54c 40
casiotone401 0:cd43a974c54c 41 /* 3 functions to read each encoder
casiotone401 0:cd43a974c54c 42 returns +1, 0 or -1 dependent on direction
casiotone401 0:cd43a974c54c 43 Contains no internal debounce, so calls should be delayed
casiotone401 0:cd43a974c54c 44 */
casiotone401 0:cd43a974c54c 45
casiotone401 0:cd43a974c54c 46 // Check Euclidean Seq N(length) Value
casiotone401 0:cd43a974c54c 47 inline int EncodeReadN(int ch);
casiotone401 0:cd43a974c54c 48 inline int EncodeReadK(int ch);
casiotone401 0:cd43a974c54c 49 inline int EncodeReadO(int ch);
casiotone401 0:cd43a974c54c 50
casiotone401 0:cd43a974c54c 51 #endif