OSCtoCV Library
OSCtoCV_Euclidean.h@6:7fb15b1b5459, 2016-02-25 (annotated)
- 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?
User | Revision | Line number | New 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 |