Example #1
0
        private void toolStripButtonOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.CheckFileExists = true;
            ofd.CheckPathExists = true;
            ofd.DefaultExt = "xml";
            if (ofd.ShowDialog(this) == DialogResult.OK) _currentFilename = ofd.FileName;

            SN76477 sn = this.LoadFile(_currentFilename);
            if (sn != null)
            {
                _sn = sn;
                DisplayConfiguration(_sn);
                DisplayApplicationTitle();
            }
        }
Example #2
0
        private void DisplayConfiguration(SN76477 sn)
        {
            SetResistanceToCombobox(sn.SLFRES, cbSLFRES);
            trackBarSLFRES.Minimum = 0;
            trackBarSLFRES.Maximum = (int)sn.SLFRESVARMAX;
            trackBarSLFRES.Value = (int)sn.SLFRESVAR;
            SetCapacitanceToCombobox(sn.SLFCAP, cbSLFCAP);
            DisplaySLFData(sn);
            
            SetResistanceToCombobox(sn.VCORES, cbVCORES);
            trackBarVCORES.Minimum = 0;
            trackBarVCORES.Maximum = (int)sn.VCORESVARMAX;
            trackBarVCORES.Value = (int)sn.VCORESVAR;

            SetCapacitanceToCombobox(sn.VCOCAP, cbVCOCAP);
            SetVoltageToTrackBar(sn.VCOEXTVOLTAGE, trackBarVCOEXT);
            SetVoltageToTrackBar(sn.VCOPITCHVOLTAGE, trackBarVCOPITCH);
            if (sn.VCOSELECT == 0) checkBoxVCOEXT.Checked = true;
            else checkBoxVCOEXT.Checked = false; 
            DisplayVCOData(sn);
            
            SetResistanceToCombobox(sn.NOISECLOCKRES, cbNOISEGENRES);
            trackBarNOISEGENRES.Minimum = 0;
            trackBarNOISEGENRES.Maximum = (int)sn.NOISECLOCKRESVARMAX;
            trackBarNOISEGENRES.Value = (int)sn.NOISECLOCKRESVAR;

            SetResistanceToCombobox(sn.NOISEFILTERRES, cbNOISEFILTERRES);
            trackBarNOISEFILTERRES.Minimum = 0;
            trackBarNOISEFILTERRES.Maximum = (int)sn.NOISEFILTERRESVARMAX;
            trackBarNOISEFILTERRES.Value = (int)sn.NOISEFILTERRESVAR;
            SetCapacitanceToCombobox(sn.NOISEFILTERCAP, cbNOISEFILTERCAP);
            DisplayNoiseData(sn);

            SetResistanceToCombobox(sn.ONESHOTRES, cbONESHOTRES);
            trackBarONESHOTRES.Minimum = 0;
            trackBarONESHOTRES.Maximum = (int)sn.ONESHOTRESVARMAX;
            trackBarONESHOTRES.Value = (int)sn.ONESHOTRESVAR;
            SetCapacitanceToCombobox(sn.ONESHOTCAP, cbONESHOTCAP);
            DisplayOneShotData(sn);

            SetCapacitanceToCombobox(sn.ENVCAP, cbENVCAP);
            SetResistanceToCombobox(sn.ENVATKRES, cbENVATKRES);
            trackBarENVATKRES.Minimum = 0;
            trackBarENVATKRES.Maximum = (int)sn.ENVATKRESVARMAX;
            trackBarENVATKRES.Value = (int)sn.ENVATKRESVAR;
            SetResistanceToCombobox(sn.ENVDECRES, cbENVDECRES);
            trackBarENVDECRES.Minimum = 0;
            trackBarENVDECRES.Maximum = (int)sn.ENVDECRESVARMAX;
            trackBarENVDECRES.Value = (int)sn.ENVDECRESVAR;
            DisplayEnvelopeData(sn);

            SetResistanceToCombobox(sn.FEEDBACKRES, cbFEEDBACKRES);
            SetResistanceToCombobox(sn.AMPLITUDERES, cbAMPLITUDERES);

            checkBoxMIXVCO.Checked = false;
            checkBoxMIXSLF.Checked = false;
            checkBoxMIXNOISE.Checked = false;

            if (sn.MixerMode == MixerMode.VCO)
            {
                checkBoxMIXVCO.Checked = true;
            }
            else if (sn.MixerMode == MixerMode.SLF)
            {
                checkBoxMIXSLF.Checked = true;
            }
            else if (sn.MixerMode == MixerMode.NOISE)
            {
                checkBoxMIXNOISE.Checked = true;
            }
            else if (sn.MixerMode == MixerMode.VCO_NOISE)
            {
                checkBoxMIXVCO.Checked = true;
                checkBoxMIXNOISE.Checked = true;
            }
            else if (sn.MixerMode == MixerMode.SLF_NOISE)
            {
                checkBoxMIXSLF.Checked = true;
                checkBoxMIXNOISE.Checked = true;
            }
            else if (sn.MixerMode == MixerMode.SLF_VCO_NOISE)
            {
                checkBoxMIXVCO.Checked = true;
                checkBoxMIXSLF.Checked = true;
                checkBoxMIXNOISE.Checked = true;
            }
            else if (sn.MixerMode == MixerMode.SLF_VCO)
            {
                checkBoxMIXVCO.Checked = true;
                checkBoxMIXSLF.Checked = true;
            }

            rbENVVCO.Checked = false;
            rbENVMIXER.Checked = false;
            rbENVONESHOT.Checked = false;
            rbENVVCOALT.Checked = false;

            if (sn.EnvelopeMode == EnvelopeMode.VCO) rbENVVCO.Checked = true;
            else if (sn.EnvelopeMode == EnvelopeMode.VCO_ALTERNATING) rbENVVCOALT.Checked = true;
            else if (sn.EnvelopeMode == EnvelopeMode.MIXER) rbENVMIXER.Checked = true;
            else if (sn.EnvelopeMode == EnvelopeMode.ONESHOT) rbENVONESHOT.Checked = true;
        }
