<%@ Language=VBScript %>
<HTML>
<HEAD>
<title>practice asp grapher</title>
</HEAD>
<BODY  bgcolor=White>
<%

	dim semitones, fundfreq, freqratio, stretch
	set semitones = request.form("semitones")
	set fundfreq = request.form("fundfreq")
	set freqratio = request.form("freqratio")
	set stretch = request.form("stretch")
	redim ampartial(9)
	while i < 10 
		ampartial(i) = request.form("ap" & i)
		i = i + 1
	wend
	
	Set excel=CreateObject("Excel.Application")
	' Opening XLS file containing the chart
	excel.WorkBooks.Open "C:\Inetpub\wwwroot\shared\practice\diss.xls"
	'set the components to semantically rich variable names
	set  disswb = excel.WorkBooks(1)
	set partialws = disswb.Worksheets(1)
	set curvesws = disswb.Worksheets(2)
	
	'//////////change the values according to user input\\\\\\
	If  semitones = 12 Then 'assumes that the user is instead modifying frequency ratio
			partialws.Range("B28").Value = freqratio 
			semitones = round(partialws.Range("D31").Value,2)
			'curvesws.Range("A2").Value = semitones
		Elseif freqratio = 2 then	'assumes that the user is modifying semitones
			partialws.Range("B31").Value = semitones
			freqratio = round(partialws.Range("B28").Value,2)
			semitones = partialws.Range("B31").Value 
	end if
	curvesws.Range("A2").Value = semitones
	'while k < 6
	'		curvesws.Range("A" & 1 + k).Value = semitones
	'		k = k + 1
	'wend
	
	
	while j < 10
	partialws.Range("E" & 2 + j).Value = ampartial(j)'partialws.Range("E4").Value = ampartial(1)
			j = j + 1
	wend
	
	
	partialws.Range("B38").Value = fundfreq
	curvesws.Range("B160").Value = stretch
	
	curvesws.Range("D163").FormulaLocal = "=dissonance(C163)"
	
	'curvesws.Range("D163").Select
    'Selection.AutoFill Destination:=Range("D163:D293")
    'curvesws.Range("D163:D293").Select.run
    
    
	'/////////make the chart of partials\\\\\\\\\\\\\\\\\\\\\\\\
	'selecting the chart
	Set partialcht = partialws.ChartObjects(1)	
	randomize	
	mstrFileName =  "junk" & int(rnd()*10000) & ".gif"
	' -- Save the chart on web server 
	partialcht.Chart.Export Server.Mappath("/shared/practice") & "\" & mstrFileName, "line graph" 
	
	'/////////////make the chart of curves\\\\\\\\\\\\\\\\\\\\\\
	'selecting the chart
	Set curvechrt = curvesws.ChartObjects(3)'
	randomize	
	mstrFileName2 =  "junk" & int(rnd()*10000) & ".gif"
	' -- Save the chart on web server 
	curvechrt.Chart.Export Server.Mappath("/shared/practice") & "\" & mstrFileName2, "line graph"
	
	'/////////////make the curve/partial chart correlation linear graph \\\\\\\\\\\\\\\\\\\\\\
	'selecting the chart
	Set correlationcht = curvesws.ChartObjects(4)'
	randomize	
	mstrFileName3 =  "junk" & int(rnd()*10000) & ".gif"
	' -- Save the chart on web server 
	correlationcht.Chart.Export Server.Mappath("/shared/practice") & "\" & mstrFileName3, "line graph"
	
	
	'save the workbook (really just tricks excell into thinking the wb is saved)
	disswb.Saved = True
	' -- Set all objects back to nothing
    Set partialcht = Nothing
    Set curvechrt = Nothing
    set correlationcht = nothing
    Set curvesws = Nothing
    Set partialws = Nothing
    excel.Quit ' -- Quit Excel to conserve resources
    Set excel = Nothing
  
	
	' -- Make sure the Image is not cached but is loaded fresh from the web server
	Response.AddHeader "expires","0"
	Response.AddHeader "pragma", "no-cache"
	Response.AddHeader "cache-control","no-cache"

%>
<table border="0" cellpadding="5" cellspacing="8"  height="1">
  <tr><td  >
              <%
            '///////////print out the partials graph\\\\\\\\\\\\\\
            If mstrFileName <> "" Then
				Response.write  "<IMG  SRC=""/shared/practice/" & mstrFileName & """>" 
			End If
			%></td>
	<td  height="263">
      <form  method="POST" action="diss.asp">
        <div align="center">
          <center>
          <table border="1" cellspacing="1" width="276" height="446">
            <tr>	
			<td width="172" height="32" align="right">
                <p align="center">set the new values</p>
              </td><td width="88" height="32" align="right">
                <p align="center">current values</p>
              </td></tr>
            <tr><td width="172" height="23" align="right">fixed fundamental<input type="text" name="fundfreq" size="4" value="440">Hz</td><td width="88" height="23" align="right">
            <%= fundfreq %> Hz
            </td></tr>
            <tr><td width="172" height="23" align="right">interval in semitones<select name="semitones">
				  <option value="1">1
                  <option value="2">2
                  <option value="3">3
                  <option value="4">4
                  <option  value="5">5
                  <option value="6" >6
                  <option value="7" >7
                  <option value="8">8
                  <option value="9">9
                  <option value="10">10
                  <option value="11">11
                  <option selected value="12" >12<!--selected-->
                </select></td><td width="88" height="23" align="right">
                <%= semitones %>
                </td></tr>
            <tr><td width="172" height="23" align="right"> (or) frequency
                ratio<input type="text" name="freqratio" size="4" value="2.00"></td><td width="88" height="23" align="right">
                <%= freqratio %>
                </td></tr>
            <tr><td width="172" height="23" align="right">stretch(2=octave)<select size="1" name="stretch">
                  <option value="1.5">1.5</option>
                  <option value="1.7">1.7</option>
                  <option value="1.8">1.8</option>
                  <option value="1.9">1.9</option>
                  <option value="1.95">1.95</option>
                  <option selected value="2.0">2.0</option>
                  <option value="2.05">2.05</option>
                  <option value="2.1">2.1</option>
                  <option value="2.2">2.2</option>
                  <option value="2.3">2.3</option>
                  <option value="2.5">2.5</option>
                   
                </select></td><td width="88" height="23" align="right">
                <%= stretch %>
                </td></tr>
            <tr><td width="172" height="23" align="right">partial 1 amp<select size="1" name="ap1">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"><%= ampartial(1) %> Db
                </td></tr>
            <tr><td width="172" height="23" align="right"><font color="#FF0000">partial
                2 amp</font><select size="1" name="ap2">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"> <%= ampartial(2) %> Db</td></tr>
            <tr><td width="172" height="23" align="right"><font color="#00FF00"> partial
                3 amp</font><select size="1" name="ap3">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"> <%= ampartial(3) %> Db</td></tr>
            <tr><td width="172" height="23" align="right"><font color="#008000"> partial
                4 amp</font><select size="1" name="ap4">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"> <%= ampartial(4) %> Db</td></tr>
            <tr><td width="172" height="23" align="right"><font color="#00FFFF">partial
                5 amp</font><select size="1" name="ap5">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"> <%= ampartial(5) %> Db</td></tr>
            <tr><td width="172" height="23" align="right"><font color="#0000FF"> partial
                6 amp</font><select size="1" name="ap6">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"> <%= ampartial(6) %> Db</td></tr>
            <tr><td width="172" height="23" align="right"><font color="#000080"> partial
                7 amp</font><select size="1" name="ap7">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"> <%= ampartial(7) %> Db</td></tr>
            <tr><td width="172" height="23" align="right"><font color="#FF00FF">partial
                8 amp</font><select size="1" name="ap8">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"> <%= ampartial(8) %> Db</td></tr>
            <tr><td width="172" height="23" align="right"><font color="#800080">partial
                9 amp</font><select size="1" name="ap9">
                  <option value="0">off</option>
                  <option value="10">10</option>
                  <option value="20">20</option>
                  <option value="30">30</option>
                  <option value="40">40</option>
                  <option selected value="50">50</option>
                  <option value="60">60</option>
                  <option value="70">70</option>
                  <option value="80">80</option>
                  <option value="90">90</option>
                </select>Db</td><td width="88" height="23" align="right"> <%= ampartial(9) %> Db</td></tr>
            <tr><td width="260" height="25" align="center" colspan="2"><input type="submit" value="send my new values" id="submit1" name="submit1"></td></tr>
          </table>
          </center>
        </div>
      </form>
    </td></tr>
  <tr>

  <td width="118%" height="21" colspan="2">
      <%
            '///////////print out the curve graph\\\\\\\\\\\\\\
            If mstrFileName3 <> "" Then
				Response.write  "<IMG  SRC=""/shared/practice/" & mstrFileName3 & """>" 
			End If

			Response.write  "<br>" 
			
            '///////////print out the curve graph\\\\\\\\\\\\\\
            If mstrFileName2 <> "" Then
				Response.write  "<IMG  SRC=""/shared/practice/" & mstrFileName2 & """>" 
			End If
	%>
  </td></tr>
</table>
</BODY>
</HTML>