HYPRECORD - Virtual Recording Studio






RECORD YOUR NEXT HIT SINGLE, EP OR FULL ALBUM LP WITH

HYPRECORD VIRTUAL RECORDING STUDIO




^ INPUT VIDEO ^

  


Play/pause input video to monitor your microphone. Click "Start Recording" button to record a take. Please limit takes to 1 minute or less.




^ OUTPUT VIDEO ^

Review Recording > Download Take (Access download via vertical dots menu on bottom right of output video, or right click on video and select 'save as'to download to your device (you will need these .mp4 files in the next step.)

let constraintObj = { audio: true, video: { facingMode: "user", width: { min: 640, ideal: 1280, max: 1920 }, height: { min: 480, ideal: 720, max: 1080 } } }; // width: 1280, height: 720 -- preference only // facingMode: {exact: "user"} // facingMode: "environment" //handle older browsers that might implement getUserMedia in some way if (navigator.mediaDevices === undefined) { navigator.mediaDevices = {}; navigator.mediaDevices.getUserMedia = function(constraintObj) { let getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia; if (!getUserMedia) { return Promise.reject(new Error('getUserMedia is not implemented in this browser')); } return new Promise(function(resolve, reject) { getUserMedia.call(navigator, constraintObj, resolve, reject); }); } }else{ navigator.mediaDevices.enumerateDevices() .then(devices => { devices.forEach(device=>{ console.log(device.kind.toUpperCase(), device.label); //, device.deviceId }) }) .catch(err=>{ console.log(err.name, err.message); }) } navigator.mediaDevices.getUserMedia(constraintObj) .then(function(mediaStreamObj) { //connect the media stream to the first video element let video = document.querySelector('video'); if ("srcObject" in video) { video.srcObject = mediaStreamObj; } else { //old version video.src = window.URL.createObjectURL(mediaStreamObj); } video.onloadedmetadata = function(ev) { //show in the video element what is being captured by the webcam video.play(); }; //add listeners for saving video/audio let start = document.getElementById('btnStart'); let stop = document.getElementById('btnStop'); let vidSave = document.getElementById('vid2'); let mediaRecorder = new MediaRecorder(mediaStreamObj); let chunks = []; start.addEventListener('click', (ev)=>{ mediaRecorder.start(); console.log(mediaRecorder.state); }) stop.addEventListener('click', (ev)=>{ mediaRecorder.stop(); console.log(mediaRecorder.state); }); mediaRecorder.ondataavailable = function(ev) { chunks.push(ev.data); } mediaRecorder.onstop = (ev)=>{ let blob = new Blob(chunks, { 'type' : 'video/mp4;' }); chunks = []; let videoURL = window.URL.createObjectURL(blob); vidSave.src = videoURL; } }) .catch(function(err) { console.log(err.name, err.message); }); /********************************* getUserMedia returns a Promise resolve - returns a MediaStream Object reject returns one of the following errors AbortError - generic unknown cause NotAllowedError (SecurityError) - user rejected permissions NotFoundError - missing media track NotReadableError - user permissions given but hardware/OS error OverconstrainedError - constraint video settings preventing TypeError - audio: false, video: false *********************************/

Quality Checklist

  • Have you recorded and download your takes?
  • Have you checked for sound artifacts like clipping or other audible room noises that may impact the quality of the final vocal mix?
  • Did you time your recordings tempo by using our provided metronome tool or something similar?
  • Did you remember to include your song(s) and/or project title?
  • Have you renamed your takes to correspond with the song title?
  • (Ex: BohemianRhapsody-verse01.mp4, BohemianRhapsody-verse02.mp4, BohemianRhapsody-chorus.mp4)

If you’ve answere YES to all of these questions, you are now ready to start your exciting journey as a recording artist!