From f804d2c7abc9253ae7b3c42d5d9b22ff107c01eb Mon Sep 17 00:00:00 2001 From: tTh Date: Fri, 13 Jan 2023 15:36:31 +0100 Subject: [PATCH] some tuning... --- Makefile | 4 ++-- README.md | 10 +++++++++- chuck/pouet.ck | 5 +++-- chuck/zwouit.ck | 12 ++++++------ doc/gadgets-osc.tex | 5 ++++- functions/ncursefuncs.c | 30 +++++++++++++++++++++++------- functions/ncursefuncs.h | 1 + osc-joy.c | 11 +++-------- showbuttons.c | 7 ++++++- tools/udp-dumper.c | 7 +++++-- 10 files changed, 62 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index e734b19..3a1b80c 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,10 @@ # umpf... -OPTS = -Wall -g -DDEBUG_LEVEL=1 +OPTS = -Wall -g -DDEBUG_LEVEL=0 DEPS = Makefile -all: osc-joy osc2cursor text2osc +all: osc-joy osc2cursor text2osc showbuttons # -------------------------------------------------------------- diff --git a/README.md b/README.md index 96f598f..5915fc5 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ 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 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 -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. 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... +## showbuttons + +Presque fini depuis quelques mois. + # Le reste ## Loth Project diff --git a/chuck/pouet.ck b/chuck/pouet.ck index 2c98804..dab5685 100644 --- a/chuck/pouet.ck +++ b/chuck/pouet.ck @@ -1,4 +1,5 @@ -/* faire pouet avec chuck osc et un joystick +/* + faire pouet avec chuck osc et un joystick ----------------------------------------- reception des boutons */ @@ -9,7 +10,7 @@ SqrOsc sl => Envelope envl => dac.left; SawOsc sr => Envelope envr => dac.right; 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; diff --git a/chuck/zwouit.ck b/chuck/zwouit.ck index b605afd..ef50c55 100644 --- a/chuck/zwouit.ck +++ b/chuck/zwouit.ck @@ -3,11 +3,11 @@ reception des XY */ -7777 => int InPort; - -SqrOsc sl => dac.left; +7777 => int InPort; +15.55 => float divisor; +SqrOsc sl => dac.left; SawOsc sr => dac.right; -0.0 => sl.gain => sr.gain; +0.0 => sl.gain => sr.gain; OscIn oscin; OscMsg msg; @@ -27,8 +27,8 @@ while( true ) { msg.getInt(0) => x; msg.getInt(1) => y; <<< "got (via ", InPort,") ", x, y >>>; - x => sl.freq; - y => sr.freq; + x/12.0 => sl.freq; + y/12.0 => sr.freq; } } diff --git a/doc/gadgets-osc.tex b/doc/gadgets-osc.tex index b9b2228..6445e16 100644 --- a/doc/gadgets-osc.tex +++ b/doc/gadgets-osc.tex @@ -24,7 +24,10 @@ \section{Open Sound Control} De quoi parle-t-on exactement ? -\vspace{1em} +\vspace{5em} +OSC est un protocole réseau basé sur UDP\index{UDP}. + + % ------------------------------------------------------------------- \section{Example} diff --git a/functions/ncursefuncs.c b/functions/ncursefuncs.c index be30067..e1d5745 100644 --- a/functions/ncursefuncs.c +++ b/functions/ncursefuncs.c @@ -68,7 +68,7 @@ return 0; /* this is not a magic number */ int blast_error_message(char *txt, int violence, int unused) { int line, foo; -char buff[60]; +char buff[80]; #if DEBUG_LEVEL fprintf(stderr, "--> %s ( '%s' %d %d )\n", __func__, @@ -82,20 +82,36 @@ if (verbosity > 3) { } standout(); - -// clear our part of screen +// setup our part of screen for (foo=0; foo %s ( '%c' )\n", __func__, ascii); +#endif + +standout(); +// clear our part of screen +for (foo=0; foo 128) continue; @@ -119,11 +118,9 @@ for (;;) { fprintf(stderr, "%10u %2d %2d %7d\n", js.time, js.type, js.number, js.value); } - if (2==js.type) { /* oscillating stick */ flag = 0; - switch (js.number) - { + switch (js.number) { case 0: x_pos = js.value; flag = 1; @@ -133,7 +130,6 @@ for (;;) { flag = 1; break; } - if (flag) { foo = send_data_xy(t, x_pos, y_pos); flag = 0; @@ -144,7 +140,6 @@ for (;;) { foo = send_data_button(t, js.number+button_offset, js.value); } - } return 0; diff --git a/showbuttons.c b/showbuttons.c index f517d82..3cb0ae0 100644 --- a/showbuttons.c +++ b/showbuttons.c @@ -294,9 +294,14 @@ lo_server_thread_add_method(st, "/joystick/xy", "ii", xy_handler, NULL); lo_server_thread_start(st); -sprintf(ligne, "process %d on board, captain", getpid()); +#if DEBUG_LEVEL +fprintf(stderr, "pid %d: osc server thread started\n", getpid()); +#endif + +sprintf(ligne, "process %d on board, captain ", getpid()); blast_error_message(ligne, 0, 0); sleep(1); +erase_error_message('-'); for (;;) { /* wait for un event from liblo threads */ diff --git a/tools/udp-dumper.c b/tools/udp-dumper.c index cf76a76..70ef2c5 100644 --- a/tools/udp-dumper.c +++ b/tools/udp-dumper.c @@ -79,12 +79,15 @@ do { if (verbosity) { gettimeofday(&tp, NULL); 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); + /* + * MUST display ip:port of the sender ! + */ } for (bar=0; bar<=foo; bar+=16) { - printf("%3ld | ", bar); + printf("%3d | ", bar); dumpln(buffer+bar); } serial++;