@mezzo-forte/webaudio

1.0.0-beta.0 • Public • Published

Mezzo Forte Web Audio module

Folder structure

  • /src js source files
  • /example example/test webpage

Testare l'applicazione

  • clone git clone https://github.com/francescocretti/mezzoforte-webaudio.git
  • install dependencies npm install
  • link current module to npm global space npm link /absolute/path/to/mezzoforte-webaudio (e.g. npm link ~/git/MezzoForte/webaudio-module/ )
  • build with webpack npm run build
  • run webpack development server npm run start

Formati supportati

Formato mp3, aac (con contenitore m4a), wav, ogg (non supportato da Safari). Tendenzialmente è preferibile non caricare file wav date le dimensioni dei file.

Fare riferimento a questa tabella per approfondire i formati audio supportati dai vari browser.

In sunto:

FORMAT CONTAINER CHROME FIREFOX SAFARI EDGE
PCM wav yes yes yes yes
MP3 mp3 yes if installed in OS yes yes
AAC mp4 yes if installed in OS yes yes
VORBIS ogg yes yes NO with WebMediaExtensions
OPUS ogg yes yes NO with WebMediaExtensions

Utilizzare i suoni nell'applicazione

Per utilizzare i suoni all'interno dell'applicazione è necessario prima caricarli, decodificarli e renderli disponibili sotto forma di struttura WebAudio.

Modificare la variabile audioAssets aggiungendo i suoni desiderati, specificando un identificativo a piacere (key) ed il path del file (url). Ad esempio:

const audioAssets = [
  {
    key: 'suono_1',
    url: '/audio/sound1.wav'
  },
  {
    key: 'suono_2',
    url: '/audio/sound2_lossy.mp3'
  }
];

Per caricare i suoni richiamare il metodo App.init, che ha come unico argomento una funzione callback dentro la quale si possono utilizzare i suoni caricati e decodificati.

Ad esempio (con riferimento ai suoni di esempio indicati qui sopra):

const App = new MezzoForte(audioContext, audioAssets);

App.init(() => {
  // avvia il suono sound1.wav
  App.start('suono_1');

  // setto un listnere sulla fine del suono /bch_mix.m4a
  App.onended('suono_2', () => {
    // suono_2 è terminato, posso fare qualcosa (ad esempio mostrare un messaggio, o triggerare un nuvo suono)
  });
});

I metodi attualmente disponibili per i suoni sono:

App.onended(sound_key, callback); // imposto una callback che viene eseguita al termine di sound_key
App.start(sound_key); // avvio sound_key dall'inizio
App.stop(sound_key); // stop
App.resume(sound_key); // riprendo sound_key dall'ultima posizione in cui si è stoppato

TODO

  • aggiungere funzioni di fade
  • aggiungere gestione di suoni azione (con solo metodo trigger)
  • aggiungere qualche effetto (pan, gain, reverb?, distortion?)
  • aggiungere possibilità di creare una sorta di playlist con i propri metodi
  • altro? ogni suggerimento è ben accetto

Readme

Keywords

none

Package Sidebar

Install

npm i @mezzo-forte/webaudio

Weekly Downloads

1

Version

1.0.0-beta.0

License

ISC

Unpacked Size

2.77 MB

Total Files

12

Last publish

Collaborators

  • francescocretti
  • gbcode.it