giuliomoro audioRead

Hello Sir,

What exact arguments does the audioRead() function take and where can I find it in the source for BELA?

Seth

    silver2row What exact arguments does the audioRead() function take and where can I find it in the source for BELA?

    you can find them here, or in the documentation tab of the Bela IDE.

    silver2row When you ask 'what processing,' I am not sure I understand.

    the question here is: what does Bela do in your system. I assume you don't want the sound to just pass through it, but that you want to somehow modify the sound of your pickup as it goes through Bela.

    silver2row some source
    silver2row C++ as the source,

    I know seem to understand that by "source" in your original "diagram" you meant "source code", so the question is: what should that code do? How will it modify (process) the sound ?

    Whether it's a good starting idea depends on what you want to achieve. That example processes incoming audio via a short convolution. This could be used, for instance, to add a more "wooden" resonance to the sound picked up by the pickup installed on your violin.

    silver2row Would me using a 'string' midi be possible? For instance, once I get the midi working w/ the four strings and creating different tones w/ each, separate string, I could then move away from that idea.

    it seems that you want to process the sound coming from the pickup to generate MIDI data. This is much easier said than done. The process of pitch an envelope extraction is by itself fairly challenging when dealing with polyphonic signals. We do not have ready-made code that would do just that, however i believe in the online course there is a class on envelope detection. Even once you get to the point where you have pitch and envelope, the process of generating MIDI data from it is not straightforward either (one could easily spend a PhD working on just that), as MIDI is fundamentally the wrong tool for the job (see for example Moore, The Dysfunctions of MIDI, 1988. Even if you got MIDI out of it, where would you send that MIDI data to in order to synthesise a signal? Virtually no commercially available plugin will run on Bela (or most other embedded ARM computer, for what is worth), so you may end up having to run the sound engine on a laptop connected to Bela, in which case you could instead just use a soundcard and do without using Bela at all.

    So, if you are going to use Bela for this project, you may want to look at ways of using it to apply some effects to the incoming sound ...

      giuliomoro ,

      Seth here and Hello...yes sir. I understand partially what you are saying here as I do not have a long standing relationship w/ music-tech.

      Wooden sounds, heh? Okay...that is a start. I feel like the Maker Faire, which was cancelled until recently, had some disconnect w/ reaching out.

      So, I am learning a lot in a short period to produce an effect from BELA from the violin.

      Seth

      P.S. And right, the sound(s) are not meant to process nothing. I expect the sound to be distorted in some way via BELA. BELA needs to merely exchange and process the data it receives to perform functions on the data to turn it into a different sound. Okay! I am w/ you in this context. How will it modify the sound? "How" in this question is where I am at now.

      giuliomoro 💯

      Hello...I am receiving a bunch of errors. My first error was that /libraries/Biquad/QuadBiquad.h does not exist.

      So, I found it and added it in the file system. I received so many errors that I gave up. Boo to me!

      Anyway, is there an updated image you all provide to handle the /QuadBiquad.h file?

      Seth

      P.S. If it matters, here are the errors:

      In file ./libraries/Biquad/QuadBiquad.h: expected '(' for function-style cast or type construction column: 34, line: 11
      In file ./libraries/Biquad/QuadBiquad.h: expected member name or ';' after declaration specifiers column: 35, line: 11
      In file ./libraries/Biquad/QuadBiquad.h: use of undeclared identifier 'BiquadCoeff' column: 21, line: 33
      In file ./libraries/Biquad/QuadBiquad.h: explicit instantiation of non-template class 'BiquadCoeffT' column: 23, line: 75
      use of undeclared identifier 'BiquadCoeff'; did you mean 'BiquadCoeffT'? column: 9, line: 15
      incomplete type 'BiquadCoeffT' named in nested name specifier column: 9, line: 15
      use of undeclared identifier 'BiquadCoeff'; did you mean 'BiquadCoeffT'? column: 34, line: 25
      incomplete type 'BiquadCoeffT' named in nested name specifier column: 34, line: 25
      use of undeclared identifier 'BiquadCoeff'; did you mean 'BiquadCoeffT'? column: 34, line: 29
      incomplete type 'BiquadCoeffT' named in nested name specifier column: 34, line: 29
      no member named 'filters' in 'QuadBiquad' column: 31, line: 40
      expected function body after function declarator column: 51, line: 72
      In file included from /root/Bela/projects/Making_Wood_Sounds/render.cpp:11:
      ./libraries/Biquad/QuadBiquad.h:11:16: error: use of undeclared identifier 'BiquadCoeffT'
          std::array<BiquadCoeffT<float>, 4> filters;
                     ^
      ./libraries/Biquad/QuadBiquad.h:11:34: error: expected '(' for function-style cast or type construction
          std::array<BiquadCoeffT<float>, 4> filters;
                                  ~~~~~^
      ./libraries/Biquad/QuadBiquad.h:11:35: error: expected member name or ';' after declaration specifiers
          std::array<BiquadCoeffT<float>, 4> filters;
                                        ^
      ./libraries/Biquad/QuadBiquad.h:33:21: error: use of undeclared identifier 'BiquadCoeff'
          int setup(const BiquadCoeff::Settings& settings);
                          ^
      ./libraries/Biquad/QuadBiquad.h:75:23: error: explicit instantiation of non-template class 'BiquadCoeffT'
      extern template class BiquadCoeffT<float>;
                            ^           ~~~~~~~
      /root/Bela/projects/Making_Wood_Sounds/render.cpp:15:9: error: use of undeclared identifier 'BiquadCoeff'; did you mean 'BiquadCoeffT'?
              BiquadCoeff::Settings s = {
              ^~~~~~~~~~~
              BiquadCoeffT
      ./libraries/Biquad/QuadBiquad.h:75:23: note: 'BiquadCoeffT' declared here
      extern template class BiquadCoeffT<float>;
                            ^
      /root/Bela/projects/Making_Wood_Sounds/render.cpp:15:9: error: incomplete type 'BiquadCoeffT' named in nested name specifier
              BiquadCoeff::Settings s = {
              ^~~~~~~~~~~~~
      ./libraries/Biquad/QuadBiquad.h:75:23: note: forward declaration of 'BiquadCoeffT'
      extern template class BiquadCoeffT<float>;
                            ^
      /root/Bela/projects/Making_Wood_Sounds/render.cpp:25:34: error: use of undeclared identifier 'BiquadCoeff'; did you mean 'BiquadCoeffT'?
                              s.type = BiquadCoeff::lowpass;
                                       ^~~~~~~~~~~
                                       BiquadCoeffT
      ./libraries/Biquad/QuadBiquad.h:75:23: note: 'BiquadCoeffT' declared here
      extern template class BiquadCoeffT<float>;
                            ^
      /root/Bela/projects/Making_Wood_Sounds/render.cpp:25:34: error: incomplete type 'BiquadCoeffT' named in nested name specifier
                              s.type = BiquadCoeff::lowpass;
                                       ^~~~~~~~~~~~~
      ./libraries/Biquad/QuadBiquad.h:75:23: note: forward declaration of 'BiquadCoeffT'
      extern template class BiquadCoeffT<float>;
                            ^
      /root/Bela/projects/Making_Wood_Sounds/render.cpp:29:34: error: use of undeclared identifier 'BiquadCoeff'; did you mean 'BiquadCoeffT'?
                              s.type = BiquadCoeff::highpass;
                                       ^~~~~~~~~~~
                                       BiquadCoeffT
      ./libraries/Biquad/QuadBiquad.h:75:23: note: 'BiquadCoeffT' declared here
      extern template class BiquadCoeffT<float>;
                            ^
      /root/Bela/projects/Making_Wood_Sounds/render.cpp:29:34: error: incomplete type 'BiquadCoeffT' named in nested name specifier
                              s.type = BiquadCoeff::highpass;
                                       ^~~~~~~~~~~~~
      ./libraries/Biquad/QuadBiquad.h:75:23: note: forward declaration of 'BiquadCoeffT'
      extern template class BiquadCoeffT<float>;
                            ^
      /root/Bela/projects/Making_Wood_Sounds/render.cpp:40:31: error: no member named 'filters' in 'QuadBiquad'
                              bs[b].filters[q].setup(s);
                              ~~~~~ ^
      /root/Bela/projects/Making_Wood_Sounds/render.cpp:72:51: error: expected function body after function declarator
      void cleanup(BelaContext *context, void *userData)
                                                        ^
      13 errors generated.
      make: *** [/root/Bela/projects/Making_Wood_Sounds/build/render.o] Error 1

        silver2row Anyway, is there an updated image you all provide to handle the /QuadBiquad.h file?

        You should update your Bela code using the procedure here. That should fix most of the above.

          giuliomoro

          Hello,

          I got my 3D Printed violin to make sound from you and your projects resources via BELA and a small tweeter speaker. Anyway, I will be making a video and post it soon to Hackster.io for all of the people still interested in Music, BELA, and hardware along w/ the BBB.

          Thank you, sir. Now, I can try all sorts of things w/ it.

          Seth

          P.S. I will get the link to the video soon once the video uploads.

          Here is the mildly sound-a-rific violin being played on a tweeter for testing w/ the libraries you all have made.

          Seth

          Hi Seth,

          That video isn't playing here.

          Also do you have some pics of the violin. I have difficulty printing the simplest thing on my printer, the idea of a 3d printed violin is mad!

            video plays fine?
            violin looks sweet!

            sound may need some work, hah. 🙂
            good luck!

              Hello Remork and AndyCap ,

              I can view the video. It is a f-f-fiddle but in 3/4 size. The fellow that produced the files are all online when one searches for f-f-fiddle.

              Also, yes. I need to work on the sound. The bow will not be rosined by me firstly. So, I should get a real violin player or a child that is willing to try at the Faire to rosin the bow so they may play.

              Seth

              P.S. Thank you! I will need it. I am no C++ expert as most of you can already tell, plus I am not a real violin student, and I love music (all kinds). Soothing to erratic and chaotic to melodic, all suits my needs of ear hole consumption!

              AndyCap

              Hello, I just reread what you typed. I kind of said already what to research on this effort but...

              Here: https://openfabpdx.com/fffiddle/

              That will bring you directly to the engineer who made it and other products he produces. Most of it is open source but some are a bit complicated, i.e. so he is trying to produce efforts outside of plain-Jane, Open Source.

              Seth

              Thanks for that link I will read through it...

              All I get on the video here on safari on a mac is a play button that doesn't work!

                video works fine on firefox.

                AndyCap

                Sir,

                You are not missing much. I slowly pick the violin to make sounds instead of use the rosined bow.

                Seth

                P.S. But...things are coming along. I will post another one soon.