I'm trying to make a simple Oscillator program where I can change the Octave kind of the way the Massive VST shows it with positive and negative numbers:

(source: massivesynth.com)
Now, I know there is 1200 cents to an octave (100 cents per semitone). The problem I'm running into is, when making the Osc code I realized that the pitch of it was measured in Cents.
ctx = new webkitAudioContext();
function osc1(pitch){
osc = ctx.createOscillator(),
osc.type = 2; //0 = sine, 1 = square, 2 = saw, 3 = triangle, 4 = custom
osc.frequency.value = pitch; //in cents
gainNode = ctx.createGainNode();
osc.connect(gainNode);
gainNode.connect(ctx.destination);
gainNode.gain.value = 1;
osc.noteOn(0);
};
osc1 (20);
and since Pitch changes the Frequency of a note, what I'm confused about is, without a MIDI keyboard how I could know
- What note is being played?
- What frequency is the note being played?
Furthermore, how could I get the bassy-er sounds from these waveforms? I've done a couple of tests generating sounds at 1 cent, 2 cents, 5 cents, 20 cents, etc. to see how they sound and when the Osc generates the Pitch at 1 cent, all I get is a low click whereas with 2 cents, I get almost the same click in a 4/4 beat. From my understanding, you can look at Frequency like points on a map and likewise, cents like the distance in between those points. That being said, how can cents determine the frequency of the note since the sound is being generated directly from the browser? Also, if it's as simple as just moving the pitch of the Oscillator, what note does the oscillators start on? In other words, what note are you "pitching" per say?
I hope what I wrote makes sense considering I'm pretty confused myself.
Thanks for any help and feedback!