JAM con Chrome è un'esperimento di musica collaborativa in tempo reale nel browser che utilizza diverse tecnologie web e prodotti Google per consentire a 4 amici di fare una JAM session insieme. Quando si suonano degli strumenti, il browser comunica ai browser degli altri utenti quali note suonare, come suonarle e come animare l'interfaccia utente.
Nella pagina di spiegazione della tecnologia c'è scritto:
- JAM con Chrome utilizza le seguenti funzionalità HTML5:
- API Web Audio
L'audio è il componente più importante di qualsiasi esperienza musicale. Per assicurarti un livello elevato di fedeltà in JAM con Chrome, abbiamo utilizzato una tecnologia chiamata Web Audio. Questa tecnologia ha permesso agli sviluppatori di creare combinazioni precise di suoni tramite il browser, senza dover elaborare singoli stream audio di ogni membro della band. - Websockets
Per consentire la collaborazione in tempo reale, in JAM con Chrome è stata utilizzata la tecnologia Websockets. Websockets consente agli utenti di avviare una rapida conversazione bilaterale tempestiva con i server. In questo modo possiamo sincronizzare le JAM session. Senza Websockets questa interazione non sarebbe possibile. - Canvas
Abbiamo dato vita all'esperienza visiva utilizzando una funzione del browser chiamata Canvas, che ci consente di controllare con grande precisione gli elementi visualizzati. Ogni corda che vibra, ad esempio, viene modellata in base a una combinazione della tua tecnica di suono e dell'armonica complessiva della band. - CSS3
Per molti stili e transizioni visive del progetto è stato utilizzato CSS3.
- API Web Audio
- JAM con Chrome utilizza le seguenti tecnologie della piattaforma Google Cloud:
- Google App Engine
Il componente dell'applicazione web è stato realizzato e messo in hosting su App Engine, la piattaforma di cloud computing di Google per lo sviluppo e l'hosting di applicazioni web sull'infrastruttura di Google. App Engine consente di realizzare, gestire e scalare in modo dinamico e facile il progetto; più visitatori riceve l'applicazione, più risorse assegna App Engine consentendo così il ridimensionamento dinamico in base al traffico. - Linguaggio di programmazione Go
Il sistema di trasmissione di websocket in tempo reale che rende possibile la collaborazione alle JAM session è stato sviluppato utilizzando il linguaggio di programmazione Go. Go è un nuovo linguaggio di programmazione open source di Google. Si tratta di un linguaggio compilato statically-typed con il flusso di lavoro di un linguaggio di scripting. Le primitive per la concorrenza integrate consentono di progettare e implementare facilmente complesse applicazioni simultanee.
- Google App Engine