User Tools

Site Tools


javascript:electronic-music-tools:4.4_algorithmic_melody

[lien](https://live.codecircle.com/d/GLuCrFRtkbaBwRQh6)

On voit ici comment créer un générateur algorithmique basique de mélodie.

Le principe de la composition algorithmiqque et qu'on ne spécifie pas les notes les unes après les unes, on spécifie un processus qui génère les notes.

https://live.codecircle.com/d/dWgGzPiYKuoHmiQtJ

javascript

var contexte = (function(){
  var contexte_audio = window.AudioContext || window.webkitAudioContext;

  var contexte = new contexte_audio();

  return contexte;
})();

var melodie_algorithmique = (function () {
  var composant = {};

  var oscillateur = contexte.createOscillator();
  oscillateur.type = 'triangle';

  oscillateur.connect( contexte.destination );

  oscillateur.start();

  var frequence = 200;

  var intervalle;

  oscillateur.frequency.value = frequence;

  function changer_note () {
    frequence = frequence * 1.5;

    frequence = frequence > 2000 ? 200 + Math.random() * 100 : frequence;

    // la ligne suivante fait que la fréquence va changer de manière progressive
    // oscillateur.frequency.value = frequence;

    // si l'on souhaite un changement immédiat :
    oscillateur.frequency.setValueAtTime(frequence, contexte.currentTime);
  }

  composant.lancer = function () {
    intervalle = setInterval( changer_note, 125);
  };

  return composant;
})();

melodie_algorithmique.lancer();
javascript/electronic-music-tools/4.4_algorithmic_melody.txt · Last modified: 2017/07/19 23:22 by leo