diff --git a/README.md b/README.md index 29a2fc6..fbb8ae1 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ .asoundrc (Должно быть в ~/) Нужно поменять rockchipes8316c, на вашу карту (aplay -L) -modprobe snd-aloop +~ # modprobe snd-aloop -cc spark_ncurses.c -lm -lncurses -s -ospark -chmod +x audio_vis.sh -./audio_vis.sh +~ $ cc spark_ncurses.c -lm -lncurses -s -ospark +~ $ chmod +x audio_vis.sh +~ $ ./audio_vis.sh diff --git a/audio_vis.sh b/audio_vis.sh index 4eb9724..9a3aee0 100755 --- a/audio_vis.sh +++ b/audio_vis.sh @@ -1,2 +1,2 @@ #!/bin/sh -arecord --rate 16000 --buffer-size=1024 -D loopout -MNqc 1 -f S24_LE -t raw | hexdump -e '/4 " %d"' | tr -d '*' | ./spark +arecord --rate 10000 --buffer-size=1024 -D loopout -MNqc 1 -f S24_LE -t raw | hexdump -e '/4 " %d"' | tr -d '*' | ./spark diff --git a/img/sshot.jpg b/img/sshot.jpg index cfdbd7d..7b7fb28 100644 Binary files a/img/sshot.jpg and b/img/sshot.jpg differ diff --git a/spark_ncurses.c b/spark_ncurses.c index 16d1539..3dbc11b 100644 --- a/spark_ncurses.c +++ b/spark_ncurses.c @@ -12,7 +12,7 @@ #define NARGS 4096 #define ARG_SIZE 50 #define MAX 1000000 -#define MIN 50000 +#define MIN 90000 int args; double values[NARGS + 1]; @@ -71,31 +71,23 @@ void stdin_read(void) { } } -void mvprint(int y, int x, int lvl) { - char *fmt = "@"; - if (lvl < 4) { - fmt = "/"; - if (y > ws.ws_row / 2) - fmt = "\\"; - } - - else if (lvl - 4 <= 2) - fmt = "+"; - - mvprintw(y, x, "%s", fmt); -} - void print(double value, double diff, int col) { - size_t m_screen = ws.ws_row / 2; + if (col % 2) + return; - if (value >= 0) { - int lvl = (int)round((value - MIN + 1) / diff * 2); - mvprint(m_screen - lvl, col, lvl); - } + int lvl = 0; + if (value > 0) + lvl = (int)round((value - MIN + 1) / diff); - else { - int lvl = (int)round(((value * -1) - MIN + 1) / diff * 2); - mvprint(m_screen + lvl, col, lvl); + else + lvl = (int)round(((value * -1) - MIN + 1) / diff); + + for (int i = 0; i < lvl; i++) { + if (value > 0) + mvprintw((ws.ws_row / 2) - i, col, "$"); + + else + mvprintw((ws.ws_row / 2) + i, col, "$"); } } @@ -124,8 +116,9 @@ int main(void) { stdin_read(); clear(); + for (int i = 1; i < args - 1; i++) - print((values[i - 1] + values[i] + values[i + 1]) / 4, diff, i); + print((values[i - 1] + values[i] + values[i + 1]) / 3, diff, i); refresh(); }