[AUDIO PUGIN] - Adding new effects and functionality

Post your work in progress addons and get feedback

Post » Wed Aug 10, 2016 8:35 am

Hello there,

@Ashley

Web Audio API is a great thing, I've seen people building crazy stuff with it. For example:
http://cdm.link/2015/07/drum-machines-b ... web-audio/

Audio Plugin in C2 is already great, but...

My question, is it possible to extend the official Audio Plugin with new effects and functionality like oscillators and modulations, adding more "low level" functions to access API through C2 event interface:

https://developer.mozilla.org/en-US/doc ... llatorNode

https://coderwall.com/p/h1jnmg/web-audi ... ther-nodes

https://developer.mozilla.org/en-US/doc ... _Audio_API

C2 will turn into a great tool for audio apps protottyping :)
B
45
S
11
G
4
Posts: 517
Reputation: 7,393

Post » Wed Aug 10, 2016 10:25 am

No, it's not easily extendable I'm afraid. However it does implement most of the nodes through the different types of effects you can use.
Scirra Founder
B
397
S
236
G
88
Posts: 24,408
Reputation: 194,506

Post » Sun Aug 14, 2016 12:30 am

It would be possible to extend it with external libraries though?
B
52
S
26
G
8
Posts: 121
Reputation: 8,526

Post » Sun Aug 14, 2016 9:50 am

@adcornaglia - that would be awesome. Imagine being able to program FM synthesis or grain sample manipulation inside C2 :)

I found the following libraries
https://github.com/Theodeus/tuna
https://github.com/Tonejs/Tone.js
https://github.com/PencilCode/musical.js

@ashley - Is it possible to add an oscillator node from standard Web Audio API?
https://developer.mozilla.org/en-US/doc ... llatorNode
B
45
S
11
G
4
Posts: 517
Reputation: 7,393

Post » Mon Aug 15, 2016 3:28 am

Tone.js looks cool!
B
108
S
26
G
271
Posts: 4,471
Reputation: 151,777

Post » Mon Aug 15, 2016 10:49 am

Tone.js is a Web Audio framework for creating interactive music in the browser. The architecture of Tone.js aims to be familiar to both musicians and audio programmers looking to create web-based audio applications. On the high-level, Tone offers common DAW (digital audio workstation) features like a global transport for scheduling events and prebuilt synths and effects. For signal-processing programmers (coming from languages like Max/MSP), Tone provides a wealth of high performance, low latency building blocks and DSP modules to build your own synthesizers, effects, and complex control signals.

@rexrainbow is it possible to wrap tone.js as a third party plugin? :)
B
45
S
11
G
4
Posts: 517
Reputation: 7,393

Post » Mon Aug 15, 2016 10:56 am

@xoros

I am busy in wrapping backendless service into C2 plugin, it might take 2 months. I could add tone.js into my next TODO.
B
108
S
26
G
271
Posts: 4,471
Reputation: 151,777

Post » Mon Aug 15, 2016 11:00 am

that would be awesome!
B
45
S
11
G
4
Posts: 517
Reputation: 7,393

Post » Tue Aug 16, 2016 3:12 am

1+ rex for tone.js
B
80
S
29
G
132
Posts: 210
Reputation: 72,069

Post » Tue Aug 16, 2016 9:44 am

I really think the tagging system needs work. Effects are pretty pointless the way they're currently implimented, unless I'm missing something.

Lets say you have "player_footstep" tag and every time the event is triggered you assign pitch variation to the tag. Now if you wanted to do this for more sounds like "player_jump" and "player_shoot" - you all of a sudden have a bunch of tags.

If you wanted to apply a reverb to all the player sounds in this instance you couldn't because you assign reverbs to tags, you can't write: apply reverb to: "player_footsteps" & "player_shoot" & "player_roll"

etc

For example in my game Brute, I've got a layered multi-tag system for the player ship engine noise, I've 3 layers that pitch up and down at different rates based on the objects speed. I can't assign any effects to the whole engine without creating multiple reverbs which is costly.

A solution for this example could be to have more detail on the sound playback event such as, play sound at object and at X pitch with the tag "player_sounds" - but perhaps a more comprehensive solution could be to have groups and subgroups.

Event: "Player_footsteps"
Group: "SFX"
Sub-group: "PLAYER"

Then could we maybe get rid of tags and instead look up the event name to apply changes to the audio event?

On Audio Event Name: "Player_footsteps" - Set playback volume to: random(x,x)
B
43
S
13
G
8
Posts: 622
Reputation: 7,392

Next

Return to Work in Progress Addons

Who is online

Users browsing this forum: No registered users and 1 guest