From cdd60c0036503df6abdabfa035a35bb5ea17e905 Mon Sep 17 00:00:00 2001 From: iceyrazor Date: Tue, 24 Feb 2026 03:11:57 -0600 Subject: [PATCH] init --- .gitignore | 2 + LICENSE | 11 ++ README.md | 40 ++++++++ example.png | Bin 0 -> 138771 bytes make | 17 +++ src/global_objects.c | 72 +++++++++++++ src/main.c | 107 +++++++++++++++++++ src/objects.c | 122 ++++++++++++++++++++++ src/objects.h | 52 ++++++++++ src/pipe.c | 239 +++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 662 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 example.png create mode 100755 make create mode 100644 src/global_objects.c create mode 100755 src/main.c create mode 100755 src/objects.c create mode 100755 src/objects.h create mode 100644 src/pipe.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a134e06 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +audio_reactive +src/.clangd diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..014a60c --- /dev/null +++ b/LICENSE @@ -0,0 +1,11 @@ +Copyright 2026 iceyrazor + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..86789bf --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +# Audio Reactive + +![audio reactive screenshot](./example.png?raw=true) + +This is a small C SDL2 project making physics objects react to audio + +## Requirements + +- SDL2 +- SDL2_gfx +- libpipewire +- libspa-2.0 +- clang +- libgcc +- pkg-config + +## building + +simply run ./make +there is no install + +## usage + +You can specify the reading device. I have no clue how it works. + +Just run audio_reactive binary. +Then use something like qpwgraph to to force change the input of ``audio-capture`` + +## Todo + +- [ ] resizeable +- [ ] arguments +- [ ] settable average peak +- [ ] settable RGB +- [ ] RGB-cycle +- [ ] move settable vars to stuff +- [ ] ability to set input device with args +- [ ] volume of frequency instead of overall +- [ ] random kick based on low frequency peak instead of volume +- [ ] graceful entrance and exit entering or exiting volume 0 diff --git a/example.png b/example.png new file mode 100644 index 0000000000000000000000000000000000000000..c26708dab69e656a19883f315102eb481e61e224 GIT binary patch literal 138771 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

m~z4pW{O2uviIYU`cG30Jw6h$_im|#f@9Ga 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 +#include + +#define flaot float + +typedef struct { + float x; + float y; +} Point; + +void point_add(Point *A, Point *B){ + A->x = A->x + B->x; + A->y = A->y + B->y; +} + +void point_sub(Point *A, Point *B){ + A->x = A->x - B->x; + A->y = A->y - B->y; +} + +void point_mul(Point *A, Point *B){ + A->x = A->x * B->x; + A->y = A->y * B->y; +} + +void point_div(Point *A, Point *B){ + A->x = A->x / B->x; + A->y = A->y / B->y; +} + +float magnitude(flaot x, flaot y) { + return sqrt((pow(x,2) + pow(y,2))); +} + +void point_set_mag(Point *point, float mag){ + flaot getmag = magnitude(point->x, point->y); + flaot rx = (point->x / getmag) * mag; + flaot ry = (point->y / getmag) * mag; + + point->x = rx; + point->y = ry; +} + +void point_limit(Point *point, float mag){ + flaot getmag = magnitude(point->x, point->y); + flaot rx, ry; + if (getmag > mag){ + rx = (point->x / getmag) * mag; + ry = (point->y / getmag) * mag; + } else { + rx = point->x; + ry = point->y; + } + + point->x = rx; + point->y = ry; +} + +float RandomFloat(float min, float max){ + return ((max - min) * ((float)rand() / (double)RAND_MAX)) + min; +} + +float constrain(float val, float min, float max){ + if(val > max) val=max; + else if(val < min) val=min; + return val; +} + +#endif diff --git a/src/main.c b/src/main.c new file mode 100755 index 0000000..6e3dd89 --- /dev/null +++ b/src/main.c @@ -0,0 +1,107 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +bool running=true; + +#include "objects.h" +#include "objects.c" +#include "pipe.c" + +#define PROJECT_NAME "audio reactive" + + +int main(int argc, char *argv[]) +{ + if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0) + SDL_Log("SDL fails to initialize! %s\n", SDL_GetError()); + + int startw=600; + int starth=600; + + SDL_Window *window = SDL_CreateWindow(PROJECT_NAME, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, startw, starth, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL); + if (!window) { + printf("Failed to create window: %s\n", SDL_GetError()); + } + SDL_Renderer *renderer = SDL_CreateRenderer(window,-1,SDL_RENDERER_SOFTWARE); + if (!renderer) { + printf("Failed to create renderer: %s\n", SDL_GetError()); + } + + VOL_ARG volargs={ argc, argv, }; + pthread_t vol_thread; + int thread_err=pthread_create(&vol_thread, NULL, volume_input, (void *)&volargs); + + pthread_t peak_reduc; + int thread_err2=pthread_create(&peak_reduc, NULL, avg_peak, NULL); + + srand(time(NULL)); + OBJECT_INER obj_storage[obj_n]; + + STUFFS stuff = { + startw, + starth, + window, + renderer, + false, + 0, + 0, + (OBJECT){}, + 0, + 0, + }; + + init_stuffs(startw,starth,obj_storage,&stuff); + + + for (int i = 0; i < obj_n; i++) + stuff.obj.objs[i] = &obj_storage[i]; + + SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND); + + bool quit = false; + SDL_Event e; + while (!quit) { + while (SDL_PollEvent(&e)) { + if (e.type == SDL_QUIT) { + quit = true; + } + else if(e.type == SDL_MOUSEBUTTONDOWN){ + if(e.button.button==SDL_BUTTON_LEFT){ + stuff.mousedown=true; + } else if(e.button.button==SDL_BUTTON_RIGHT){ + } + } else if(e.type==SDL_MOUSEBUTTONUP){ + stuff.mousedown=false; + } + stuff.mx=e.button.x; + stuff.my=e.button.y; + } + if(mutVolume.locked==false){ + mutVolume.locked=true; + stuff.volume=mutVolume.volume; + stuff.avg_peak=mutVolume.avg_peak; + mutVolume.locked=false; + } + //SDL_Log("vol: %f avg: %f",stuff.volume,stuff.avg_peak); + draw(&stuff); + SDL_Delay(5); + } + + running=false; + pw_main_loop_quit(GPipe.d->loop); + pthread_join(vol_thread,NULL); + pthread_join(peak_reduc,NULL); + + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_QuitSubSystem(SDL_INIT_VIDEO); + SDL_Quit(); + + return 0; +} diff --git a/src/objects.c b/src/objects.c new file mode 100755 index 0000000..1107c1d --- /dev/null +++ b/src/objects.c @@ -0,0 +1,122 @@ +#include +#include +#include +#include + +#include "global_objects.c" +#include "objects.h" + +void constructor(int w, int h, OBJECT_INER *obj, float x, float y, float mass){ + obj->pos.x = x; + obj->pos.y = y; + obj->vel = (Point){RandomFloat(-1, 1),RandomFloat(-1, 1)}; + point_mul(&obj->vel,&(Point){5,5}); + obj->acc = (Point){0,0}; + obj->mass = mass; + obj->r = sqrt(obj->mass) * 2; + obj->retur=false; +} + +void attractor_constructor(int w, int h, ATTRACTOR *attractor, float x, float y, float mass){ + attractor->pos.x = x; + attractor->pos.y = y; + attractor->mass = mass; + attractor->r = sqrt(attractor->mass) * 2; +} + +void init_stuffs(int w, int h, OBJECT_INER *objs,STUFFS *stuff){ + for (int i=0; iobj.attractor,(float)w/2,(float)h/2,100); +} + +void applyForce(OBJECT_INER *obj, Point force){ + point_div(&force, &(Point){obj->mass,obj->mass}); + point_add(&obj->acc, &force); +} + +void update(STUFFS *stuff, OBJECT_INER *obj){ + point_add(&obj->vel,&obj->acc); + point_limit(&obj->vel,10); + point_add(&obj->pos, &obj->vel); + obj->acc = (Point){0,0}; +} + +void show(STUFFS *stuff,OBJECT_INER *obj){ + Sint16 x = (Sint16)obj->pos.x; + Sint16 y = (Sint16)obj->pos.y; + + circleRGBA(stuff->renderer, x, y, obj->r, 190, 90, 255, 255); + filledCircleRGBA(stuff->renderer, x, y, obj->r, 150, 50, 255, 80); +} + +float calcG(ATTRACTOR *attractor, OBJECT_INER *obj,STUFFS *stuff){ + float G=0; + float dis=0; + Point pointA=attractor->pos; + point_sub(&pointA,&obj->pos); + dis=magnitude(pointA.x, pointA.y); + + if (dis>(float)stuff->width/3){ + obj->retur=true; + } + else if (dis<(float)stuff->width/3){ + obj->retur=false; + } + + G=1-(stuff->volume)*15; + + if(obj->retur==true) + G=stuff->volume*20; + + if(stuff->volume<0.01){ + G=5; + } + + if(G!=G) G=1; + return G; +} + +void attract(ATTRACTOR *attractor, OBJECT_INER *obj,STUFFS *stuff){ + Point force = {attractor->pos.x - obj->pos.x, attractor->pos.y - obj->pos.y}; + float dist = magnitude(force.x, force.y); + dist = dist * dist; + dist = constrain(dist,100,1000); + + float G = calcG(attractor,obj,stuff); + float strength = G * (attractor->mass * obj->mass) / dist; + + point_set_mag(&force, strength); + applyForce(obj,force); +} + +void atr_show(STUFFS *stuff,ATTRACTOR *attr){ + SDL_RenderFillRect(stuff->renderer, &(SDL_Rect){attr->pos.x - attr->r, attr->pos.y - attr->r, attr->r*2, attr->r*2}); +} + +void draw(STUFFS *stuff){ + SDL_SetRenderDrawColor(stuff->renderer,0,0,0,30); + //SDL_RenderClear(renderer); + SDL_RenderFillRect(stuff->renderer, &(SDL_Rect){0,0,stuff->width,stuff->height}); + static int frame_i1=0; + + for (int i=0; iobj.objs[i]); + show(stuff,stuff->obj.objs[i]); + + attract(&stuff->obj.attractor, stuff->obj.objs[i], stuff); + float vol=stuff->volume; + if(vol==vol && frame_i1>200){ + Point rand_p={RandomFloat(-1, 1),RandomFloat(-1, 1)}; + point_set_mag(&rand_p, stuff->volume*100); + point_add(&stuff->obj.objs[i]->vel,&rand_p); + } + } + SDL_SetRenderDrawColor(stuff->renderer, 100,20,20,180); + atr_show(stuff,&stuff->obj.attractor); + + if(frame_i1>200) frame_i1=0; + frame_i1++; + SDL_RenderPresent(stuff->renderer); +} diff --git a/src/objects.h b/src/objects.h new file mode 100755 index 0000000..d1faa02 --- /dev/null +++ b/src/objects.h @@ -0,0 +1,52 @@ +#ifndef objects +#define objects + +#include +#include +#include +#include "global_objects.c" + +#define flaot float + +#define obj_n 30 + +typedef struct ATTRACTOR { + Point pos; + float r; + float mass; +} ATTRACTOR; + +typedef struct OBJECT_INER { + Point pos; + Point vel; + Point acc; + float r; + float mass; + bool retur; +} OBJECT_INER; + +typedef struct OBJECT { + ATTRACTOR attractor; + OBJECT_INER *objs[obj_n]; +} OBJECT; + +typedef struct{ + bool locked; + flaot volume; + flaot avg_peak; +} MUTEX_FLOAT; + +typedef struct{ + int width; + int height; + SDL_Window* window; + SDL_Renderer* renderer; + bool mousedown; + int mx; + int my; + OBJECT obj; + flaot volume; + flaot avg_peak; +} STUFFS; + +#endif diff --git a/src/pipe.c b/src/pipe.c new file mode 100644 index 0000000..60824ea --- /dev/null +++ b/src/pipe.c @@ -0,0 +1,239 @@ +#ifndef pipec +#define pipec +#include +#include +#include +#include "objects.h" + +MUTEX_FLOAT mutVolume = { false, 0, }; + +/* PipeWire */ +/* SPDX-FileCopyrightText: Copyright © 2022 Wim Taymans */ +/* SPDX-License-Identifier: MIT */ + +/* + [title] + Audio capture using \ref pw_stream "pw_stream". + [title] + */ + +struct data { + struct pw_main_loop *loop; + struct pw_stream *stream; + + struct spa_audio_info format; + unsigned move:1; +}; + +/* our data processing function is in general: + * + * struct pw_buffer *b; + * b = pw_stream_dequeue_buffer(stream); + * + * .. consume stuff in the buffer ... + * + * pw_stream_queue_buffer(stream, b); + */ +static void on_process(void *userdata) +{ + struct data *data = userdata; + struct pw_buffer *b; + struct spa_buffer *buf; + float *samples, max; + uint32_t c, n, n_channels, n_samples, peak; + + if ((b = pw_stream_dequeue_buffer(data->stream)) == NULL) { + pw_log_warn("out of buffers: %m"); + return; + } + + buf = b->buffer; + if ((samples = buf->datas[0].data) == NULL) + return; + + n_channels = data->format.info.raw.channels; + n_samples = buf->datas[0].chunk->size / sizeof(float); + + /* move cursor up */ + //if (data->move) + // fprintf(stdout, "%c[%dA", 0x1b, n_channels + 1); + //fprintf(stdout, "captured %d samples\n", n_samples / n_channels); + + for (c = 0; c < data->format.info.raw.channels; c++) { + max = 0.0f; + for (n = c; n < n_samples; n += n_channels) + max = fmaxf(max, fabsf(samples[n])); + + peak = (uint32_t)SPA_CLAMPF(max * 30, 0.f, 39.f); + + mutVolume.locked=true; + if(mutVolume.avg_peakmove = true; + fflush(stdout); + + pw_stream_queue_buffer(data->stream, b); +} + +/* Be notified when the stream param changes. We're only looking at the + * format changes. + */ +static void +on_stream_param_changed(void *_data, uint32_t id, const struct spa_pod *param) +{ + struct data *data = _data; + + /* NULL means to clear the format */ + if (param == NULL || id != SPA_PARAM_Format) + return; + + if (spa_format_parse(param, &data->format.media_type, &data->format.media_subtype) < 0) + return; + + /* only accept raw audio */ + if (data->format.media_type != SPA_MEDIA_TYPE_audio || + data->format.media_subtype != SPA_MEDIA_SUBTYPE_raw) + return; + + /* call a helper function to parse the format for us. */ + spa_format_audio_raw_parse(param, &data->format.info.raw); + + //fprintf(stdout, "capturing rate:%d channels:%d\n", + // data->format.info.raw.rate, data->format.info.raw.channels); + +} + +static const struct pw_stream_events stream_events = { + PW_VERSION_STREAM_EVENTS, + .param_changed = on_stream_param_changed, + .process = on_process, +}; + +static void do_quit(void *userdata, int signal_number) +{ + struct data *data = userdata; + pw_main_loop_quit(data->loop); +} + +typedef struct VOL_ARG{ + int argc; + char **argv; +} VOL_ARG; + +struct pipe_control{ + struct data* d; +}; + +struct pipe_control GPipe; + +void *volume_input(void* threadarg){ + struct VOL_ARG *volargs; + volargs=(struct VOL_ARG *) threadarg; + + int argc=volargs->argc; + + struct data data = { 0, }; + GPipe.d=&data; + const struct spa_pod *params[1]; + uint8_t buffer[1024]; + struct pw_properties *props; + struct spa_pod_builder b = SPA_POD_BUILDER_INIT(buffer, sizeof(buffer)); + + pw_init(&argc, &volargs->argv); + + /* make a main loop. If you already have another main loop, you can add + * the fd of this pipewire mainloop to it. */ + data.loop = pw_main_loop_new(NULL); + + pw_loop_add_signal(pw_main_loop_get_loop(data.loop), SIGINT, do_quit, &data); + pw_loop_add_signal(pw_main_loop_get_loop(data.loop), SIGTERM, do_quit, &data); + + /* Create a simple stream, the simple stream manages the core and remote + * objects for you if you don't need to deal with them. + * + * If you plan to autoconnect your stream, you need to provide at least + * media, category and role properties. + * + * Pass your events and a user_data pointer as the last arguments. This + * will inform you about the stream state. The most important event + * you need to listen to is the process event where you need to produce + * the data. + */ + props = pw_properties_new(PW_KEY_MEDIA_TYPE, "Audio", + PW_KEY_MEDIA_CATEGORY, "Capture", + PW_KEY_MEDIA_ROLE, "Music", + NULL); + if (argc > 1) + /* Set stream target if given on command line */ + pw_properties_set(props, PW_KEY_TARGET_OBJECT, volargs->argv[1]); + + /* uncomment if you want to capture from the sink monitor ports */ + /* pw_properties_set(props, PW_KEY_STREAM_CAPTURE_SINK, "true"); */ + + data.stream = pw_stream_new_simple( + pw_main_loop_get_loop(data.loop), + "audio-capture", + props, + &stream_events, + &data); + + /* Make one parameter with the supported formats. The SPA_PARAM_EnumFormat + * id means that this is a format enumeration (of 1 value). + * We leave the channels and rate empty to accept the native graph + * rate and channels. */ + params[0] = spa_format_audio_raw_build(&b, SPA_PARAM_EnumFormat, + &SPA_AUDIO_INFO_RAW_INIT( + .format = SPA_AUDIO_FORMAT_F32)); + + /* Now connect this stream. We ask that our process function is + * called in a realtime thread. */ + pw_stream_connect(data.stream, + PW_DIRECTION_INPUT, + PW_ID_ANY, + PW_STREAM_FLAG_AUTOCONNECT | + PW_STREAM_FLAG_MAP_BUFFERS | + PW_STREAM_FLAG_RT_PROCESS, + params, 1); + + /* and wait while we let things run */ + pw_main_loop_run(data.loop); + + pw_stream_destroy(data.stream); + pw_main_loop_destroy(data.loop); + pw_deinit(); + + pthread_exit(NULL); +} + +void delay(int milli_seconds) +{ + // Storing start time + clock_t start_time = clock(); + + // looping till required time is not achieved + while (clock() < start_time + milli_seconds); +} + +void *avg_peak(){ + while (running){ + if(mutVolume.locked==false){ + mutVolume.locked=true; + if(mutVolume.avg_peak>0){ + mutVolume.avg_peak=mutVolume.avg_peak-0.0001; + } + mutVolume.locked=false; + } + delay(100); + } + pthread_exit(NULL); +} + +#endif