Example #1
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 #2
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 #3
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);
        }
Example #4
0
 private SN76477 LoadFile(string filename)
 {
     try
     {
         XmlSerializer serializer = new XmlSerializer(typeof(SN76477));
         StreamReader  reader     = File.OpenText(filename);
         SN76477       sn         = (SN76477)serializer.Deserialize(reader);
         reader.Close();
         return(sn);
     }
     catch
     {
         return(null);
     }
 }
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 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 #7
0
 private void toolStripButtonNew_Click(object sender, EventArgs e)
 {
     _sn = new SN76477();
     _currentFilename = "<new>";
     DisplayConfiguration(_sn);
 }
Example #8
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 #9
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 #10
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 #11
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Ω";
 }