bunch of musics and jingles to adapt (for games)

This forum is about audio tools, including samplers, sound trackers, sound chip editors, how to do sound effects, etc...
User avatar
waskol
Flight Lieutenant
Posts: 422
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

bunch of musics and jingles to adapt (for games)

Post by waskol »

Do you know what is a stylophone ?
It is a miniature analog electronic keyboard musical instrument played with a stylus.


Basically, it is a one chanel only instrument, a miniature piano like you play with only one finger (the stylus).
notes.jpg
The point I wanted to focus on is that it is not difficult to adapt all those stylophone note tabs to our oric games productions.
Here are some "score sheets" (examples : MGMT – Kids, Deep Purple – Smoke on the Water, One Republic – I Ain’t Worried, White Stripes – Seven Nation Army):

A few ones :
https://stylophone.com/tabs/

Hundreds more :
https://stylophone.com/s1-tabs/

Here is for instance what we can find on internet in Stylophone notation (google search : "stylophone tabs" ):

Code: Select all

Longer Notes: –
Shorter Notes: , 
Drag Notes: ->
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

In order to drag the "stylus" from one note to the other on the Oric, in Basic, one has to play with modification of frequency, using the SOUND command with a loop from frequency A to frequency B, instead of the PLAY command.

Here a correspondance array of notes <--> frequencies on Oric
https://ceo.oric.org/wp-content/uploads ... eriode.pdf

To your keyboards !!!
User avatar
ibisum
Wing Commander
Posts: 1807
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: bunch of musics and jingles to adapt (for games)

Post by ibisum »

Oooh, this is very nice, I will maybe add a very quick parser to my Oric SOUNDTOY project with this in mind, pretty soon ..
User avatar
waskol
Flight Lieutenant
Posts: 422
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

Re: bunch of musics and jingles to adapt (for games)

Post by waskol »

ibisum wrote: Mon Oct 21, 2024 6:48 pm Oooh, this is very nice, I will maybe add a very quick parser to my Oric SOUNDTOY project with this in mind, pretty soon ..
Oh yes !!! I knew that someone would have time to do something with it ;)
Go for it boy !
User avatar
waskol
Flight Lieutenant
Posts: 422
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

Re: bunch of musics and jingles to adapt (for games)

Post by waskol »

ImageFound here, Reverse Engineering the Stylophone (frequencies and envelopes) :
https://www.waitingforfriday.com/?p=334 ... tely%207Hz.

"Attack Rate
The combination of the diode (D1) and the capacitor (C4) control the ‘attack’ rate of the sound output. When a note is first ‘pressed’ the capacitor (C4) starts charging. This causes the volume level to gradually increase rather than just going from nothing to full volume.

In the ‘treble’ version of the Stylophone C4 is 47nF rather than 100nF which causes a faster attack rate."
I suppose that the corresponding enveloppe is the Enveloppe number 7 for PLAY (#0D for the PSG)

Code: Select all

Stylophone Note	Note	Freq	MUSIC Octave	MUSIC Note	SOUND period value
1	A	110	1	10	568
1,5	A#		1	11	536
2	B		1	12	506
3	C		2	1	477
3,5	C#		2	2	450
4	D		2	3	425
4,5	D#		2	4	401
5	E		2	5	379
6	F		2	6	357
6,5	F#		2	7	337
7	G		2	8	318
7,5	G#		2	9	300
8	A	220	2	10	284
8,5	A#		2	11	268
9	B		2	12	253
10	C		3	1	238
10,5	C#		3	2	225
11	D		3	3	212
11,5	D#		3	4	200
12	E		3	5	189
User avatar
waskol
Flight Lieutenant
Posts: 422
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

Re: bunch of musics and jingles to adapt (for games)

Post by waskol »

MGMT Kids, adapted from Stylophone Tabs :

Code: Select all

#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){};
}
Post Reply