OSCtoCV Library
OSCtoCV_Euclidean.h@1:981b62bb5c87, 2016-01-28 (annotated)
- Committer:
- casiotone401
- Date:
- Thu Jan 28 11:39:47 2016 +0000
- Revision:
- 1:981b62bb5c87
- Parent:
- 0:cd43a974c54c
- Child:
- 2:9fa7540890c9
added Beats Seq
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 | 0:cd43a974c54c | 17 | // Euclidean Sequencer |
casiotone401 | 1:981b62bb5c87 | 18 | void 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 | 0:cd43a974c54c | 24 | 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 | 0:cd43a974c54c | 39 | 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 |