Savez-vous ce qu'est un stylophone ?
C'est un instrument de musique électronique miniature à clavier analogique joué avec un stylet.
En fait, c'est un instrument à un seul canal, un piano miniature comme si vous jouiez avec un seul doigt (le stylet).
Le point sur lequel je voulais insister est qu'il n'est pas difficile d'adapter toutes ces tablatures de notes de stylophone à nos productions de jeux oric.
Voici quelques "partitions" (examples : MGMT – Kids, Deep Purple – Smoke on the Water, One Republic – I Ain’t Worried, White Stripes – Seven Nation Army):
Quelques unes :
https://stylophone.com/tabs/
Plus d'une centaine :
https://stylophone.com/s1-tabs/
Voici par exemple ce que l'on peut trouver sur internet en notation Stylophone (google search : "stylophone tabs" ):
Notes longues: – Notes courtes: , Notes "glissées": -> Rasputin, by Boney M 2 – 2 – 6.5, – 6.5, – 6.5, – 6.5– – 6.5 7 – 8 – 7 – 6.5, – 6.5– 3.5 – 4 – 5 – 5 – 5 3.5 – 4 – 5 – 5 – 4 – 3.5 – 2– 6.5, – 6.5, – 6.5, – 6.5, – 6.5, – 6.5- 6.5 – 7 – 8 – 7 – 6.5, – 6.5– 3.5, – 4 – 5 – 5 – 5 3.5, – 4 – 5 – 5 – 4 – 3.5, – 2– 2– – 3.5, – 4– – 5 – 6.5, – 7, – 6.5, – 5, – 4– – 2, 3.5, – 3.5, – 3.5– – 3.5, – 4, – 2, – 2, – 3.5– 2– – 3.5, – 4– – 5 – 6.5, – 7, – 6.5, – 5, – 4– – 2, 3.5– – 5, – 4— – 3.5, – 2— 9 – 9 – 8, – 8, – 8– – 7.5, – 7.5, – 7.5, – 7.5 – 6.5 – 5 – 4.5 8, – 8,– 8, – 7.5 – 7.5– – 6.5, – 6.5, – 5 – 6.5— 9 – 9 – 8, – 8, – 8– – 7.5, – 7.5, – 7.5, – 7.5 – 6.5 – 5 – 4.5 8, – 8, – 8, – 7.5 – 7.5- – 6.5, – 6.5, – 5 – 6.5— Nena – 99 luftballons 6.5 -> 7.5, -> 5– -> 7.5 -> 6.5 -> 5, -> 3.5– 8,-8, – 8 – 8, – 8, -> 7.5 -> 6.5 -> 5– 6.5 -> 7.5, -> 5 -> 7.5– -> 6.5 -> 5, -> 3.5– 8, – 8, – 8, – 8, – 8, -> 7.5 -> 6.5 -> 5– 6.5 -> 7.5, -> 5– -> 7.5 -> 6.5 -> 5, -> 3.5– 3.5, -> 5, -> 3.5, -> 5, -> 8, – 8 -> 7.5 -> 6.5 -> 5 6.5 -> 7.5 -> 5 -> 7.5 -> 6.5 -> 5 -> 3.5– 8,-8, – 8,-8, – 8, – 8 -> 7.5 -> 6.5– Black Sabbath - Iron Man 2,4,4-5,5,7-6.5,7-6.5,7-6.5,4-5,5
Pour faire glisser le "stylet" d'une note à l'autre sur l'Oric, en Basic, il faut jouer avec la modification de fréquence, en utilisant la commande SOUND avec une boucle de la fréquence A à la fréquence B, au lieu de la commande PLAY.
Voici un tableau de correspondance des notes/fréquencies sur Oric
https://ceo.oric.org/wp-content/uploads/2020/05/Note-Frequence-periode.pdf
A vos claviers !!!
Yes, merci beaucoup Chloé pour cette analyse. De quoi danser sous les feux de la rampe 🙂
Je ne connaissait pas le stylophone. 🤔 😎 Merci a Ladywasky pour cette info. 😉
Et pourquoi pas créer un Thérémin avec un Oric? 🤪
Rétro-Engineering du Stylophone :
https://www.waitingforfriday.com/?p=334 ... tely%207Hz.
P'tit tableau :
Mini exemple de comment faire et très loin d'ètre parfait (en C pour OSDK) :
#include <lib.h> //frequencies #define A1 568 //1 #define As1 536 //1.5 #define B1 506 //2 #define C1 477 //3 #define Cs1 450 //3.5 #define D1 425 //4 #define Ds1 401 //4.5 #define E1 379 //5 #define F1 357 //6 #define Fs1 337 //6.5 #define G1 318 //7 #define Gs1 300 //7.5 #define A2 284 //8 #define As2 268 //8.5 #define B2 253 //9 #define C2 238 //10 #define Cs2 225 //10.5 #define D2 212 //11 #define Ds2 200 //11.5 #define E2 189 //12 #define decaloctave 2 #define dSHORT 20 #define dNORM 40 #define dLONG 80 typedef struct _notes {int key,dur,slide;} notes; notes MGMT_Kids[10]={{A1,dNORM,0},{B1,dNORM,0},{Cs1,dNORM,0},{E1,dNORM,0}, {Fs1,dSHORT,1},{Gs1,dSHORT,1},{Fs1,dNORM,0}, {E1,dNORM,0},{Cs1,dNORM*2,0},{B1,dLONG*2,0}}; char n=0; int do_slide=0, oldnote,newnote; char j,step; void main() { setflags(SCREEN+NOKEYCLICK); for (n=0;n<10;n++){ newnote=MGMT_Kids[n].key>>decaloctave; if(do_slide==1){ do { if (newnote > oldnote) {oldnote++;} else {oldnote--;} sound(1,oldnote,15); } while (newnote!=oldnote) ; } else { play(1,0,0,15); sound(1,newnote,15); } oldnote=newnote; do_slide=MGMT_Kids[n].slide; wait(MGMT_Kids[n].dur); if (do_slide==0) play(0,0,0,0); } } void wait(unsigned int wait_cs) { //we use TIMER3 at adress #276-#277 doke(0x0276,wait_cs); while ( deek(0x0276)>0){}; }
Le début de Dr Who 🙂
#include <lib.h> //frequencies #define A1 568 //1 #define As1 536 //1.5 #define B1 506 //2 #define C1 477 //3 #define Cs1 450 //3.5 #define D1 425 //4 #define Ds1 401 //4.5 #define E1 379 //5 #define F1 357 //6 #define Fs1 337 //6.5 #define G1 318 //7 #define Gs1 300 //7.5 #define A2 284 //8 #define As2 268 //8.5 #define B2 253 //9 #define C2 238 //10 #define Cs2 225 //10.5 #define D2 212 //11 #define Ds2 200 //11.5 #define E2 189 //12 #define decaloctave 2 #define dSHORT 20 #define dNORM 40 #define dLONG 80 #define NumNotes 13 typedef struct _notes {int key,dur,slide;} notes; //10-9 11 9 9 7 2 4 3-2 1-2 notes DrWho[NumNotes]={{B1,dNORM,1},{C2,dNORM,1},{B2,dNORM*6,0}, {D1,dNORM,1}, {A1,dNORM,1},{B1,dNORM*8,0}, {B2,dNORM,1},{G1,dNORM,1},{B1,dNORM,0},{B1,10,1},{D1,dNORM,1},{C1,10,1},{B1,dNORM*6,0}}; char n=0; int do_slide=0, oldnote,newnote; char j,step; void main() { setflags(SCREEN+NOKEYCLICK); for (n=0;n<NumNotes;n++){ newnote=DrWho[n].key>>decaloctave; if(do_slide==1){ do { if (newnote > oldnote) {oldnote++;} else {oldnote--;} sound(1,oldnote,15); } while (newnote!=oldnote) ; } else { play(1,0,0,15); sound(1,newnote,15); } oldnote=newnote; do_slide=DrWho[n].slide; wait(DrWho[n].dur); if (do_slide==0) play(0,0,0,0); } play(0,0,0,0); } void wait(unsigned int wait_cs) { //we use TIMER3 at adress #276-#277 doke(0x0276,wait_cs); while ( deek(0x0276)>0){}; }