The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Звук на C, pavlinux (ok), 11-Май-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


5. "Звук на C"  +/
Сообщение от ACCA (ok), 12-Май-11, 13:52 
В самом сэмпле смикшируй атаку и затухание. Затухание там нормальное, поэтому ты слышишь один щелчок, а не два.
Ответить | Правка | Наверх | Cообщить модератору

6. "Звук на C"  +/
Сообщение от pavlinux (ok), 12-Май-11, 14:11 
> В самом сэмпле смикшируй атаку и затухание. Затухание там нормальное, поэтому ты
> слышишь один щелчок, а не два.

Ну вот если только...
Вечером попробую.

Ответить | Правка | Наверх | Cообщить модератору

7. "Звук на C"  +/
Сообщение от pavlinux (ok), 12-Май-11, 17:50 
> В самом сэмпле смикшируй атаку и затухание. Затухание там нормальное, поэтому ты
> слышишь один щелчок, а не два.

Кстати, чем нынче модно WAV редактировать?

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

8. "Звук на C"  +/
Сообщение от pavlinux (ok), 12-Май-11, 18:03 
> В самом сэмпле смикшируй атаку и затухание. Затухание там нормальное, поэтому ты
> слышишь один щелчок, а не два.

Хошь прикол?!

Я же когда WAV перегонял в HEX, заголовок WAV не удалил
То есть, там, в массиве, первые 44 байта надо выкинуть. :)

http://pavlinux.ru/sound.h

ну и чуток поправил код, выкинул переменные не нужные.


#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <stdlib.h>
#include <stdio.h>
#include <linux/soundcard.h>

#include "sound.h"

int main(void)
{
        ssize_t arg;
        int fd;

        fd = open("/dev/dsp", O_RDWR);
        
        arg = 0;            ioctl(fd, SOUND_PCM_SYNC,           &arg);
        arg = RATE;         ioctl(fd, SOUND_PCM_WRITE_RATE,     &arg);
        arg = SIZE;         ioctl(fd, SOUND_PCM_WRITE_BITS,     &arg);
        arg = CHANNELS;     ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &arg);
        arg = AFMT_U16_BE;  ioctl(fd, SOUND_PCM_SETFMT,         &arg);
        arg = 4;            ioctl(fd, SOUND_PCM_SUBDIVIDE,      &arg);
        
        arg = (ssize_t)sizeof(Wave);

        write(fd, Wave, arg);

        ioctl(fd, SOUND_PCM_SYNC,  NULL);
        ioctl(fd, SOUND_PCM_RESET, NULL);

        close(fd);

return 0;
}


Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру