From bc9fd387a3af26762ba85f1172775334e82b8060 Mon Sep 17 00:00:00 2001 From: Florent Berthaut <florent.berthaut@univ-lille.fr> Date: Mon, 3 Apr 2023 16:13:36 +0200 Subject: [PATCH] Added nbaudiotracks as a uniform --- src/Reveal.hpp | 2 +- src/modules/ProjectorModule.cpp | 4 ++++ src/shaders/render43.fs | 12 +++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Reveal.hpp b/src/Reveal.hpp index b89a563..f661aa2 100644 --- a/src/Reveal.hpp +++ b/src/Reveal.hpp @@ -79,7 +79,7 @@ class Reveal : public GroupModule { POSTFILTER, RENDERTEX, AUDIOTEX, AUDIORATE, MAXAUDIOVALUE, AUDIOBUFSIZE, AUDIOMIXSIZE, - PROCESSAUDIO, AUDIONEXTBUF + PROCESSAUDIO, AUDIONEXTBUF, AUDIONBTRACKS }; enum GEOM_ID { diff --git a/src/modules/ProjectorModule.cpp b/src/modules/ProjectorModule.cpp index 9eb8a59..2e29751 100644 --- a/src/modules/ProjectorModule.cpp +++ b/src/modules/ProjectorModule.cpp @@ -358,6 +358,8 @@ void ProjectorModule::draw() { m_audioMixSize); glUniform1i(m_uniforms[Reveal::RENDERPROG][Reveal::AUDIONEXTBUF], m_audioNextBuf); + glUniform1i(m_uniforms[Reveal::RENDERPROG][Reveal::AUDIONBTRACKS], + m_nbTracks); #endif //Draw everything @@ -592,6 +594,8 @@ void ProjectorModule::initGL() { = glGetUniformLocation(m_programs[Reveal::RENDERPROG], "audioRate"); m_uniforms[Reveal::RENDERPROG][Reveal::AUDIONEXTBUF] = glGetUniformLocation(m_programs[Reveal::RENDERPROG], "audioNextBuf"); + m_uniforms[Reveal::RENDERPROG][Reveal::AUDIONBTRACKS] + = glGetUniformLocation(m_programs[Reveal::RENDERPROG], "audioNbTracks"); m_uniforms[Reveal::RENDERPROG][Reveal::OUTPUTTEX] = glGetUniformLocation(m_programs[Reveal::RENDERPROG], "outputTex"); diff --git a/src/shaders/render43.fs b/src/shaders/render43.fs index 32f3496..1e2acf1 100644 --- a/src/shaders/render43.fs +++ b/src/shaders/render43.fs @@ -29,6 +29,7 @@ uniform float maxAudioValue; uniform int audioRate; uniform int processAudio; uniform int audioNextBuf; +uniform int audioNbTracks; uniform float viewportWidth; uniform float viewportHeight; @@ -111,9 +112,9 @@ out vec4 color; void additiveSynth(vec4 color) { - int nbTracks=3000; - float note = 20.0 + floor(color.x * float(nbTracks))/float(nbTracks)*80.0; - int ind = int(color.x*float(nbTracks)); + float note = 20.0 + + floor(color.x * float(audioNbTracks))/float(audioNbTracks)*80.0; + int ind = int(color.x*float(audioNbTracks)); float freq=0.0; //count this fragment @@ -553,14 +554,15 @@ void main(void) { if(rendered>0 && length(finalColor)>0) { if(revSize>0) { - imageAtomicOr(outputTex, ivec2(mod(outOffset,outCols), floor((outOffset))/outCols), rendered); + imageAtomicOr(outputTex, ivec2(mod(outOffset,outCols), + floor((outOffset))/outCols), rendered); } if((insideVisible>0 && rendered==1) || (surface>0 && rendered==2)) { color = vec4(finalColor, 1.0); - if(processAudio>0) { additiveSynth(color); + //pitchedAdditiveSynth(color); } } else { -- GitLab