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ů

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

8.1.2017 17:51 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 19. ledna od 18:30 v pražském hackerspacu Brmlab. Tentokrát je tématem srazu ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. K vidění bude mechanická klávesnice dasKeyboard, trackball Logitech nebo grafický tablet (a velký touchpad) Wacom. Přineste i vy ukázat svoje zajímavé klávesnice a další HW. V 18:20 je sraz před budovou, v 18:30 jdeme společně dovnitř, je tedy dobré přijít včas. Podle zájmu se později přesuneme do nějaké restaurace v okolí.
Přidat komentář

1.12.2016 22:13 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.
Komentářů: 1

4.9.2016 20:13 /Pavel `Goldenfish' Kysilka
PR: Dne 22.9.2016 proběhne v Praze konference Cloud computing v praxi. Tématy bude např. nejnovější trendy v oblasti cloudu a cloudových řešení, provozování ERP v cloudu, o hostování různých typů softwaru, ale třeba i o zálohování dat nabízeném podnikům formou služby.
Přidat komentář

1.9.2016 11:27 /Honza Javorek
Česká konference o Pythonu, PyCon CZ, stále hledá přednášející skrz dobrovolné přihlášky. Máte-li zajímavé téma, neváhejte a zkuste jej přihlásit, uzávěrka je již 12. září. Konference letos přijímá i přednášky v češtině a nabízí pomoc s přípravou začínajícím speakerům. Řečníci mají navíc vstup zadarmo! Více na webu.
Přidat komentář

27.8.2016 8:55 /Delujek
Dnes po 4 letech komunitního vývoje vyšla diaspora 0.6.0.0
diaspora* je open-source, distribuovaná sociální síť s důrazem na soukromý
Více v oficiálním blog-postu
Přidat komentář

24.8.2016 6:44 /Ondřej Čečák
Poslední týden CFP LinuxDays 2016; pokud byste rádi přednášeli na LinuxDays 2016 8. a 9. října v Praze, můžete svůj příspěvek přihlásit, následovat bude veřejné hlasování.
Přidat komentář

9.8.2016 22:56 /Petr Ježek
Zařazení souborového systému reiser4 do jádra 4.7 znamená konečně konec patchování jádra jen kvůli možnosti použít reiser4.
Přidat komentář

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

> Poslední diskuze

18.1.2017 20:18 / martin horky
Spolupraca linuxu a microsoftu

17.1.2017 9:57 / Pavel Hrubeš
Re: Externí USB televizní karta

4.1.2017 11:24 / Marcum
extension to house

3.1.2017 10:09 / bolden
country cottages

4.12.2016 22:54 / František Kučera
Dárek

Více ...

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