some tuning...
This commit is contained in:
		
							parent
							
								
									655a528192
								
							
						
					
					
						commit
						f804d2c7ab
					
				
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							| @ -2,10 +2,10 @@ | |||||||
| 
 | 
 | ||||||
| # umpf...
 | # umpf...
 | ||||||
| 
 | 
 | ||||||
| OPTS = -Wall -g -DDEBUG_LEVEL=1 | OPTS = -Wall -g -DDEBUG_LEVEL=0 | ||||||
| DEPS = Makefile | DEPS = Makefile | ||||||
| 
 | 
 | ||||||
| all:	osc-joy osc2cursor text2osc | all:	osc-joy osc2cursor text2osc showbuttons | ||||||
| 
 | 
 | ||||||
| # --------------------------------------------------------------
 | # --------------------------------------------------------------
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							| @ -2,6 +2,10 @@ | |||||||
| 
 | 
 | ||||||
| Oui, je sais, tout ça n'est pas vraiment clair. Mais je me soigne. | Oui, je sais, tout ça n'est pas vraiment clair. Mais je me soigne. | ||||||
| 
 | 
 | ||||||
|  | Première étape : consulter le | ||||||
|  | [site d'OSC](https://opensoundcontrol.stanford.edu/) pour comprendre comment | ||||||
|  | ça fonctionne. | ||||||
|  | 
 | ||||||
| ## prérequis | ## prérequis | ||||||
| 
 | 
 | ||||||
| Première étape avant de générer les binaires, installer quelques | Première étape avant de générer les binaires, installer quelques | ||||||
| @ -28,7 +32,7 @@ Et ensuite `make` dans le répertoire de base... | |||||||
| 
 | 
 | ||||||
| ## osc-joy | ## osc-joy | ||||||
| 
 | 
 | ||||||
| Lecture d'une manette de jeu USB et envoi des x/y et des boutons | Lecture d'une manette de jeu USB et envoi des coordonnées x/y et des boutons | ||||||
| vers un écouteur OSC. | vers un écouteur OSC. | ||||||
| 
 | 
 | ||||||
| L'option `-o NN` rajoute NN au numéro de bouton. | L'option `-o NN` rajoute NN au numéro de bouton. | ||||||
| @ -42,6 +46,10 @@ Une appli ncurses trop choupie :) | |||||||
| 
 | 
 | ||||||
| Pour faire __beep__ vers Chuck... | Pour faire __beep__ vers Chuck... | ||||||
| 
 | 
 | ||||||
|  | ## showbuttons | ||||||
|  | 
 | ||||||
|  | Presque fini depuis quelques mois. | ||||||
|  | 
 | ||||||
| # Le reste | # Le reste | ||||||
| 
 | 
 | ||||||
| ## Loth Project | ## Loth Project | ||||||
|  | |||||||
| @ -1,4 +1,5 @@ | |||||||
| /* faire pouet avec chuck osc et un joystick | /* | ||||||
|  |    faire pouet avec chuck osc et un joystick | ||||||
|    ----------------------------------------- |    ----------------------------------------- | ||||||
| 		reception des boutons | 		reception des boutons | ||||||
| */ | */ | ||||||
| @ -9,7 +10,7 @@ SqrOsc sl 	=> Envelope envl =>	dac.left; | |||||||
| SawOsc sr 	=> Envelope envr =>	dac.right; | SawOsc sr 	=> Envelope envr =>	dac.right; | ||||||
| 0.5		=> sl.gain => sr.gain; | 0.5		=> sl.gain => sr.gain; | ||||||
| 
 | 
 | ||||||
| 0.01 => envl.time;	0.04 => envr.time; | 0.22 => envl.time;	0.22 => envr.time; | ||||||
| 
 | 
 | ||||||
| OscIn	oscin;		OscMsg	msg; | OscIn	oscin;		OscMsg	msg; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| 7777		=>  int  InPort; | 7777		=>  int  InPort; | ||||||
| 
 | 15.55		=>  float divisor; | ||||||
| SqrOsc sl 	=>  dac.left; | SqrOsc sl 	=>  dac.left; | ||||||
| SawOsc sr 	=>  dac.right; | SawOsc sr 	=>  dac.right; | ||||||
| 0.0		=>  sl.gain => sr.gain; | 0.0		=>  sl.gain => sr.gain; | ||||||
| @ -27,8 +27,8 @@ while( true ) { | |||||||
| 		msg.getInt(0) => x; | 		msg.getInt(0) => x; | ||||||
| 		msg.getInt(1) => y; | 		msg.getInt(1) => y; | ||||||
| 		<<< "got (via ", InPort,")  ", x, y >>>; | 		<<< "got (via ", InPort,")  ", x, y >>>; | ||||||
| 		x => sl.freq; | 		x/12.0 => sl.freq; | ||||||
| 		y => sr.freq; | 		y/12.0 => sr.freq; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -24,7 +24,10 @@ | |||||||
| \section{Open Sound Control} | \section{Open Sound Control} | ||||||
| 
 | 
 | ||||||
| De quoi parle-t-on exactement ? | De quoi parle-t-on exactement ? | ||||||
| \vspace{1em} | \vspace{5em} | ||||||
|  | OSC est un protocole réseau basé sur UDP\index{UDP}. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| % ------------------------------------------------------------------- | % ------------------------------------------------------------------- | ||||||
| \section{Example} | \section{Example} | ||||||
|  | |||||||
| @ -68,7 +68,7 @@ return 0;		/* this is not a magic number */ | |||||||
| int blast_error_message(char *txt, int violence, int unused) | int blast_error_message(char *txt, int violence, int unused) | ||||||
| { | { | ||||||
| int		line, foo; | int		line, foo; | ||||||
| char		buff[60]; | char		buff[80]; | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL | #if DEBUG_LEVEL | ||||||
| fprintf(stderr, "--> %s ( '%s'  %d %d )\n", __func__, | fprintf(stderr, "--> %s ( '%s'  %d %d )\n", __func__, | ||||||
| @ -82,20 +82,36 @@ if (verbosity > 3) { | |||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| standout(); | standout(); | ||||||
| 
 | // setup our part of screen
 | ||||||
| // clear our part of screen
 |  | ||||||
| for (foo=0; foo<COLS; foo++) { | for (foo=0; foo<COLS; foo++) { | ||||||
| 	mvaddch(line, foo, '_'); | 	mvaddch(line, foo, '|'); | ||||||
| 	} | 	} | ||||||
| 
 | mvaddstr(line,  0, "SYS$MSG_| "); | ||||||
| mvaddstr(line, 0, "SYS$MSG_ "); | mvaddstr(line, 10, txt); | ||||||
| mvaddstr(line, 9, txt); |  | ||||||
| standend(); | standend(); | ||||||
|  | refresh(); | ||||||
| 
 | 
 | ||||||
| return 0; | return 0; | ||||||
| } | } | ||||||
| /* ----------------------------------------------------------------- */ | /* ----------------------------------------------------------------- */ | ||||||
|  | int erase_error_message(int ascii) | ||||||
|  | { | ||||||
|  | int		foo; | ||||||
| 
 | 
 | ||||||
|  | #if DEBUG_LEVEL | ||||||
|  | fprintf(stderr, "--> %s ( '%c' )\n", __func__, ascii); | ||||||
|  | #endif  | ||||||
|  | 
 | ||||||
|  | standout(); | ||||||
|  | // clear our part of screen
 | ||||||
|  | for (foo=0; foo<COLS; foo++) { | ||||||
|  | 	mvaddch(LINES-1, foo, ascii); | ||||||
|  | 	} | ||||||
|  | standend();	refresh(); | ||||||
|  | 
 | ||||||
|  | return 0; | ||||||
|  | } | ||||||
|  | /* ----------------------------------------------------------------- */ | ||||||
| /* warning: only use the bit 0 of the 'state' arg */ | /* warning: only use the bit 0 of the 'state' arg */ | ||||||
| 
 | 
 | ||||||
| int draw_a_button(WINDOW *w, int lig, int col, char *txt, int state) | int draw_a_button(WINDOW *w, int lig, int col, char *txt, int state) | ||||||
|  | |||||||
| @ -9,6 +9,7 @@ void endcurses(int p); | |||||||
| 
 | 
 | ||||||
| int draw_main_screen(char *title, int unused); | int draw_main_screen(char *title, int unused); | ||||||
| int blast_error_message(char *txt, int violence, int unused); | int blast_error_message(char *txt, int violence, int unused); | ||||||
|  | int erase_error_message(int ascii); | ||||||
| 
 | 
 | ||||||
| /* warning: only use the bit 0 of the 'state' arg */ | /* warning: only use the bit 0 of the 'state' arg */ | ||||||
| int draw_a_button(WINDOW *w, int lig, int col, char *txt, int state); | int draw_a_button(WINDOW *w, int lig, int col, char *txt, int state); | ||||||
|  | |||||||
| @ -111,7 +111,6 @@ for (;;) { | |||||||
| 		fprintf(stderr, "err reading joy\n"); | 		fprintf(stderr, "err reading joy\n"); | ||||||
| 		exit(1); | 		exit(1); | ||||||
| 		} | 		} | ||||||
| 
 |  | ||||||
| 	/* calibration datas ignored */ | 	/* calibration datas ignored */ | ||||||
| 	if (js.type > 128)	continue; | 	if (js.type > 128)	continue; | ||||||
| 
 | 
 | ||||||
| @ -119,11 +118,9 @@ for (;;) { | |||||||
| 		fprintf(stderr, "%10u  %2d  %2d %7d\n", | 		fprintf(stderr, "%10u  %2d  %2d %7d\n", | ||||||
| 			js.time, js.type, js.number, js.value); | 			js.time, js.type, js.number, js.value); | ||||||
| 		} | 		} | ||||||
| 			 |  | ||||||
| 	if (2==js.type)	{		/* oscillating stick */ | 	if (2==js.type)	{		/* oscillating stick */ | ||||||
| 		flag = 0; | 		flag = 0; | ||||||
| 		switch (js.number) | 		switch (js.number) { | ||||||
| 			{ |  | ||||||
| 			case 0: | 			case 0: | ||||||
| 				x_pos = js.value; | 				x_pos = js.value; | ||||||
| 				flag = 1; | 				flag = 1; | ||||||
| @ -133,7 +130,6 @@ for (;;) { | |||||||
| 				flag = 1; | 				flag = 1; | ||||||
| 				break; | 				break; | ||||||
| 			} | 			} | ||||||
| 				 |  | ||||||
| 		if (flag) { | 		if (flag) { | ||||||
| 			foo = send_data_xy(t, x_pos, y_pos); | 			foo = send_data_xy(t, x_pos, y_pos); | ||||||
| 			flag = 0; | 			flag = 0; | ||||||
| @ -144,7 +140,6 @@ for (;;) { | |||||||
| 		foo = send_data_button(t, js.number+button_offset, | 		foo = send_data_button(t, js.number+button_offset, | ||||||
| 						 js.value); | 						 js.value); | ||||||
| 		} | 		} | ||||||
| 		 |  | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| return 0; | return 0; | ||||||
|  | |||||||
| @ -294,9 +294,14 @@ lo_server_thread_add_method(st, "/joystick/xy", "ii", | |||||||
| 				xy_handler, NULL); | 				xy_handler, NULL); | ||||||
| lo_server_thread_start(st); | lo_server_thread_start(st); | ||||||
| 
 | 
 | ||||||
|  | #if DEBUG_LEVEL | ||||||
|  | fprintf(stderr, "pid %d:   osc server thread started\n", getpid()); | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| sprintf(ligne, "process %d on board, captain ", getpid()); | sprintf(ligne, "process %d on board, captain ", getpid()); | ||||||
| blast_error_message(ligne, 0, 0); | blast_error_message(ligne, 0, 0); | ||||||
| sleep(1); | sleep(1); | ||||||
|  | erase_error_message('-'); | ||||||
| 
 | 
 | ||||||
| for (;;) { | for (;;) { | ||||||
| 	/* wait for un event from liblo threads */ | 	/* wait for un event from liblo threads */ | ||||||
|  | |||||||
| @ -79,12 +79,15 @@ do	{ | |||||||
| 	if (verbosity) { | 	if (verbosity) { | ||||||
| 		gettimeofday(&tp, NULL); | 		gettimeofday(&tp, NULL); | ||||||
| 		curtime = tp.tv_sec + tp.tv_usec / 1e6; | 		curtime = tp.tv_sec + tp.tv_usec / 1e6; | ||||||
| 		printf("----+ %4ld %5d b    ts: %.3f\n", | 		printf("----+ frame %4ld %5d bytes    t= %.3f sec.\n", | ||||||
| 				serial, foo, curtime - starttime); | 				serial, foo, curtime - starttime); | ||||||
|  | 		/*
 | ||||||
|  | 		 * MUST display ip:port of the sender ! | ||||||
|  | 		 */ | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 	for (bar=0; bar<=foo; bar+=16) { | 	for (bar=0; bar<=foo; bar+=16) { | ||||||
| 		printf("%3ld | ", bar); | 		printf("%3d | ", bar); | ||||||
| 		dumpln(buffer+bar); | 		dumpln(buffer+bar); | ||||||
| 		}  | 		}  | ||||||
| 	serial++;		 | 	serial++;		 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 tTh
						tTh