bassline v1

This commit is contained in:
Joachim Fenkes 2012-07-31 23:16:33 +02:00
parent f84d738b2a
commit 8105e4c333

View file

@ -19,13 +19,24 @@ static inline unsigned char voice_arp(unsigned long i)
return (((i << 1) / (notes[arpeggio[arpseq[(i >> 13) & 7]][(i >> 8) & 3]] >> 2)) & 1) << 7;
}
int notes2[25] = { 134, 142, 150, 159, 169, 179, 189, 201, 213, 225, 239, 253, 268, 284, 301, 319, 338, 358, 379, 401, 425, 451, 477, 506, 536 };
int bassbeat[8] = { 0, 0, 1, 0, 0, 1, 0, 1 };
int bassline[8] = { 12, 12, 15, 10, 12, 12, 17, 10 };
static inline unsigned char voice_bass(unsigned long i)
{
int note = notes2[bassline[(i >> 13) & 7]];
int beat = bassbeat[(i >> 10) & 7] ? 7 : 8;
return (((i * note) >> beat) & 0x7F) + (((i * note + i) >> beat) & 0x7F);
}
void fill(char *data)
{
static unsigned long i = 0;
for (int j = 0; j < 4096; j++)
{
data[j] = voice_arp(i);
data[j] = voice_bass(i);
i++;
}
}