搜索
bottom↓
回复: 3

求一个模拟音乐频谱的C代码

[复制链接]

出0入4汤圆

发表于 2024-7-29 19:05:22 | 显示全部楼层 |阅读模式
我指的模拟,不需要根据真实频率来做显示的。。。

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出200入2554汤圆

发表于 2024-7-29 19:13:46 来自手机 | 显示全部楼层
那就做个波表自己积分?

出0入0汤圆

发表于 2024-7-30 09:15:52 | 显示全部楼层
#include <ncurses.h>
#include <stdlib.h>
#include <time.h>

#define NUM_BARS 64
#define MAX_HEIGHT 20

void drawBars(int *heights) {
    clear();
    for (int i = 0; i < NUM_BARS; ++i) {
        for (int j = 0; j < heights[i]; ++j) {
            mvprintw(LINES - j - 1, i * 2, "||");
        }
    }
    refresh();
}

void updateHeights(int *heights) {
    for (int i = 0; i < NUM_BARS; ++i) {
        heights[i] = rand() % (MAX_HEIGHT + 1);
    }
}

int main() {
    srand(time(NULL));

    initscr();
    noecho();
    curs_set(FALSE);
    timeout(100);  // Non-blocking input with timeout

    int heights[NUM_BARS] = {0};

    int quit = 0;
    while (!quit) {
        int ch = getch();
        if (ch == 'q' || ch == 'Q') {
            quit = 1;
        }

        updateHeights(heights);
        drawBars(heights);
    }

    endwin();
    return 0;
}

问chatgpt的

出0入4汤圆

 楼主| 发表于 2024-8-1 11:17:21 | 显示全部楼层
谢谢楼上两位的回复。

后面的解决方法是让ChatGPT生成一组表示频点高度的随机数,然后再开启MCU内部的一个定时器,然后每隔一个固定时间去读定时器计数值,用这个计数值来作为数组下标,去访问前面的随机数的数组。然后得到频点高度的数值后,再转化为具体的显示内容就行了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-17 17:34

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表