Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Hello !
On 2016-05-09 17:01, Christof Ressi wrote:
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I have personally used the ESP8266 with either Arduino or the more low-level C SDK from the manufacturer, I like this platform. I have always wanted to see how much it could achieve in terms of DSP. One missing part, though, is the output. How do you plan to output audio from it? It has SPI that could get you to connect to some DACs but nothing of top quality audio. One can also use PWM to simulate analog out.
I think LibPd has too much dependencies and is indeed too intensive to run on such small microcontrollers. Heavy from EnzienAudio might be a better candidate for this as it is optimised for such environments: https://enzienaudio.com/ It's used on recent projects such as Hoxton Owl (https://hoxtonowl.com) and Bela (http://bela.io).
I have personally only made some tests with Heavy so I can't offer more than just sugestions. Still I plan to try it on various hardware platforms from ESP8266 to bigger CPUs.
Hope that helps Lumis/Fergus
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi, thanks for your answer! I'll definitely have a look at heavy and compare the results with some bits of my own DSP code.
How do you plan to output audio from it? It has SPI that could get you to connect to some DACs but nothing of top quality audio. One can also use PWM to simulate analog out.
I actually thought of connecting ADCs and DACs via SPI, I don't need top audio quality, I'm rather looking for cheap effect/sound boxes :-). On the other hand, the ESP8266 also an I2S interface (dedicated to audio). I've seen videos of people streaming and playing mp3 files with it!
Once I've done my tests (probably not before July), I'll tell my results.
Christof
Gesendet: Montag, 09. Mai 2016 um 17:37 Uhr Von: "Lumis Xulepth" lumis@xulepth.fr An: "Christof Ressi" christof.ressi@gmx.at Cc: pd-list@lists.iem.at Betreff: Re: [PD] LibPd on microcontroller
Hello !
On 2016-05-09 17:01, Christof Ressi wrote:
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I have personally used the ESP8266 with either Arduino or the more low-level C SDK from the manufacturer, I like this platform. I have always wanted to see how much it could achieve in terms of DSP. One missing part, though, is the output. How do you plan to output audio from it? It has SPI that could get you to connect to some DACs but nothing of top quality audio. One can also use PWM to simulate analog out.
I think LibPd has too much dependencies and is indeed too intensive to run on such small microcontrollers. Heavy from EnzienAudio might be a better candidate for this as it is optimised for such environments: https://enzienaudio.com/ It's used on recent projects such as Hoxton Owl (https://hoxtonowl.com) and Bela (http://bela.io).
I have personally only made some tests with Heavy so I can't offer more than just sugestions. Still I plan to try it on various hardware platforms from ESP8266 to bigger CPUs.
Hope that helps Lumis/Fergus
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi,
I've read your mail, it actually was the key source of inspiration for trying out DSP on a microcontroller!
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
I might be crazy as well then :-). I just wanna give it a try and see how far I'll get. I'm just excited about the low price of these modules, given their rather fast speed (and of course the integrated WiFi functionality!). I'm dreaming of tiny effect/sound modules that do a certain DSP job and receive/send messages via WiFi.
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware.
Apparantly the Teensy 3.x uses the non-FPU version of the cortex M4: https://forum.pjrc.com/threads/25909-Teensy3-1-and-FPU-%28Floating-Poitn-Uni...
Right now I can't see any advantage over the ESP8266. Also it costs about 4 times as much!
Some guy made a benchmark test between ESP8266, Teensy 3.1 and Arduino Due: http://forum.arduino.cc/index.php?topic=337653.0
The ESP8266 wins for floating points (and loses clearly for integers).
Since you got DSP stuff working on an Arduino Due, it should also work on an ESP8266, I guess... But it's my task to find out.
By the way, what kind of interface did you actually choose for the audio output and have you tried several methods?
Thanks for sharing your experience!
Christof
Gesendet: Montag, 09. Mai 2016 um 17:39 Uhr Von: "cyrille henry" ch@chnry.net An: pd-list@lists.iem.at Betreff: Re: [PD] LibPd on microcontroller
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
hello,
Le 10/05/2016 00:37, Christof Ressi a écrit :
Hi,
I've read your mail, it actually was the key source of inspiration for trying out DSP on a microcontroller!
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
I might be crazy as well then :-). I just wanna give it a try and see how far I'll get. I'm just excited about the low price of these modules, given their rather fast speed (and of course the integrated WiFi functionality!). I'm dreaming of tiny effect/sound modules that do a certain DSP job and receive/send messages via WiFi.
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware.
Apparantly the Teensy 3.x uses the non-FPU version of the cortex M4: https://forum.pjrc.com/threads/25909-Teensy3-1-and-FPU-%28Floating-Poitn-Uni...
crap.
Right now I can't see any advantage over the ESP8266. Also it costs about 4 times as much!
unless you are planning to produce 100 000 of this hardware, 20$ is nothing regarding 1 month of work. I think you should start using the ESP8266 for the wifi and connect them to a teensy and it's audio feature. Then, you'll be able to optimized the teensy with you DSP code, and eventually put it in the ESP8266.
Some guy made a benchmark test between ESP8266, Teensy 3.1 and Arduino Due: http://forum.arduino.cc/index.php?topic=337653.0
The ESP8266 wins for floating points (and loses clearly for integers).
floating point are about 10 time slower than int. You can't use them.
according to this benchmark, on the ESP826 chip, this line of code need 431ms: for (int i = 0; i < 100000; i++) a += a * a + 1000.7 / a - 40.4;
at 44.1KHz, you have only 22µs between audio sample. let's say that you can use 15µs for each sample, the rest for the wifi, audio codec communication, etc.
1 sample computation should then be faster than : for (int i = 0; i < 4; i++) a += a * a + 1000.7 / a - 40.4; (note the i<4) : this is not much for serious DSP stuff.
using int on the ESP826, 1 sample computation should be faster than : for (int i = 0; i < 37; i++) b += b * b + 1000 / b - 40;
on the OCS synth, i reduce the moog filter (same algo than the one i send to this list) to:
20 time the >> or << instruction 23 : addition or substraction 12 : 32 bit multiplication 6 : 64 bit multiplication
it is the most CPU hungry module.
Since you got DSP stuff working on an Arduino Due, it should also work on an ESP8266, I guess... But it's my task to find out.
it work, but only if you find how an elephant can fit in a show box.
By the way, what kind of interface did you actually choose for the audio output and have you tried several methods?
I know only 1 way to go : i2s. i use a WM8731.
cheers c
Thanks for sharing your experience!
Christof
Gesendet: Montag, 09. Mai 2016 um 17:39 Uhr Von: "cyrille henry" ch@chnry.net An: pd-list@lists.iem.at Betreff: Re: [PD] LibPd on microcontroller
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
it work, but only if you find how an elephant can fit in a show box.
I understand :-). Thanks for your clarification! Probably saved me lots of wasted time.
Gesendet: Dienstag, 10. Mai 2016 um 10:47 Uhr Von: "cyrille henry" ch@chnry.net An: pd-list@lists.iem.at Betreff: Re: [PD] LibPd on microcontroller
hello,
Le 10/05/2016 00:37, Christof Ressi a écrit :
Hi,
I've read your mail, it actually was the key source of inspiration for trying out DSP on a microcontroller!
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
I might be crazy as well then :-). I just wanna give it a try and see how far I'll get. I'm just excited about the low price of these modules, given their rather fast speed (and of course the integrated WiFi functionality!). I'm dreaming of tiny effect/sound modules that do a certain DSP job and receive/send messages via WiFi.
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware.
Apparantly the Teensy 3.x uses the non-FPU version of the cortex M4: https://forum.pjrc.com/threads/25909-Teensy3-1-and-FPU-%28Floating-Poitn-Uni...
crap.
Right now I can't see any advantage over the ESP8266. Also it costs about 4 times as much!
unless you are planning to produce 100 000 of this hardware, 20$ is nothing regarding 1 month of work. I think you should start using the ESP8266 for the wifi and connect them to a teensy and it's audio feature. Then, you'll be able to optimized the teensy with you DSP code, and eventually put it in the ESP8266.
Some guy made a benchmark test between ESP8266, Teensy 3.1 and Arduino Due: http://forum.arduino.cc/index.php?topic=337653.0
The ESP8266 wins for floating points (and loses clearly for integers).
floating point are about 10 time slower than int. You can't use them.
according to this benchmark, on the ESP826 chip, this line of code need 431ms: for (int i = 0; i < 100000; i++) a += a * a + 1000.7 / a - 40.4;
at 44.1KHz, you have only 22µs between audio sample. let's say that you can use 15µs for each sample, the rest for the wifi, audio codec communication, etc.
1 sample computation should then be faster than : for (int i = 0; i < 4; i++) a += a * a + 1000.7 / a - 40.4; (note the i<4) : this is not much for serious DSP stuff.
using int on the ESP826, 1 sample computation should be faster than : for (int i = 0; i < 37; i++) b += b * b + 1000 / b - 40;
on the OCS synth, i reduce the moog filter (same algo than the one i send to this list) to:
20 time the >> or << instruction 23 : addition or substraction 12 : 32 bit multiplication 6 : 64 bit multiplication
it is the most CPU hungry module.
Since you got DSP stuff working on an Arduino Due, it should also work on an ESP8266, I guess... But it's my task to find out.
it work, but only if you find how an elephant can fit in a show box.
By the way, what kind of interface did you actually choose for the audio output and have you tried several methods?
I know only 1 way to go : i2s. i use a WM8731.
cheers c
Thanks for sharing your experience!
Christof
Gesendet: Montag, 09. Mai 2016 um 17:39 Uhr Von: "cyrille henry" ch@chnry.net An: pd-list@lists.iem.at Betreff: Re: [PD] LibPd on microcontroller
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
I wrote
Since you got DSP stuff working on an Arduino Due, it should also work on an ESP8266, I guess...
Now I just realized you did everything with 32 bit integer math. I'll forget about audio synthesis on ESP8266 and rather check out the CHIP.
Thanks so far!
Gesendet: Dienstag, 10. Mai 2016 um 00:37 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: "cyrille henry" ch@chnry.net Cc: pd-list@lists.iem.at Betreff: Aw: Re: [PD] LibPd on microcontroller
Hi,
I've read your mail, it actually was the key source of inspiration for trying out DSP on a microcontroller!
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
I might be crazy as well then :-). I just wanna give it a try and see how far I'll get. I'm just excited about the low price of these modules, given their rather fast speed (and of course the integrated WiFi functionality!). I'm dreaming of tiny effect/sound modules that do a certain DSP job and receive/send messages via WiFi.
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware.
Apparantly the Teensy 3.x uses the non-FPU version of the cortex M4: https://forum.pjrc.com/threads/25909-Teensy3-1-and-FPU-%28Floating-Poitn-Uni...
Right now I can't see any advantage over the ESP8266. Also it costs about 4 times as much!
Some guy made a benchmark test between ESP8266, Teensy 3.1 and Arduino Due: http://forum.arduino.cc/index.php?topic=337653.0
The ESP8266 wins for floating points (and loses clearly for integers).
Since you got DSP stuff working on an Arduino Due, it should also work on an ESP8266, I guess... But it's my task to find out.
By the way, what kind of interface did you actually choose for the audio output and have you tried several methods?
Thanks for sharing your experience!
Christof
Gesendet: Montag, 09. Mai 2016 um 17:39 Uhr Von: "cyrille henry" ch@chnry.net An: pd-list@lists.iem.at Betreff: Re: [PD] LibPd on microcontroller
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Le 10/05/2016 10:48, Christof Ressi a écrit :
I wrote
Since you got DSP stuff working on an Arduino Due, it should also work on an ESP8266, I guess...
Now I just realized you did everything with 32 bit integer math. I'll forget about audio synthesis on ESP8266 and rather check out the CHIP.
you're not so crazy after all!
Thanks so far!
Gesendet: Dienstag, 10. Mai 2016 um 00:37 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: "cyrille henry" ch@chnry.net Cc: pd-list@lists.iem.at Betreff: Aw: Re: [PD] LibPd on microcontroller
Hi,
I've read your mail, it actually was the key source of inspiration for trying out DSP on a microcontroller!
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
I might be crazy as well then :-). I just wanna give it a try and see how far I'll get. I'm just excited about the low price of these modules, given their rather fast speed (and of course the integrated WiFi functionality!). I'm dreaming of tiny effect/sound modules that do a certain DSP job and receive/send messages via WiFi.
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware.
Apparantly the Teensy 3.x uses the non-FPU version of the cortex M4: https://forum.pjrc.com/threads/25909-Teensy3-1-and-FPU-%28Floating-Poitn-Uni...
Right now I can't see any advantage over the ESP8266. Also it costs about 4 times as much!
Some guy made a benchmark test between ESP8266, Teensy 3.1 and Arduino Due: http://forum.arduino.cc/index.php?topic=337653.0
The ESP8266 wins for floating points (and loses clearly for integers).
Since you got DSP stuff working on an Arduino Due, it should also work on an ESP8266, I guess... But it's my task to find out.
By the way, what kind of interface did you actually choose for the audio output and have you tried several methods?
Thanks for sharing your experience!
Christof
Gesendet: Montag, 09. Mai 2016 um 17:39 Uhr Von: "cyrille henry" ch@chnry.net An: pd-list@lists.iem.at Betreff: Re: [PD] LibPd on microcontroller
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Apropos of the heavy compiler, I was reading up on it and simply moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry ch@chnry.net wrote:
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
heavy compile pd patch in C code. you can then compile this C code to whatever architecture/platform you wish.
cheers c
Le 14/05/2016 00:22, Chuckk Hubbard a écrit :
Apropos of the heavy compiler, I was reading up on it and simply moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry <ch@chnry.net mailto:ch@chnry.net> wrote:
hello, I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd. i did not recommend libpd for microcontrolers. in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that). a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE. You can also have a look at the heavy compiler if you want to embedded a pd patch. Cyrille Le 09/05/2016 17:01, Christof Ressi a écrit : Hi, has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd. I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited: "ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development." Christof _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
-- http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Thanks. Still, I have the feeling it will not be so simple without an OS. Anyone tried it? -Chuckk
On Sat, May 14, 2016 at 1:34 AM, cyrille henry ch@chnry.net wrote:
heavy compile pd patch in C code. you can then compile this C code to whatever architecture/platform you wish.
cheers c
Le 14/05/2016 00:22, Chuckk Hubbard a écrit :
Apropos of the heavy compiler, I was reading up on it and simply moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry <ch@chnry.net mailto: ch@chnry.net> wrote:
hello, I recently send a mail in this list describing my experience of audio
synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers. in fact, I did not recommend audio processing on hardware that did
not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find
them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to
embedded a pd patch.
Cyrille Le 09/05/2016 17:01, Christof Ressi a écrit : Hi, has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers
and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro
controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management ->
https://lists.puredata.info/listinfo/pd-list
_______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management ->
https://lists.puredata.info/listinfo/pd-list
-- http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Yes. (Max/FTS, 1990)... not with this partiular codebase. But it would be great if it were possible to supply open/read/write/close, etc., to Pd as a library faked as in Max/FTS so that it could run on a no-OS processor.
cheers Miller
On Sat, May 14, 2016 at 02:03:37AM +0300, Chuckk Hubbard wrote:
Thanks. Still, I have the feeling it will not be so simple without an OS. Anyone tried it? -Chuckk
On Sat, May 14, 2016 at 1:34 AM, cyrille henry ch@chnry.net wrote:
heavy compile pd patch in C code. you can then compile this C code to whatever architecture/platform you wish.
cheers c
Le 14/05/2016 00:22, Chuckk Hubbard a écrit :
Apropos of the heavy compiler, I was reading up on it and simply moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry <ch@chnry.net mailto: ch@chnry.net> wrote:
hello, I recently send a mail in this list describing my experience of audio
synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers. in fact, I did not recommend audio processing on hardware that did
not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find
them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to
embedded a pd patch.
Cyrille Le 09/05/2016 17:01, Christof Ressi a écrit : Hi, has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers
and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro
controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management ->
https://lists.puredata.info/listinfo/pd-list
_______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management ->
https://lists.puredata.info/listinfo/pd-list
-- http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
that's just a question of experience, and hardware.
running a micro-processor (like in the raspberry pi) without OS is not simple (look at "bare metal raspberry-pi").
but using a micro-controller, things are lot's easier.
an arduino hardware by example is "just" a micro-controller, a power supply, a usb plug, and a clock source. but you can program them using a serial connection, and the clock source can be internal to the µP, so you can reduce this hardware to only the µController.
on the software side, the arduino environment is "just" a GUI Around a text editor + GCC compiler + a collection of function that make life easier for beginner.
so, the "hello world" of running a code without OS is "only" : GCC -> serial connecting -> µC add a 3.3 or 5V, and voila!
For example : this run simple C code : http://www.rcch.free.fr/IMG/jpg/p1000031.jpg
the "hello world" of running an audio code without OS is a bit more complex since you have to add an audio codec (the 3$ chip that act like a soundcard), and make it communicate with the µC. but since there is a standard communication protocol (I2S), it's just a matter of configuration on the µC side. (and of course, use a very powerful µC)
regarding running (compiled) pd patch without OS, the owl guitar pedal look nice: https://hoxtonowl.com/
and the hardware is "simple" : http://www.rebeltech.org/wp-content/uploads/2015/08/OWLDigitalBoard-e1440697...
a big µC (top left), a memory (for sound samples storage : top right)), the audio codec (bottom right), 2 quartz (for the µC and audio codec clock source), a power supply (bottom left), and a usb plug that goes directly to the µC.
anyhow, it did not use libpd.
The only hardware i'm aware that run pd patch (without prior compilation) is the 15 year old gluiph by sukandar kartadinata. it was long before libpd, and use a huge FPGA.
cheers C
Le 14/05/2016 01:03, Chuckk Hubbard a écrit :
Thanks. Still, I have the feeling it will not be so simple without an OS. Anyone tried it? -Chuckk
On Sat, May 14, 2016 at 1:34 AM, cyrille henry <ch@chnry.net mailto:ch@chnry.net> wrote:
heavy compile pd patch in C code. you can then compile this C code to whatever architecture/platform you wish. cheers c Le 14/05/2016 00:22, Chuckk Hubbard a écrit : Apropos of the heavy compiler, I was reading up on it and simply moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk On Mon, May 9, 2016 at 6:39 PM, cyrille henry <ch@chnry.net <mailto:ch@chnry.net> <mailto:ch@chnry.net <mailto:ch@chnry.net>>> wrote: hello, I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd. i did not recommend libpd for microcontrolers. in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that). a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE. You can also have a look at the heavy compiler if you want to embedded a pd patch. Cyrille Le 09/05/2016 17:01, Christof Ressi a écrit : Hi, has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here: https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd. I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited: "ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development." Christof _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> <mailto:Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at>> mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> <mailto:Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at>> mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list -- http://www.badmuthahubbard.com _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
-- http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Chuckk,
I'm one of the developers of heavy. Apologies that you felt some information was lacking, would be very interested in hearing more about your experience and what wasn't answered.
The code that heavy generates should compile on any platform that has a C99 compiler, and if it didn't we'd be very interested in looking into why. There are no OS specific dependencies and you can even swap out your own malloc, math, etc.. implementations.
The code is optimised for SSE, AVX and NEON instruction sets and we also provide a single sample option for platforms where they are not available (i.e. javascript)
Here's an example of integration with portaudio https://github.com/enzienaudio/examples/tree/master/portaudio
Thanks, Joe
On 13 May 2016 at 23:22, Chuckk Hubbard badmuthahubbard@gmail.com wrote:
Apropos of the heavy compiler, I was reading up on it and simply moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry ch@chnry.net wrote:
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
-- http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Joe, hi list
On 2016-05-15 15:06, Joe White wrote:
Hi Chuckk,
I'm one of the developers of heavy. Apologies that you felt some information was lacking, would be very interested in hearing more about your experience and what wasn't answered.
I don't know what Chuckk's comments precisely are, I just found myself several times looking for the documentation. Maybe the hamburger on the top right isn't obvious for everyone? Again, I still haven't used it on a specific platform but I think that once logged in and having compiled a few patches, navigation is easier. I like to be able to switch implementations (C/Unity/Vst etc...) documentation easily! :)
The code that heavy generates should compile on any platform that has a C99 compiler, and if it didn't we'd be very interested in looking into why. There are no OS specific dependencies and you can even swap out your own malloc, math, etc.. implementations.
To your knowledge, has there been usecases or tests of Heavy on MIPS platform? Recently I've been thinking about using OpenWRT boards (most are MIPS32), generally CPU is 300-600MHz with minimal linux running on it for realtime audio.
Thanks for your answers.
Lumis/Fergus
The code is optimised for SSE, AVX and NEON instruction sets and we also provide a single sample option for platforms where they are not available (i.e. javascript)
Here's an example of integration with portaudio https://github.com/enzienaudio/examples/tree/master/portaudio [3]
Thanks, Joe
On 13 May 2016 at 23:22, Chuckk Hubbard badmuthahubbard@gmail.com wrote:
Apropos of the heavy compiler, I was reading up on it and simply moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry ch@chnry.net wrote: hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit : Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar...
[1] There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
--
http://www.badmuthahubbard.com [4] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
Links:
[1] https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... [2] https://lists.puredata.info/listinfo/pd-list [3] https://github.com/enzienaudio/examples/tree/master/portaudio [4] http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Lumis,
Thanks for the feedback! We're actually looking at using an alternative documentation system which should hopefully make it a lot easier to find the info you need. Totally agree the burger menu can be a bit non-intuitive, writing web sites ain't as fun as DSP :(
I don't personally have any experience with MIPS platforms, do you have a board you try it out on? Can support as much as possible.
Thanks, Joe
On 15 May 2016 at 15:48, Lumis Xulepth lumis@xulepth.fr wrote:
Hi Joe, hi list
On 2016-05-15 15:06, Joe White wrote:
Hi Chuckk,
I'm one of the developers of heavy. Apologies that you felt some information was lacking, would be very interested in hearing more about your experience and what wasn't answered.
I don't know what Chuckk's comments precisely are, I just found myself several times looking for the documentation. Maybe the hamburger on the top right isn't obvious for everyone? Again, I still haven't used it on a specific platform but I think that once logged in and having compiled a few patches, navigation is easier. I like to be able to switch implementations (C/Unity/Vst etc...) documentation easily! :)
The code that heavy generates should compile on any platform that has a C99 compiler, and if it didn't we'd be very interested in looking into why. There are no OS specific dependencies and you can even swap out your own malloc, math, etc.. implementations.
To your knowledge, has there been usecases or tests of Heavy on MIPS platform? Recently I've been thinking about using OpenWRT boards (most are MIPS32), generally CPU is 300-600MHz with minimal linux running on it for realtime audio.
Thanks for your answers.
Lumis/Fergus
The code is optimised for SSE, AVX and NEON instruction sets and we also provide a single sample option for platforms where they are not available (i.e. javascript)
Here's an example of integration with portaudio https://github.com/enzienaudio/examples/tree/master/portaudio [3]
Thanks, Joe
On 13 May 2016 at 23:22, Chuckk Hubbard badmuthahubbard@gmail.com wrote:
Apropos of the heavy compiler, I was reading up on it and simply
moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry ch@chnry.net wrote: hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit : Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar...
[1] There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
--
http://www.badmuthahubbard.com [4] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
Links:
[1]
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... [2] https://lists.puredata.info/listinfo/pd-list [3] https://github.com/enzienaudio/examples/tree/master/portaudio [4] http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hello, Joe White white.joe4@gmail.com wrote:
Hi Lumis,
Thanks for the feedback! We're actually looking at using an alternative documentation system which should hopefully make it a lot easier to find the info you need. Totally agree the burger menu can be a bit non-intuitive, writing web sites ain't as fun as DSP :(
Dead simple idea: a button group on top of the page in place of the burger might be a good start... Just a quick idea :) I understand the frustration!
I don't personally have any experience with MIPS platforms, do you have a board you try it out on? Can support as much as possible.
Again I haven't tested much yet. I can name a few:
The first thing I should do is to try to compile a simple patch on this platform. Speaking about test patches, what would you suggest as a heavy-load stress test patch for a platform? Something that one could tune to see how far the DSP processing power of the CPU can be pushed.
Some background info: the reason I'm interested in these boards is that a lot exist in the price range of a good arduino board ($10-30), provide a minimal linux, a very active community through OpenWRT, advanced networking (usually have wifi, sometimes 2 wifi, often ethernet, sometimes several ethernet ports!) that might help a lot in the case of networked audio/performance/installations. It is not in any case a replacement for either an Arduino or a full computer running "standard" Debian/Ubuntu linux, it sits at the median point between a bare metal C-programmed microcontroller and a systemd-controlled freshly released Ubuntu version.
Thanks, Joe
On 15 May 2016 at 15:48, Lumis Xulepth lumis@xulepth.fr wrote:
Hi Joe, hi list
On 2016-05-15 15:06, Joe White wrote:
Hi Chuckk,
I'm one of the developers of heavy. Apologies that you felt some information was lacking, would be very interested in hearing more about your experience and what wasn't answered.
I don't know what Chuckk's comments precisely are, I just found myself several times looking for the documentation. Maybe the hamburger on the top right isn't obvious for everyone? Again, I still haven't used it on a specific platform but I think that once logged in and having compiled a few patches, navigation is easier. I like to be able to switch implementations (C/Unity/Vst etc...) documentation easily! :)
The code that heavy generates should compile on any platform that has a C99 compiler, and if it didn't we'd be very interested in looking into why. There are no OS specific dependencies and you can even swap out your own malloc, math, etc.. implementations.
To your knowledge, has there been usecases or tests of Heavy on MIPS platform? Recently I've been thinking about using OpenWRT boards (most are MIPS32), generally CPU is 300-600MHz with minimal linux running on it for realtime audio.
Thanks for your answers.
Lumis/Fergus
The code is optimised for SSE, AVX and NEON instruction sets and we also provide a single sample option for platforms where they are not available (i.e. javascript)
Here's an example of integration with portaudio https://github.com/enzienaudio/examples/tree/master/portaudio [3]
Thanks, Joe
On 13 May 2016 at 23:22, Chuckk Hubbard badmuthahubbard@gmail.com wrote:
Apropos of the heavy compiler, I was reading up on it and simply
moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry ch@chnry.net wrote: hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit : Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar...
[1] There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
--
http://www.badmuthahubbard.com [4] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list [2]
Links:
[1]
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... [2] https://lists.puredata.info/listinfo/pd-list [3] https://github.com/enzienaudio/examples/tree/master/portaudio [4] http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi, Joe. Thanks for sharing Heavy. I was simply referring to the main page saying "heavy supports a range of platforms and frameworks allowing easy integration to your project." Before going through the documentation, I was hoping to see which platforms and frameworks. I see some logos, is that the list? Chuckk
On Sun, May 15, 2016 at 4:06 PM, Joe White white.joe4@gmail.com wrote:
Hi Chuckk,
I'm one of the developers of heavy. Apologies that you felt some information was lacking, would be very interested in hearing more about your experience and what wasn't answered.
The code that heavy generates should compile on any platform that has a C99 compiler, and if it didn't we'd be very interested in looking into why. There are no OS specific dependencies and you can even swap out your own malloc, math, etc.. implementations.
The code is optimised for SSE, AVX and NEON instruction sets and we also provide a single sample option for platforms where they are not available (i.e. javascript)
Here's an example of integration with portaudio https://github.com/enzienaudio/examples/tree/master/portaudio
Thanks, Joe
On 13 May 2016 at 23:22, Chuckk Hubbard badmuthahubbard@gmail.com wrote:
Apropos of the heavy compiler, I was reading up on it and simply moved on because of what seems to me a lack of information. There was an allusion to it working for a wide variety of platforms and so on, but no actual lists of this supposedly wide variety. Does someone have an idea if it could compile Pd patches to work without an OS for some architecture? Otherwise, why would you bother with it? (that's not a rhetorical question) Thanks. -Chuckk
On Mon, May 9, 2016 at 6:39 PM, cyrille henry ch@chnry.net wrote:
hello,
I recently send a mail in this list describing my experience of audio synthesis on microcontroler, but i did not use libpd.
i did not recommend libpd for microcontrolers.
in fact, I did not recommend audio processing on hardware that did not have support for float arithmetic. (only me or crazy nerd do that).
a micro controller to use is for example the cortex M4. You can find them on the teensy hardware. teensy also provide a audio synthesis library, and is supported by arduino IDE.
You can also have a look at the heavy compiler if you want to embedded a pd patch.
Cyrille
Le 09/05/2016 17:01, Christof Ressi a écrit :
Hi,
has anyone experience in using LibPd on a microcontroller? I wanna try to run some rather basic DSP code on this guy here:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardwar... There are some existing Arduino/C++ frameworks and I thought I could either write my own small DSP library in C++ or use LibPd.
I understood that LibPd is completely independed of audio drivers and external libraries and since it's plain C code it should work on everything that can run code. However, I have only encountered LibPd in the context of other applications (processing, openFrameworks) and mobile devices so far. Do you think it could work on an ESP8266? I'm also a bit concerned about efficiency, as computation power is rather limited:
"ESP8266EX is embedded with Tensilica L106 32-bit micro controller (MCU), which features extra low power consumption and 16-bit RSIC. The CPU clock speed is 80MHz. It can also reach a maximum value of 160MHz. Real Time Operation System (RTOS) is enabled. Currently, only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development."
Christof
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
-- http://www.badmuthahubbard.com
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list