Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441

    Creare un launchpad con un tastierino numerico in javascript.

    Ciao a tutti, vorrei creare un launchpad con un tastierino numerico in javascript, a cui ogni tasto sia collegato un file audio e alla pressione di questo si riproduca.

    Inoltre vorrei riuscire anche ad implementare la funzione loop per ogni tasto, cioè memorizzare, tramite la pressione costante di un altro tasto dedito a questo, la frequenza in un intervallo di tempo delle singole pressioni così da riprodurre un lo stesso file ripetutamente e in modo automatico.

    Tramite un altro tasto invece aggiungere magari l'opzione tale che ogni tasto riproduca il file audio solo finché sia premuto.

    Tutto questo ovviamente per un bel numero di tasti, tale da riprodurre contemporaneamente e senza vincoli diversi file audio con la pressione dei diversi tasti e magari un sistema di registrazione con un tasto rec per riprodurre una seconda volta la sequenza delle pressioni dei tasti una volta eseguita.

    E' possibile una cosa simile con un tastierino numerico?
    E' possibile in javascript creare una cosa simile?

    Consigli, link, video ben accetti.

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Devi basarti sull'evento keypress
    No

  3. #3
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441

    Creare un launchpad, funzioni per loop di mp3?

    Ciao a tutti, sto cercando di creare un launchpad in javascript però non riesco a creare delle funzioni.
    Quello che ho creato fino a d ora è una cartella con dei file mp3 di suoni di breve durata rinominati con dei numeri corrispondenti al codice ascii della tastiera. Quindi fino ad ora se premo la lettera Q si riproduce sul browser il suono Q.mp3 con questo codice che ho scritto:

    index.php
    codice:
    <html>
        <head>        
            <script src="script.js"></script>
        </head>
        <body id="d0" onkeydown="play(event)">
        </body>
    </html>

    script.js
    codice:
    function play(e) {
        key = e.keyCode;
        var mp3 = key + ".mp3";
        var snd = new Audio(mp3);
        snd.play();
    }

    Ora invece quello che vorrei riuscire a creare è un codice che mi permetta di mandare in loop un suono con la pressione simultanea di un altro tasto, per esempio: Q + ENTER = loop del suono Q

    Inoltre vorrei riuscire a creare un'altra funzione che alla pressione costante di un tasto come ad esempio TAB fungesse come da registratore di intervalli temporali delle pressioni in sequenza di un tasto come ad esempio Q. Così da mettere in riproduzione, una volta rilasciato TAB, lo stesso suono come Q più volte e dopo dei precisi istanti di tempo.

    Accetto consigli, link e codici.

    Grazie!

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    basta una sola discussione

  5. #5
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    Ho provato così per la funzione loop ma non funziona:

    codice HTML:
    window.addEventListener("keydown", play, false);
    var key = [];
    function play(e) {
        k = key[e.keyCode];
        var mp3 = k + ".mp3";
        var snd = new Audio(mp3);
        if (key[49] && key[e.keyCode]) {
                snd.loop = true;
        }
        snd.play();
    }

  6. #6
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    Oltre alla funzione loop che ora mi funziona solo che una volta messo in loop un suono con la pressione simultanea di 1 + Q mi mette anche gli altri che premo in seguito senza aver premuto 1.
    Inoltre non riesco a far si che alla pressione di un suono come Q non si sormontino lo stesso file audio: se premo più volte Q e il suono non è ancora terminato vorrei riuscire a far si che si fermi e che riparti da zero con la proprietà currentTime = 0; ma niente anche questo non riesco a farlo funzionare in modo corretto

    codice HTML:
    window.addEventListener("keyup", play, false);
    key = new Array();
    function play(e) {
        key[e.keyCode] = e.keyCode;
        var mp3 = e.keyCode + ".mp3";
        var snd = new Audio(mp3);
        snd.pause();
        snd.currentTime == 0;
        snd.play();
        if (key[49] && e.keyCode) {
            var mp3 = e.keyCode + ".mp3";
            var snd = new Audio(mp3);
            snd.play();
            snd.loop = true;
        }
    }
    Ultima modifica di andbaz; 05-07-2014 a 21:10

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    Non centrano niente questi link, questi player di jQuery riproducono un file alla volta. Eviterei di usare jQuery, piuttosto DOM http://www.w3schools.com/tags/ref_av_dom.asp come sto cercando di fare ora.

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Quote Originariamente inviata da andbaz Visualizza il messaggio
    Non centrano niente questi link, questi player di jQuery riproducono un file alla volta. Eviterei di usare jQuery, piuttosto DOM http://www.w3schools.com/tags/ref_av_dom.asp come sto cercando di fare ora.
    Ok, come non detto buon lavoro.

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441

    Creare un launchpad in javascript.

    Eccomi di nuovo! Sono andato avanti con il launchpad e adesso premendo un tasto della tastiera viene riprodotto un suono e se non è ancora terminato viene riprodotto di nuovo da capo. Inoltre sono riuscito a creare una funzione che registra al millisecondo le azioni della tastiera, ovvero è possibile registrare una sequenza di suoni con le relative tempistiche al millisecondo.
    Ora il problema è che queste registrazioni se messe in loop vengono distorti gli intervalli di tempo tra un tasto e l'altro e non ne vengo fuori, in breve la registrazione si fa sempre più breve e quindi i suoni arrivano fino a sormontarsi e a ripetersi sempre più velocemente mentre al primo loop i tempi sembrano essere rispettati e i suoni vengono riprodotti giusti.
    La mia domanda è questa: e' possibile risolverlo, se si come? Grazie!
    La registrazione si esegue in questo modo: premo barra spaziatrice, inizia la regisrazione ed eseguo una sequenza di suoni con la pressione delle lettere della tastiera, ripremo barra spaziatrice e si conclude a registrazione, premo un numero a cui viene assegnata e ripremendolo una seconda volta viene riprodotta.
    Es num[1] = ,,,,,,,,,,,81,,,,,90,,,,86,,,,,,,,32
    Le virgole sono i millesecondi, i numeri i codici ascii della tastiera, 32 = barra

    codice:
    function loop() {
        find = false;
        mls = 0;
        length = num[key].length-doubleKey;
        setInterval(function() {
            res = num[key].charAt(mls);
            if (res!="," && find==false) {
                find = true;
                firstNumber = [];
                for (i=0;i<2;i++) {
                    firstNumber[i] = num[key].charAt(mls+i);
                }
                firstNumber = firstNumber.toString();
                str = firstNumber.replace( /,/g, "" );
                mp3[str].currentTime = 0;
                mp3[str].play();
            } else { find = false; }
            if (mls==length) {
                loop();
            }
            mls++;
        }, 1);
    }
    Ultima modifica di andbaz; 14-07-2014 a 12:19

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.