搜索
bottom↓
回复: 3
打印 上一主题 下一主题

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

[复制链接]

出0入4汤圆

跳转到指定楼层
1
发表于 2024-7-29 19:05:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我指的模拟,不需要根据真实频率来做显示的。。。

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出200入2554汤圆

2
发表于 2024-7-29 19:13:46 来自手机 | 只看该作者
那就做个波表自己积分?

出0入0汤圆

3
发表于 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汤圆

4
 楼主| 发表于 2024-8-1 11:17:21 | 只看该作者
谢谢楼上两位的回复。

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

本版积分规则

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

GMT+8, 2024-8-25 06:08

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

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