LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Pípání na zvukovou kartu

Edituj záznam
Kategorie: C++
Programovací jazyk: C++
Domovská stránka:
Download:
Tvůrce: Jan Němec
Popis skriptu: Zahraje durovou stupnici na zvukovou kartu.
Nároky na klienta: Překladač C, Unix, zvuková karta přes /dev/dsp
Nároky na server: Žádné
Kód s komentáři:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <fcntl.h>
#include <sys/soundcard.h>
#define PI 3.14159

/* půltóny durové stupnice */
int stupnice[8] = {0, 2, 4, 5, 7, 9, 11, 12};

int ton(int fd, double rychlost, int okt, int pulton, double delka){
double freq;
double pul, d;
int n, i;
unsigned char *p;
/* tón A */
freq = 440.0;
if(okt >= 0)
for(;okt>0; okt--) freq *= 2; else for (;okt<0; okt++) freq /= 2;
/* půltón je vynásobení frekvence dvanáctou odmocninou ze 2 */
pul = pow(2, 1.0/12.0);
for(; pulton>0; pulton--) freq *= pul;
printf("frekvence tonu: %fHz\n", freq);
n = (int)(delka * rychlost + 0.5);
/* Do bufferu spočítej data tónu */
p = malloc(n);
if (!p) return -1;
d = n/(freq * 2 * PI);
for (i = 0; i < n; i++)
p[i] = 128 + (int)(40 * (sin(i / d) + 0.5 * sin(4 * (i / d))) + 0.5);
write(fd, p, n);
free(p);
return 0;
}

int main(int argc, char *argv[]) {
int audio, j;
int rychlost = 20000;

/* Budeme psát přímo na zařízení */
audio = open("/dev/dsp", 1, 0);
if(audio<1) {
puts("Neuspech open(/dev/dsp)");
}
if(ioctl(audio, SNDCTL_DSP_SPEED, &rychlost) == -1) {
close(audio);
puts("Nejde nastavit rychlost");
}
for(j = 0; j < 8; j++){
ton(audio,rychlost,0,stupnice[j],1);
}
close(audio);
return 0;
}
Zadal/a: Jan Němec


pridej.cz

> Vyhledávání software
> Vyhledávání článků

16.7.2018 1:05 /František Kučera

Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.


Přidat komentář

18.6.2018 0:43 /František Kučera
Červnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 21. 6. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: F-Droid, aneb svobodný software do vašeho mobilu. Kromě toho budou k vidění i vývojové desky HiFive1 se svobodným/otevřeným čipem RISC-V.
Přidat komentář

23.5.2018 20:55 /Ondřej Čečák
Od pátku 25.5. proběhne na Fakultě informačních technologií ČVUT v Praze openSUSE Conference. Můžete se těšit na spostu zajímavých přednášek, workshopů a také na Release Party nového openSUSE leap 15.0. V na stejném místě proběhne v sobotu 26.5. i seminář o bezpečnosti CryptoFest.
Přidat komentář

20.5.2018 17:45 /Redakce Linuxsoft.cz
Ve čtvrtek 31. května 2018 připravuje webový magazín BusinessIT ve spolupráci s Best Online Média s.r.o. pátý ročník odborné konference Firemní informační systémy 2018. Akce proběhne v kongresovém centru Vavruška (palác Charitas), Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00 hod. dopoledne do cca 15 hod. odpoledne. Konference je zaměřena na efektivní využití firemních informačních systémů a na to, jak plně využít jejich potenciál. Podrobnější informace na webových stránkách konfrence.
Přidat komentář

14.5.2018 7:28 /František Kučera
Květnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 17. 5. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: Audio – zvuk v GNU/Linuxu.
Přidat komentář

7.5.2018 16:20 /František Kučera
Na stránkách spolku OpenAlt vyšla fotoreportáž Pražské srazy 2017 dokumentující srazy za uplynulý rok. Květnový pražský sraz na téma audio se bude konat 17. 5. 2018 (místo a čas ještě upřesníme).
Přidat komentář

17.4.2018 0:46 /František Kučera
Dubnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 4. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tématem tohoto srazu bude OpenStreetMap (OSM) aneb svobodné mapy.
Přidat komentář

16.3.2018 22:01 /František Kučera
Kulatý OpenAlt sraz v Praze oslavíme klasicky: u limonády a piva! Přijďte si posedět, dát si dobré jídlo a vybrat z mnoha piv do restaurace Kulový blesk, který najdete v centru Prahy nedaleko metra I. P. Pavlova na adrese Sokolská 13, Praha 2. Sraz se koná ve čtvrtek 22. března a začínáme v 18:00. Heslo: OpenAlt. Vezměte s sebou svoje hračky! Uvítáme, když si s sebou na sraz vezmete svoje oblíbené hračky. Jestli máte nějaký drobný projekt postavený na Arduinu, nějakou zajímavou elektronickou součástku, či třeba i pěkný úlovek z crowdfundingové akce, neváhejte. Oslníte ostatní a o zábavu bude postaráno.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

20.2.2018 18:48 / Ivan Majer
portal

20.2.2018 15:57 / Jan Havel
Jak využíváte služby cloudu v podnikání?

16.1.2018 1:08 / Ivan Pittner
verejna ip od o2 ubuntu

15.1.2018 17:26 / Mira Harvalik
Re: Jak udělat HTML/Javascript swiping gallery do mobilu?

30.12.2017 20:16 / Michal Knoll
odmocnina

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2018) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze