User:Lieven Van Speybroeck/Prototyping/3-Clapping Music in C: Difference between revisions
No edit summary |
No edit summary |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
''' | '''PROTOTYPING SESSION 02/11/2010:''' | ||
To prepare for some C scripting, some basic instructions are welcome...: | |||
<source lang="C"> | |||
#include "stdio.h" // include a core library that is needed for compiling your code | |||
#include "string.h" // include a library for basic string functions | |||
// 2 sorts of variables: | |||
// char -> character variable | |||
// int -> number variable | |||
int i = 65; | |||
char i2 = 'A'; | |||
char name[]="Lieven"; // define a variable that is a string/array ( [] ) of characters (char). Each character in the string can be interpreted as a seperate element of an array | |||
int main () { // defining the 'main' function - standard/mandatory for every C program | |||
i = 1; | |||
while (i < 100) { | |||
printf("hello world %d\n", i); //'%d' -> 'paste a number', followed by a variable to be pasted as number at the position of %d (ASCII numvalues for characters) | |||
printf("hello world %c\n", i); //'%c' -> 'paste a character', followed by a variable to be pasted as a character at the position of %c (ASCII charvalues for numbers) | |||
printf("%s\n", name); //'%s' -> 'paste a string', followed by a variable to be pasted as a string at the position of %s | |||
printf("%c\n", name[3]); // -> paste the character at position '3' (4th letter) of the string that is inside the variable 'name' | |||
i = i + 1; | |||
} | |||
} | |||
// to run this code in terminal: | |||
// ~$ gcc filename_of_script.c -o filename | |||
// ~$ ./filename | |||
// debugger for C in GNU environment: DDD | |||
// to debug your program: | |||
// ~$ gcc -g filename_of_script.c -o filename | |||
// ~$ ddd filename | |||
// -> then set a breakpoint in your code where you want to start checking/debugging | |||
</source> | |||
'''Then, use this knowledge to create Clapping Music in C''' | |||
So how to "print" the Clapping Music in Terminal with a C script: | So how to "print" the Clapping Music in Terminal with a C script: | ||
Line 7: | Line 49: | ||
#include "string.h" | #include "string.h" | ||
char pat[]="xxx xx x xx "; | char pat[]="xxx xx x xx "; // the pattern we'll be working with: a string of characters | ||
int pointer = 0; | int pointer = 0; | ||
int shift = 0; | int shift = 0; | ||
Line 17: | Line 59: | ||
while (pointer < strlen(pat)) { // go through the pattern and print the letter of the position of the pointer | while (pointer < strlen(pat)) { // go through the pattern and print the letter of the position of the pointer | ||
printf("%c", pat[pointer]); // 1 pattern stays the same every time | printf("%c", pat[pointer]); // 1 pattern stays the same every time | ||
printf("%c\n", pat[(pointer+shift) % strlen(pat)]); / | printf("%c\n", pat[(pointer+shift) % strlen(pat)]); | ||
// use modulo operator to check when the "shift" is equal to the length of the string, if so, | |||
// go back to 0 so the shift doesn't exceed the amount of characters of the string | |||
// this also makes it possible to play the score 1 more time without the shift at the end */ | |||
pointer++; // move the pointer 1 position | pointer++; // move the pointer 1 position | ||
} | } | ||
Line 23: | Line 68: | ||
repeat++; // add up 1 to the repetition counter | repeat++; // add up 1 to the repetition counter | ||
} | } | ||
printf ("SHIFT!\n"); // show where the pattern actually shifts after each chunk of repetitions | |||
repeat = 0; // reset the repeat | repeat = 0; // reset the repeat | ||
shift++; // add up 1 to the shift counter | shift++; // add up 1 to the shift counter | ||
Line 176: | Line 222: | ||
xx | xx | ||
SHIFT! | |||
xx | xx | ||
xx | xx | ||
Line 320: | Line 367: | ||
x | x | ||
x | x | ||
SHIFT! | |||
xx | xx | ||
x | x | ||
Line 464: | Line 512: | ||
xx | xx | ||
x | x | ||
SHIFT! | |||
x | x | ||
xx | xx | ||
Line 608: | Line 657: | ||
xx | xx | ||
x | x | ||
SHIFT! | |||
xx | xx | ||
xx | xx | ||
Line 752: | Line 802: | ||
xx | xx | ||
SHIFT! | |||
xx | xx | ||
x | x | ||
Line 896: | Line 947: | ||
x | x | ||
x | x | ||
SHIFT! | |||
x | x | ||
xx | xx | ||
Line 1,040: | Line 1,092: | ||
xx | xx | ||
x | x | ||
SHIFT! | |||
xx | xx | ||
x | x | ||
Line 1,184: | Line 1,237: | ||
xx | xx | ||
SHIFT! | |||
x | x | ||
xx | xx | ||
Line 1,328: | Line 1,382: | ||
x | x | ||
x | x | ||
SHIFT! | |||
xx | xx | ||
xx | xx | ||
Line 1,472: | Line 1,527: | ||
xx | xx | ||
SHIFT! | |||
xx | xx | ||
x | x | ||
Line 1,616: | Line 1,672: | ||
x | x | ||
x | x | ||
SHIFT! | |||
x | x | ||
xx | xx | ||
Line 1,760: | Line 1,817: | ||
xx | xx | ||
x | x | ||
SHIFT! | |||
xx | xx | ||
xx | xx | ||
Line 1,903: | Line 1,961: | ||
xx | xx | ||
xx | xx | ||
</source> | </source> |
Latest revision as of 21:05, 6 November 2010
PROTOTYPING SESSION 02/11/2010:
To prepare for some C scripting, some basic instructions are welcome...:
#include "stdio.h" // include a core library that is needed for compiling your code
#include "string.h" // include a library for basic string functions
// 2 sorts of variables:
// char -> character variable
// int -> number variable
int i = 65;
char i2 = 'A';
char name[]="Lieven"; // define a variable that is a string/array ( [] ) of characters (char). Each character in the string can be interpreted as a seperate element of an array
int main () { // defining the 'main' function - standard/mandatory for every C program
i = 1;
while (i < 100) {
printf("hello world %d\n", i); //'%d' -> 'paste a number', followed by a variable to be pasted as number at the position of %d (ASCII numvalues for characters)
printf("hello world %c\n", i); //'%c' -> 'paste a character', followed by a variable to be pasted as a character at the position of %c (ASCII charvalues for numbers)
printf("%s\n", name); //'%s' -> 'paste a string', followed by a variable to be pasted as a string at the position of %s
printf("%c\n", name[3]); // -> paste the character at position '3' (4th letter) of the string that is inside the variable 'name'
i = i + 1;
}
}
// to run this code in terminal:
// ~$ gcc filename_of_script.c -o filename
// ~$ ./filename
// debugger for C in GNU environment: DDD
// to debug your program:
// ~$ gcc -g filename_of_script.c -o filename
// ~$ ddd filename
// -> then set a breakpoint in your code where you want to start checking/debugging
Then, use this knowledge to create Clapping Music in C
So how to "print" the Clapping Music in Terminal with a C script:
#include "stdio.h"
#include "string.h"
char pat[]="xxx xx x xx "; // the pattern we'll be working with: a string of characters
int pointer = 0;
int shift = 0;
int repeat = 0;
int main() {
while (shift <= strlen(pat)) { // play the whole score + play the first part 1 more time
while (repeat < strlen(pat)) { // repeat each block 12 times before there's a shift
while (pointer < strlen(pat)) { // go through the pattern and print the letter of the position of the pointer
printf("%c", pat[pointer]); // 1 pattern stays the same every time
printf("%c\n", pat[(pointer+shift) % strlen(pat)]);
// use modulo operator to check when the "shift" is equal to the length of the string, if so,
// go back to 0 so the shift doesn't exceed the amount of characters of the string
// this also makes it possible to play the score 1 more time without the shift at the end */
pointer++; // move the pointer 1 position
}
pointer = 0; // reset the pointer position
repeat++; // add up 1 to the repetition counter
}
printf ("SHIFT!\n"); // show where the pattern actually shifts after each chunk of repetitions
repeat = 0; // reset the repeat
shift++; // add up 1 to the shift counter
}
}
if executed in the terminal, this would be the output:
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
SHIFT!
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
SHIFT!
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
SHIFT!
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
SHIFT!
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
SHIFT!
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
SHIFT!
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
x
xx
x
SHIFT!
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
xx
x
xx
x
x
xx
x
xx
xx
xx
SHIFT!
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
x
xx
xx
xx
xx
x
x
x
xx
x
x
SHIFT!
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
xx
xx
x
x
xx
SHIFT!
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
xx
x
xx
x
xx
x
x
xx
xx
x
x
SHIFT!
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
x
xx
xx
x
x
xx
x
x
x
x
xx
x
SHIFT!
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx