Mercurial > hg > beaglert
comparison examples/audio_in_FFT/render.cpp @ 301:e4392164b458 prerelease
RENAMED BeagleRT to Bela AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, scripts probably not working
author | Giulio Moro <giuliomoro@yahoo.it> |
---|---|
date | Fri, 27 May 2016 14:34:41 +0100 |
parents | dbeed520b014 |
children | db2fe4e1b88e |
comparison
equal
deleted
inserted
replaced
300:dbeed520b014 | 301:e4392164b458 |
---|---|
4 * Created on: Oct 24, 2014 | 4 * Created on: Oct 24, 2014 |
5 * Author: parallels | 5 * Author: parallels |
6 */ | 6 */ |
7 | 7 |
8 | 8 |
9 #include <BeagleRT.h> | 9 #include <Bela.h> |
10 #include <rtdk.h> | 10 #include <rtdk.h> |
11 #include <NE10.h> // neon library | 11 #include <NE10.h> // neon library |
12 #include <cmath> | 12 #include <cmath> |
13 | 13 |
14 int gFFTSize; | 14 int gFFTSize; |
30 // userData holds an opaque pointer to a data structure that was passed | 30 // userData holds an opaque pointer to a data structure that was passed |
31 // in from the call to initAudio(). | 31 // in from the call to initAudio(). |
32 // | 32 // |
33 // Return true on success; returning false halts the program. | 33 // Return true on success; returning false halts the program. |
34 | 34 |
35 bool setup(BeagleRTContext *context, void *userData) | 35 bool setup(BelaContext *context, void *userData) |
36 { | 36 { |
37 // Retrieve a parameter passed in from the initAudio() call | 37 // Retrieve a parameter passed in from the initAudio() call |
38 gFFTSize = *(int *)userData; | 38 gFFTSize = *(int *)userData; |
39 gFFTScaleFactor = 1.0f / (float)gFFTSize; | 39 gFFTScaleFactor = 1.0f / (float)gFFTSize; |
40 | 40 |
51 // render() is called regularly at the highest priority by the audio engine. | 51 // render() is called regularly at the highest priority by the audio engine. |
52 // Input and output are given from the audio hardware and the other | 52 // Input and output are given from the audio hardware and the other |
53 // ADCs and DACs (if available). If only audio is available, numMatrixFrames | 53 // ADCs and DACs (if available). If only audio is available, numMatrixFrames |
54 // will be 0. | 54 // will be 0. |
55 | 55 |
56 void render(BeagleRTContext *context, void *userData) | 56 void render(BelaContext *context, void *userData) |
57 { | 57 { |
58 for(unsigned int n = 0; n < context->audioFrames; n++) { | 58 for(unsigned int n = 0; n < context->audioFrames; n++) { |
59 timeDomainIn[gReadPointer].r = (ne10_float32_t) ((context->audioIn[n*context->audioChannels] + | 59 timeDomainIn[gReadPointer].r = (ne10_float32_t) ((context->audioIn[n*context->audioChannels] + |
60 context->audioIn[n*context->audioChannels+1]) * 0.5); | 60 context->audioIn[n*context->audioChannels+1]) * 0.5); |
61 timeDomainIn[gReadPointer].i = 0; | 61 timeDomainIn[gReadPointer].i = 0; |
81 } | 81 } |
82 | 82 |
83 // cleanup() is called once at the end, after the audio has stopped. | 83 // cleanup() is called once at the end, after the audio has stopped. |
84 // Release any resources that were allocated in setup(). | 84 // Release any resources that were allocated in setup(). |
85 | 85 |
86 void cleanup(BeagleRTContext *context, void *userData) | 86 void cleanup(BelaContext *context, void *userData) |
87 { | 87 { |
88 NE10_FREE(timeDomainIn); | 88 NE10_FREE(timeDomainIn); |
89 NE10_FREE(timeDomainOut); | 89 NE10_FREE(timeDomainOut); |
90 NE10_FREE(frequencyDomain); | 90 NE10_FREE(frequencyDomain); |
91 NE10_FREE(cfg); | 91 NE10_FREE(cfg); |