# Perspective Audio component

**URL:** <https://forum.inductiveautomation.com/t/perspective-audio-component/62558>\
**Category:** General Discussion\
**Tags:** perspective\
**Created:** [August 1, 2022, 5:49pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558 "2022-08-01T17:49:08Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![bwirth](https://avatars.discourse-cdn.com/v4/letter/b/41988e/32.png) [@bwirth](https://forum.inductiveautomation.com/u/bwirth)\
**Post date:** [August 1, 2022, 5:49pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/1 "2022-08-01T17:49:08Z")

</div>

Looking through the file compatibilities for the Perspective Audio component, I don’t see compatibility for .wav files. I’m assuming wav is not supported. Also, which browser compatibility would I use for Perspective Workstation (more specifically, Perspective Workstation on Linux (RedHat))

Working to play a sound clip for new alarms.

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [August 1, 2022, 6:08pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/2 "2022-08-01T18:08:57Z")

</div>

My original testing included use of .wav files, so they definitely work. Workstation uses a built-in Chromium browser.

---

<div class="post-metadata">

**Author:** ![bwirth](https://avatars.discourse-cdn.com/v4/letter/b/41988e/32.png) [@bwirth](https://forum.inductiveautomation.com/u/bwirth)\
**Post date:** [August 1, 2022, 6:20pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/3 "2022-08-01T18:20:33Z")

</div>

good news, thank you very much!

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [August 1, 2022, 7:04pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/4 "2022-08-01T19:04:54Z")

</div>

I reached out to the Documentation team and they’ve updated the page to include `.wav`.

---

<div class="post-metadata">

**Author:** ![bwirth](https://avatars.discourse-cdn.com/v4/letter/b/41988e/32.png) [@bwirth](https://forum.inductiveautomation.com/u/bwirth)\
**Post date:** [August 1, 2022, 7:47pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/5 "2022-08-01T19:47:29Z")

</div>

Yessir, I see the updates. Thank you.

---

<div class="post-metadata">

**Author:** ![bwirth](https://avatars.discourse-cdn.com/v4/letter/b/41988e/32.png) [@bwirth](https://forum.inductiveautomation.com/u/bwirth)\
**Post date:** [August 1, 2022, 8:23pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/6 "2022-08-01T20:23:06Z")

</div>

Ok, one more question. Going through the docs, I’m trying to find some kind of reference to paths so I can put the sound files somewhere I can reference with the source parameter. Any suggestion as to where to put those and how to reference?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 1, 2022, 8:45pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/7 "2022-08-01T20:45:01Z")

</div>

> [@bwirth](#):
>
> Any suggestion as to where to put those and how to reference?

Pssst! Try my **free** [Blob Server Module](https://forum.inductiveautomation.com/t/automation-professionals-blob-server-module/57970).

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [August 1, 2022, 9:04pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/8 "2022-08-01T21:04:07Z")

</div>

I used the WebDev module to store my resources, and then I was able to supply a simple reference to the resource: `/system/webdev/<projectName>/<pathInWebDev>/<fileName>.ext`

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [August 1, 2022, 10:18pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/9 "2022-08-01T22:18:15Z")

</div>

I recommend putting the files in the webapps directory, something like, `C:\Program Files\Inductive Automation\Ignition\webserver\webapps\main`. Then in the component you can use a relative path, something like `/YourFile.mp3`

---

<div class="post-metadata">

**Author:** ![bwirth](https://avatars.discourse-cdn.com/v4/letter/b/41988e/32.png) [@bwirth](https://forum.inductiveautomation.com/u/bwirth)\
**Post date:** [August 1, 2022, 11:06pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/10 "2022-08-01T23:06:14Z")

</div>

Thank you. I put in the …/webserver/webapps/main folder, and this works great. Will have to check and make sure this survives an upgrade. Originally thought about putting in my custom theme folder but couldn’t figure out how to reference it there.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [August 1, 2022, 11:30pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/11 "2022-08-01T23:30:33Z")

</div>

It will survive an upgrade. If you use redundancy, you will need to manually place in the other gateway.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 1, 2022, 11:45pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/12 "2022-08-01T23:45:14Z")

</div>

Note that the `webserver/webapps` hosting is deliberately undocumented and unsupported.

> [@How to save the uploaded file in default image folder (/system/images/)?](https://forum.inductiveautomation.com/t/how-to-save-the-uploaded-file-in-default-image-folder-system-images/32771/11):
>
> It’s unsupported, because if you use it and something goes wrong, you’re on your own. We never explicitly set out to make the webserver/webapps/main path automatically hosted - it’s just a coincidence of the way we set up Jetty. Some future upgrade of Jetty may make that work differently, or we could explicitly gate the feature behind a config flag, or something. In practice, because it’s such an open secret, we’d probably take pains to prevent anything from breaking it upon such a hypothetica…

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [August 2, 2022, 12:16am UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/13 "2022-08-02T00:16:19Z")

</div>

@paul-griffith where would you recommend audio files reside then?

---

<div class="post-metadata">

**Author:** ![victordcq](https://avatars.discourse-cdn.com/v4/letter/v/f6c823/32.png) [@victordcq](https://forum.inductiveautomation.com/u/victordcq)\
**Post date:** [August 2, 2022, 7:32am UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/14 "2022-08-02T07:32:57Z")

</div>

> [@bwirth](#):
>
> webserver/webapps

You proabbly wont have this problem,  
But its hard to delete files from the webserver/webapps if the gateway is running, you can check out my solution (for windows) here.

> [@Unblock and Delete files that have been locked by Java](https://forum.inductiveautomation.com/t/unblock-and-delete-files-that-have-been-locked-by-java/60194):
>
> There is an issue with java locking files that are in use. Mainly when using the webserver. Causing it to be impossible to delete them while the gateway is running. But here is a solution! (For windows atleast). Using handle you can find and unlock files. I made it a bit easier to use by writing a simple bat file. [UnlockAndDelete.zip](https://forum.inductiveautomation.com/uploads/short-url/7eEcAE6JGpz4JvjlyqUCP4CCD1X.zip) (891.3 KB) Unzip on the pc in the gateway (in for example C:\Folder) You can execute this through script or in the cmd line, requires admin rights! script: …

---

<div class="post-metadata">

**Author:** ![bwirth](https://avatars.discourse-cdn.com/v4/letter/b/41988e/32.png) [@bwirth](https://forum.inductiveautomation.com/u/bwirth)\
**Post date:** [August 2, 2022, 3:12pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/15 "2022-08-02T15:12:24Z")

</div>

One last thing I've noticed with the Audio component. When configured, I get this message in red in the Output Console quite often. It doesn't appear to effect function, however. I'm using a .wav file.

> Graphics2D from BufferedImage lacks BUFFERED\_IMAGE hint

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 2, 2022, 3:50pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/16 "2022-08-02T15:50:46Z")

</div>

I would recommend using Webdev, Phil’s blob server module, a proper external host (e.g. `nginx` could be configured as a reverse proxy + a static asset host, so external users would only see one IP + port, and nginx would transparently route incoming requests to either Ignition or serve static assets directly).

Building a lot of functionality on top of the webserver/webapps method is fragile for a few reasons. It’s convenient for a one-off, but not something I would want to rely on forever.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [August 2, 2022, 3:52pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/17 "2022-08-02T15:52:31Z")

</div>

@paul-griffith I should have been more clear, without using any other module and nothing external, what is the recommend location for these audio files?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 2, 2022, 3:54pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/18 "2022-08-02T15:54:41Z")

</div>

There is none. Serving static assets is not an intentional feature of the core Ignition platform. You either need an additional module (Phil’s is free, iirc), or an external service (`nginx`, Traefik, etc, all have free ‘core’ editions). Or you could write a module that hosts files using supported methods; there’s nothing stopping you from doing what Webdev does. I’m not saying “don’t use webapps” because I’m trying to upsell; I’m saying “don’t use webapps” because _I think it’s a bad idea_.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [August 2, 2022, 3:59pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/19 "2022-08-02T15:59:03Z")

</div>

@paul-griffith fair points, but for users on projects who don’t have the option to just install modules at will and have no access to anything external, there _ **should** _ be a supported method.

---

<div class="post-metadata">

**Author:** ![Caleb\_Bohon](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/caleb_bohon/32/3293_2.png) [@Caleb\_Bohon](https://forum.inductiveautomation.com/u/Caleb_Bohon)\
**Post date:** [August 8, 2022, 8:33pm UTC](https://forum.inductiveautomation.com/t/perspective-audio-component/62558/20 "2022-08-08T20:33:33Z")

</div>

I don’t think so. Ignition is designed to be a modular system. New Modules are required to get new functionality. If I buy a computer and then a year later want to take pictures with said computer, I have to add a camera to get that functionality.

If customer wants feature B and it needs module or resource X, Y, or Z, then customer has to be willing to have X, Y, or Z installed on their system.

Modularity is not a bug in Ignition, its a design. It allows anyone to think up a great idea and implement it on a solid SCADA, MES, or HMI.

-Caleb

[Next page](https://forum.inductiveautomation.com/t/perspective-audio-component/62558.md?page=2)