Example #3
0
 private void toolStripButtonNew_Click(object sender, EventArgs e)
 {
     _sn = new SN76477();
     _currentFilename = "<new>";
     DisplayConfiguration(_sn);
 }
Example #4
0
 private void DisplayOutputData(SN76477 sn)
 {
     labelOutputVoltageMinMax.Text = String.Format("{0}V - {1}V (clip {2}V)",
         Math.Round(sn.OUTVOLTAGEMIN,2), Math.Round(sn.OUTVOLTAGEMAX,2),3.51);
 }
Example #5
0
 private void DisplayVCOData(SN76477 sn)
 {
     if (_sn.VCO_FrequencyMin < 1) labelVCOFrequency.Text = (Math.Round(1 / _sn.VCO_FrequencyMin, 2)).ToString() + " sec";
     else labelVCOFrequency.Text = (Math.Round(_sn.VCO_FrequencyMin,2)).ToString() + " Hz";
     labelVCORESTOTAL.Text = (Math.Round((sn.VCORES + sn.VCORESVAR) / 1000, 0)).ToString() + " kΩ";
     labelVCOEXTVoltage.Text = (Math.Round(sn.VCOEXTVOLTAGE,2)).ToString() + " V";
     labelVCOEXTFrequency.Text = (Math.Round(sn.VCO_ExternalVoltage_Frequency, 2)).ToString() + " Hz";
     labelVCOPitchVoltage.Text = (Math.Round(sn.VCOPITCHVOLTAGE,2)).ToString() + " V";
     labelVCOPitchDutyCycle.Text = (Math.Round(sn.VCO_DutyCycle, 2)).ToString() + " %";
 }
Example #6
0
 private void DisplayNoiseData(SN76477 sn)
 {
     labelNoiseFrequency.Text = (Math.Round(sn.NoiseGenerator_Frequency, 2)).ToString() + " Hz";
     labelNoiseFilterFrequency.Text  = (Math.Round(sn.NoiseFilter_Frequency, 2)).ToString() + " Hz";
     labelNOISEGENRESTOTAL.Text = (Math.Round((sn.NOISECLOCKRES + sn.NOISECLOCKRESVAR) / 1000, 0)).ToString() + " kΩ";
     labelNOISEFILTERRESTOTAL.Text = (Math.Round((sn.NOISEFILTERRES + sn.NOISEFILTERRESVAR) / 1000, 0)).ToString() + " kΩ";
 }
Example #7
0
 private void DisplayEnvelopeData(SN76477 sn)
 {
     labelAttackLength.Text = (Math.Round(sn.Attack_Time, 2)).ToString() + " sec";
     labelDecayLength.Text = (Math.Round(sn.Decay_Time, 2)).ToString() + " sec";
     labelATKRESTOTAL.Text = (Math.Round((sn.ENVATKRES + sn.ENVATKRESVAR) / 1000, 0)).ToString() + " kΩ";
     labelDECRESTOTAL.Text = (Math.Round((sn.ENVDECRES + sn.ENVDECRESVAR) / 1000, 0)).ToString() + " kΩ";
 }
Example #8
0
 private void DisplaySLFData(SN76477 sn)
 {
     labelSLFFrequency.Text = (Math.Round(sn.SLF_Frequency,2)).ToString() + " Hz";
     labelSLFRESTOTAL.Text = (Math.Round((sn.SLFRES+sn.SLFRESVAR)/1000,0)).ToString() + " kΩ";
 }
Example #9
0
 private void DisplayOneShotData(SN76477 sn)
 {
     labelOneShotLength.Text = (Math.Round(sn.OneShotTime, 2)).ToString() + " sec";
     labelONESHOTRESTOTAL.Text = (Math.Round((sn.ONESHOTRES + sn.ONESHOTRESVAR) / 1000, 0)).ToString() + " kΩ";
 }
Example #10
0
        private void EmulatorForm_Load(object sender, EventArgs e)
        {
            _directSoundDevice = new Device();
            _directSoundDevice.SetCooperativeLevel(this, CooperativeLevel.Priority);

            SetWiderstandsreihe(12,  1000, 10000000, this.cbSLFRES);
            SetWiderstandsreihe(12,  1000, 10000000, this.cbVCORES);
            SetWiderstandsreihe(12,  2700,  1000000, this.cbNOISEFILTERRES);
            SetWiderstandsreihe(12, 10000,  3300000, this.cbNOISEGENRES);
            SetWiderstandsreihe(12,  2700, 10000000, this.cbNOISEFILTERRES);
            SetWiderstandsreihe(12, 10000, 10000000, this.cbONESHOTRES);
            SetWiderstandsreihe(12,  1000, 10000000, this.cbENVATKRES);
            SetWiderstandsreihe(12,  1000, 10000000, this.cbENVDECRES);
            SetWiderstandsreihe(12,  1000, 10000000, this.cbFEEDBACKRES);
            SetWiderstandsreihe(12,  1000, 10000000, this.cbAMPLITUDERES);

            SetKondensatorreihe(0, 100000, this.cbENVCAP);
            SetKondensatorreihe(0, 100000, this.cbNOISEFILTERCAP);
            SetKondensatorreihe(0, 100000, this.cbONESHOTCAP);
            SetKondensatorreihe(0, 100000, this.cbSLFCAP);
            SetKondensatorreihe(0, 100000, this.cbVCOCAP);

            _sn = this.LoadFile(_xml_file_standard);
            if (_sn == null) _sn = new SN76477();

            DisplayConfiguration(_sn);
        }