# AudioProcessor class for standalone app

**URL:** <https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187>\
**Category:** General JUCE discussion\
**Created:** [March 8, 2019, 11:05pm UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187 "2019-03-08T23:05:06Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tibael](https://avatars.discourse-cdn.com/v4/letter/t/c89c15/32.png) [@Tibael](https://forum.juce.com/u/Tibael)\
**Post date:** [March 8, 2019, 11:05pm UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187/1 "2019-03-08T23:05:06Z")

</div>

Hello !

I’m searching about how to activate the callback of the functions prepareToPlay (), processBlock (), and releaseSource () in the AudioProcessor class in a standalone audio app !  
I found a lot of information about the AudioProcessor class for plugins but not so much for standalone app, so is it possible to use this class for standalone ?

I also look about how to dynamically add and remove busses…

Thanks

---

<div class="post-metadata">

**Author:** ![xenakios](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/xenakios/32/4047_2.png) [@xenakios](https://forum.juce.com/u/xenakios)\
**Post date:** [March 8, 2019, 11:08pm UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187/2 "2019-03-08T23:08:44Z")

</div>

It’s possible to use AudioProcessor in a standalone app, but I think the recommended way to do things these days is to start a plugin project with the standalone application builld option enabled. (That builds a small application wrapper that instantiates the AudioProcessor subclass that is also used for VST etc plugins.)

---

<div class="post-metadata">

**Author:** ![Tibael](https://avatars.discourse-cdn.com/v4/letter/t/c89c15/32.png) [@Tibael](https://forum.juce.com/u/Tibael)\
**Post date:** [March 11, 2019, 12:34pm UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187/3 "2019-03-11T12:34:02Z")

</div>

Ok, thank you for your answer !

The difference between plugin and standalone is that for standalone there is no host, who manage the I/O (If I understand) so do you think I have to add an Audio Device Manager class to the plugin template ? And Audio Device Manager initialise the callbacks of audio process ?

Thanks

---

<div class="post-metadata">

**Author:** ![xenakios](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/xenakios/32/4047_2.png) [@xenakios](https://forum.juce.com/u/xenakios)\
**Post date:** [March 11, 2019, 1:34pm UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187/4 "2019-03-11T13:34:48Z")

</div>

No, you don’t need your own AudioDeviceManager instance or an AudioIODeviceCallback, the standalone application part in the plugin template deals with all that, you only need to implement the AudioProcessor subclass like you would for a plugin. The downside is that if you need to customize how the standalone application looks like and behaves, that is not very well explained anywhere.

If you decide to have your own custom standalone application with an AudioDeviceManager and an AudioIODeviceCallback, the corresponding methods are :

AudioProcessor::prepareToPlay : AudioIODeviceCallback::audioDeviceAboutToStart  
AudioProcessor::releaseResources : AudioDeviceIOCallback::audioDeviceStopped  
AudioProcessor::processBlock : AudioIODeviceCallback:: audioDeviceIOCallback

For the processBlock call you have to form an appropriate AudioBuffer from the arguments passed into the audioDeviceIOCallback method.

---

<div class="post-metadata">

**Author:** ![guerlando](https://avatars.discourse-cdn.com/v4/letter/g/db5fbb/32.png) [@guerlando](https://forum.juce.com/u/guerlando)\
**Post date:** [May 31, 2021, 5:58pm UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187/5 "2021-05-31T17:58:55Z")

</div>

I’m trying to make a standalone app with an AudioProcessor and I’m having dificulties.

I used an AudioDeviceManager but it expects my AudioProcessor to have an input, otherwise it gives assertion errors.

I couldn’t find such plugin template that you mention.

Here’s my problem: [How to play an audio processor without a plugin editor? - #7 by anoesisaudio](https://forum.juce.com/t/how-to-play-an-audio-processor-without-a-plugin-editor/46257/7)

---

<div class="post-metadata">

**Author:** ![Rincewind](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rincewind/32/10645_2.png) [@Rincewind](https://forum.juce.com/u/Rincewind)\
**Post date:** [June 6, 2021, 5:34am UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187/6 "2021-06-06T05:34:12Z")

</div>

Is using the standalone app target that does all the work for you really of the Table?

---

<div class="post-metadata">

**Author:** ![guerlando](https://avatars.discourse-cdn.com/v4/letter/g/db5fbb/32.png) [@guerlando](https://forum.juce.com/u/guerlando)\
**Post date:** [June 6, 2021, 5:45am UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187/7 "2021-06-06T05:45:51Z")

</div>

I couldn’t find it, I don’t know what it means

---

<div class="post-metadata">

**Author:** ![Rincewind](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rincewind/32/10645_2.png) [@Rincewind](https://forum.juce.com/u/Rincewind)\
**Post date:** [June 6, 2021, 6:19am UTC](https://forum.juce.com/t/audioprocessor-class-for-standalone-app/32187/8 "2021-06-06T06:19:35Z")

</div>

When you create a new project select audio plugin. This project contains a build condifuration to create a dtandalone app
