Online Sequencer Make music online
  • Sequences
  • Members
  • Chat
  • Forum
  • Wiki

Existing user? Sign In Create account
Login at Online Sequencer Forums

Online Sequencer Forums › Online Sequencer › Online Sequencer Discussion
« Previous 1 … 44 45 46 47 48 … 79 Next »

Useful Console Code Thread

Thread tools
Useful Console Code Thread
Jacob_ Offline
Administrator
343 Posts:
 
#12
10-16-2018, 10:03 PM
(10-16-2018, 09:30 PM)Frank Wrote:
(10-16-2018, 05:07 PM)blobertthebob Wrote:
(10-16-2018, 04:54 PM)Jacob_ Wrote:
Code:
loadInstrument(13);
var el = $('<input type="file" accept="audio/*">');
$(document.body).append(el);

el.on('change', function(e){
   var reader = new FileReader();
   reader.onload = function (e) {
       var context = new AudioContext();
       context.decodeAudioData(e.target.result, function(buffer){
           var node = context.createAnalyser();
           var resolution = 4;
           node.fftSize = 4096;
           node.smoothingTimeConstant = 0;
           var bufferLength = node.frequencyBinCount;
           var dataArray = new Uint8Array(bufferLength);
           var audioSource = context.createBufferSource();
           audioSource.buffer = buffer;
           audioSource.loop = false;
           audioSource.connect(node);
           var time = 0;
           audioSource.start(0);  
           setInterval(function(){
               node.getByteFrequencyData(dataArray);
               var f = [];
               for (var i = 1; i < dataArray.length - 1; i++) {
                 var isPeak = dataArray[i] >= dataArray[i-1] && dataArray[i] >= dataArray[i+1];
                 if (isPeak) {
                   f.push([i, dataArray[i]]);
                 }
               }
               f.sort(function(a, b){return b[1] - a[1]});
               for(var i = 0; i < Math.min(f.length, 4); i++) {
                 var frequency = f[i][0] * context.sampleRate / node.fftSize;
                 var note = piano[Math.round((piano.length*Math.log(2)+12*Math.log(55/frequency)+Math.log(4))/(Math.log(2)))];
                 if (note != undefined && f[i][1] > 32) {
                   song.addNote(new Note(song, note, time/resolution, 1/resolution, 13));
                 }
               }
               time++;
           }, song.sleepTime/resolution);
           setInterval(SequencerView.repaint, 1000);
       });
   }
   
   reader.readAsArrayBuffer(e.target.files[0]);
});

el.click();
this is dank

Agreed, I was considering doing something like this, but I thought it was impossible. Who knows, maybe I should try to outdo this.

The difficult part is converting a segment of audio to an array of frequency buckets, and that's completely handled by the Web Audio API. This could definitely be done better though, it just figures out the loudest 4 notes for each 1/16 interval and adds each one if the volume is above some arbitrary number.

If you put your programming knowledge to work at something more useful than stealing people's passwords you'd be surprised at what you can do. Smile When I was 13 I wrote a file management program that was used by a web hosting company all because I hacked the 14 year old owner's script in 30 seconds and wanted them to have something better. https://buildism.net/php


Reply

Messages In This Thread
Useful Console Code Thread - by Jacob_ - 07-11-2018, 05:22 PM
RE: Useful Console Code Thread - by Jonah - 07-11-2018, 06:13 PM
RE: Useful Console Code Thread - by MTNHNG - 07-11-2018, 06:41 PM
RE: Useful Console Code Thread - by Lumien - 07-11-2018, 06:43 PM
RE: Useful Console Code Thread - by Frank - 07-11-2018, 09:11 PM
RE: Useful Console Code Thread - by Frank - 07-19-2018, 06:52 PM
RE: Useful Console Code Thread - by Frank - 07-20-2018, 12:13 PM
RE: Useful Console Code Thread - by Jacob_ - 10-16-2018, 04:54 PM
RE: Useful Console Code Thread - by blobertthebob - 10-16-2018, 05:07 PM
RE: Useful Console Code Thread - by Frank - 10-16-2018, 09:30 PM
RE: Useful Console Code Thread - by Jacob_ - 10-16-2018, 10:03 PM
RE: Useful Console Code Thread - by korwynkim - 10-16-2018, 09:56 PM
RE: Useful Console Code Thread - by guest - 10-16-2018, 10:19 PM
RE: Useful Console Code Thread - by Jacob_ - 10-16-2018, 10:20 PM
RE: Useful Console Code Thread - by LucentTear - 10-16-2018, 10:27 PM
RE: Useful Console Code Thread - by guest - 10-16-2018, 10:30 PM
RE: Useful Console Code Thread - by Jacob_ - 10-16-2018, 10:32 PM
RE: Useful Console Code Thread - by Frank - 10-17-2018, 07:07 PM
RE: Useful Console Code Thread - by guest - 10-16-2018, 10:33 PM
RE: Useful Console Code Thread - by Jacob_ - 10-27-2018, 03:23 PM
RE: Useful Console Code Thread - by Cringe_Gaming_64yt - 08-02-2020, 11:41 AM
RE: Useful Console Code Thread - by Jacob_ - 12-11-2020, 04:48 PM



Users browsing this thread:   1 Guest(s)


  •  Return to Top
  •  Contact Us
  •   Home
  •  Lite mode
© Rush Crafted with ❤ by iAndrew
Powered By MyBB, © 2002-2025 MyBB Group.
Linear Mode
Threaded Mode
View a Printable Version
Subscribe to this thread
Add Poll to this thread
Send thread to a friend