Mercurial > hg > beaglert
changeset 180:07cfd337ad18
Updated examples with new audioWrite macros
author | Giulio Moro <giuliomoro@yahoo.it> |
---|---|
date | Sat, 02 Jan 2016 13:55:01 +0100 |
parents | f1012082f142 |
children | 391ad036557d |
files | projects/basic/render.cpp projects/basic_passthru/render.cpp |
diffstat | 2 files changed, 32 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/projects/basic/render.cpp Sat Jan 02 13:50:36 2016 +0100 +++ b/projects/basic/render.cpp Sat Jan 02 13:55:01 2016 +0100 @@ -8,6 +8,7 @@ #include <BeagleRT.h> #include <cmath> +#include <Utilities.h> float gFrequency = 440.0; float gPhase; @@ -47,8 +48,15 @@ if(gPhase > 2.0 * M_PI) gPhase -= 2.0 * M_PI; - for(unsigned int channel = 0; channel < context->audioChannels; channel++) - context->audioOut[n * context->audioChannels + channel] = out; + for(unsigned int channel = 0; channel < context->audioChannels; channel++) { + // Two equivalent ways to write this code + + // The long way, using the buffers directly: + // context->audioOut[n * context->audioChannels + channel] = out; + + // Or using the macros: + audioWriteFrame(context, n, channel, out); + } } }
--- a/projects/basic_passthru/render.cpp Sat Jan 02 13:50:36 2016 +0100 +++ b/projects/basic_passthru/render.cpp Sat Jan 02 13:55:01 2016 +0100 @@ -19,20 +19,9 @@ // // Return true on success; returning false halts the program. -AuxiliaryTask taskOne; -AuxiliaryTask taskTwo; -void funOne(){ - rt_printf("setup\n"); -} -void funTwo(){ - rt_printf("render\n"); -} bool setup(BeagleRTContext *context, void *userData) { // Nothing to do here... -// taskOne = BeagleRT_createAuxiliaryTask(funOne, 1, "funOne"); -// taskTwo = BeagleRT_createAuxiliaryTask(funTwo, 99, "funTwo"); -// BeagleRT_scheduleAuxiliaryTask(taskOne); return true; } @@ -43,28 +32,32 @@ void render(BeagleRTContext *context, void *userData) { -// if(context->audioSampleCount % 16384 == 0) -// BeagleRT_scheduleAuxiliaryTask(taskTwo); // Simplest possible case: pass inputs through to outputs for(unsigned int n = 0; n < context->audioFrames; n++) { - for(unsigned int ch = 0; ch < context->audioChannels; ch++) - context->audioOut[n * context->audioChannels + ch] = - context->audioIn[n * context->audioChannels + ch]; + for(unsigned int ch = 0; ch < context->audioChannels; ch++){ + // Two equivalent ways to write this code + + // The long way, using the buffers directly: + // context->audioOut[n * context->audioChannels + ch] = + // context->audioIn[n * context->audioChannels + ch]; + + // Or using the macros: + audioWriteFrame(context, n, ch, audioReadFrame(context, n, ch)); + } } - // Same with matrix, only if matrix is enabled -// if(context->analogFrames != 0) { -// for(unsigned int n = 0; n < context->analogFrames; n++) { -// for(unsigned int ch = 0; ch < context->analogChannels; ch++) { -// // Two equivalent ways to write this code -// // The long way, using the buffers directly: -// // context->analogOut[n * context->analogChannels + ch] = context->analogIn[n * context->analogChannels + ch]; -// -// // Or using the macros: -// analogWriteFrame(context, n, ch, analogReadFrame(context, n, ch)); -// } -// } -// } + // Same with analog channelss + for(unsigned int n = 0; n < context->analogFrames; n++) { + for(unsigned int ch = 0; ch < context->analogChannels; ch++) { + // Two equivalent ways to write this code + + // The long way, using the buffers directly: + // context->analogOut[n * context->analogChannels + ch] = context->analogIn[n * context->analogChannels + ch]; + + // Or using the macros: + analogWriteFrame(context, n, ch, analogReadFrame(context, n, ch)); + } + } } // cleanup() is called once at the end, after the audio has stopped.