//create a serializable object that can be saved to a json file
        public ProgramGroupData generateProgramGroupData()
        {
            ProgramGroupData outPGdata = new ProgramGroupData();
            //add audio sessions for programs that were running when THIS program started running
            foreach(AudioSession aSession in loadedAudioSessions.Distinct()){
                outPGdata.audioSessions.Add(aSession.Process.ProcessName);
                outPGdata.numOfSessions++;

            }
            //add audio sessions for programs that were not running when THIS program started running
            foreach (string aSession in nonLoadedAudioSessions)
            {

                outPGdata.audioSessions.Add(aSession);
                outPGdata.numOfSessions++;
            }
            outPGdata.volAsPercent = volAsPercent;
            outPGdata.groupName = groupName;
            outPGdata.audioSessions = outPGdata.audioSessions.Distinct().ToList();
            outPGdata.numOfSessions = outPGdata.audioSessions.Count();

            //hotkey saveData
            outPGdata.hasHotkey = hasHotkey;
            outPGdata.mods = this.mods;
            outPGdata.volumeUp = this.volumeUp;
            outPGdata.volumeDown = this.volumeDown;

            return outPGdata;
        }