public LogarithmicScaleViewModel()
        {
            short[] sampleBuffer = CreateSampleBuffer();

            this.averageChannelNormalized = new double[sampleBuffer.Length / 2];
            for (int i = 1, k = 0; i < sampleBuffer.Length; i += 2, k++)
            {
                double seconds = (i / 2) * (1.0 / SamplingFrequency);
                double normalizedValueOfLeftChannel  = sampleBuffer[i] / sixteenBitSampleMaxVale;
                double normalizedValueOfRightChannel = sampleBuffer[i - 1] / sixteenBitSampleMaxVale;
                LeftChannelData.Add(new DateTimeData(BasisDate.AddSeconds(seconds), normalizedValueOfLeftChannel));
                RightChannelData.Add(new DateTimeData(BasisDate.AddSeconds(seconds), normalizedValueOfRightChannel));
                this.averageChannelNormalized[k] = (normalizedValueOfLeftChannel + normalizedValueOfRightChannel) / 2d;
            }

            int    halfOfFrame   = DefaultFrameLength / 2;
            double frequencyStep = SamplingFrequency / 2d / halfOfFrame;

            for (int i = 0; i < halfOfFrame; i++)
            {
                FrequencyData.Add(new NumericData(frequencyStep * i, 0));
            }

            this.last = DateTime.Now;
        }
Пример #2
0
        public FrequencyData[] GetSortedDatas()
        {
            int frequency = 0;

            for (int i = 0; i < m_fftRight.Length; i++)
            {
                double decibels = m_fftRight[i];
                m_datas[i] = new FrequencyData(frequency * 2, decibels);
                frequency++;
            }
            return(m_datas.OrderByDescending(x => x.Intensity).ToArray());
        }
Пример #3
0
    public void Visualize()
    {
        DestroyAll();

        frequencyGraphTransform.GetComponent <RectTransform>().sizeDelta = new Vector2(900, frequencyData.Count * 70f);
        int maxCnt = frequencyData[0].oldCnt + frequencyData[0].nowCnt;

        for (int i = 0; i < frequencyData.Count; i++)
        {
            FrequencyData data = frequencyData[i];
            Bar           bar  = Instantiate(barPrefab, frequencyGraphTransform).GetComponent <Bar>();
            bars.Add(bar);
            bar.Visualize(i, data.word, data.oldCnt, data.nowCnt, maxCnt);
        }
    }
Пример #4
0
        void Viewer_OnDataArrived(FrequencyData[] frequencies)
        {
            m_Playing_Notes.Clear();

            FundamentalFrequency = frequencies.First();
            m_Playing_Notes.Add(NotesManager.GetNoteByFrequency(FundamentalFrequency.Frequency));
            if (m_Playing_Notes[0] != null)
            {
                Console.WriteLine(m_Playing_Notes[0].SymbolUS);
            }


            if (RecordUpdated != null)
            {
                RecordUpdated(frequencies);
            }
            Console.WriteLine(FundamentalFrequency.Frequency);
        }
Пример #5
0
    public static List <FrequencyData> FrequencyParser(TextAsset asset)
    {
        List <FrequencyData> datas = new List <FrequencyData>();

        StringReader sr     = new StringReader(asset.text);
        string       source = sr.ReadLine();

        while (source != null)
        {
            string[]      values = source.Split('\t');
            FrequencyData data   = new FrequencyData(int.Parse(values[1]), int.Parse(values[2]), values[0]);

            datas.Add(data);

            source = sr.ReadLine();
        }

        return(datas);
    }
Пример #6
0
        public async Task <IActionResult> GetGraphData()
        {
            Graph graph     = new Graph();
            var   query     = _session.Query <ContentItem, ContentItemIndex>();
            var   allStatus = await query.Where(o => o.ContentType == "AdvancedFormStatus" && (o.Latest || o.Published)).ListAsync();

            //dynamic FreqStatus = new System.Dynamic.ExpandoObject();
            Dictionary <string, string> statusWithColor = new Dictionary <string, string>();

            query = _session.Query <ContentItem, ContentItemIndex>();
            var allTypes = await query.Where(o => o.ContentType == "AdvancedFormTypes" && (o.Latest || o.Published)).ListAsync();

            query = _session.Query <ContentItem, ContentItemIndex>();
            var allAdvacnedForms = await query.Where(o => o.ContentType == "AdvancedForm" && o.Latest).ListAsync();

            graph.FreqData = new List <FrequencyData>();
            FrequencyData data;

            query = _session.Query <ContentItem, ContentItemIndex>();
            var allSubmissions = await query.Where(o => o.ContentType == "AdvancedFormSubmissions" && o.Latest && o.Published).ListAsync();

            int formCount = 0;

            foreach (var type in allTypes)
            {
                var formsIds = allAdvacnedForms.Where(o => o.Content.AdvancedForm.Type.Text.ToString() == type.ContentItemId).Select(x => x.ContentItemId).ToList();
                data       = new FrequencyData();
                data.State = type.DisplayText;
                data.freq  = new Dictionary <string, int>();
                foreach (ContentItem status in allStatus)
                {
                    statusWithColor[status.DisplayText.Replace(" ", "_")] = status.Content.AdvancedFormStatus.Color.Text;
                    formCount = allSubmissions.Where(o => o.Content.AdvancedFormSubmissions.Status.Text.ToString() == status.ContentItemId &&
                                                     o.Content.AdvancedFormSubmissions.Type.Text.ToString() == type.ContentItemId).Count();
                    data.freq.Add(status.DisplayText.Replace(" ", "_"), formCount);
                }
                graph.FreqData.Add(data);
            }
            graph.FreqStatusColor = statusWithColor;
            return(Ok(graph));
        }