hallo co´ers

ik heb een vraagje over geluiden met een pic.
ik ben bezig met de cursus van fritz kieftenbelt
zeer leerzaam.
alleen het stukje over geluid vind ik wat summier.

ik vroeg mij af of jullie ervaring of voorbeelden hebben
hoe ik een muziekje kan maken of iets anders dan een piepje.
het mogen ook stukjes code zijn.

en een tweede vraag is hoe kan ik een soort van geluid generator
kan maken met bijvoorbeeld een paar potmeters die het geluid veranderen in ritme,frequentie enz.

graag hulp
groeten olan

Op 3 november 2011 19:54:55 schreef olan:
en een tweede vraag is hoe kan ik een soort van geluid generator
kan maken met bijvoorbeeld een paar potmeters die het geluid veranderen in ritme,frequentie enz.

Dat kan met je PWM uitgang (HPWM 1) of (HPWM 2).


Declare CCP1_PIN PORTC.2                     
HPWM 1 , 127 , var1 

Var1 = potmeter

Als je nu de potmeter verdraaid zal de frequentie ook veranderen.
Kijk ook even naar les_7 van Frits.
De poort C.2 is hier van een 16F877, dus even aanpassen aan jou type controller.

Misschien heb je hier ook wat aan...

http://www.protonbasic.co.uk/content.php/849-Making-Polyphonic-Music-w…

Het is in het engels en eigenlijk voor gevorderden...

Maar ja, misschien helpt het.

Roche

Let ook even hier op, dit zijn de minimun frequentie's, bij een bepaalde clock frequentie.

Xtal frequency Lowest useable Pwm frequency

4MHz 145Hz
8MHz 489Hz
10MHz 611Hz
12MHz 733Hz
16MHz 977Hz
20MHz 1221Hz
24MHz 1465Hz
33MHz 2015Hz
40MHz 2442Hz

Leuk geintje van mijn kant: een bijzonder verlepte versie van "The Phantom Of The Opera" voor PWM. Ik heb nooit de moeite genomen om de timing goed te krijgen dus je hoort alle noten in een gelijk tempo.

Symbol note_A3 = 2200'Hz
Symbol note_D4 = 2930
Symbol note_C4 = 2620
Symbol note_AB3 = 2330
Symbol note_G3 = 1960
Symbol note_F4 = 3490
Symbol note_A4 = 4400
Symbol note_G4 = 3920
Symbol note_C5 = 5232
Symbol note_D5 = 5873
Symbol note_AB4 = 4661
Symbol note_E4 = 3296
Symbol note_CD4 = 2771
;Symbol note_ = 

demo:

HPWM 1, 128, note_A3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_D4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_A3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_C4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_AB3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_AB3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_G3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_C4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_G3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_A3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_A3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_D4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_A3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_C4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_AB3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_AB3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_G3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_C4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_G3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_A3
DelayMS 150
HPWM 1, 128, 0
DelayMS 500

HPWM 1, 128, note_A3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_D4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_F4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_A4
DelayMS 400
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_G4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_G4
DelayMS 150
HPWM 1, 128, 0
DelayMS 500
HPWM 1, 128, note_G4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_C5
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_G4
DelayMS 150
HPWM 1, 128, 0
DelayMS 100
HPWM 1, 128, note_A4
DelayMS 150
HPWM 1, 128, 0
DelayMS 500
HPWM 1, 128, note_A4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_D5
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_C5
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_AB4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_A4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_G4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_F4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_E4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_D4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_CD4
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_AB3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_AB3
DelayMS 150
HPWM 1, 128, 0
DelayMS 150
HPWM 1, 128, note_A3
DelayMS 300
HPWM 1, 128, 0
DelayMS 200
HPWM 1, 128, note_A3
DelayMS 300
HPWM 1, 128, 0
DelayMS 2000
Return

oke hier kan ik al iets mee
ik hoop ook dat er nog meer van dit soort stukjes code komen.

maar wat ik bedoel is een soort geluiden box een loopje dat steeds
hoorbaar is en waarvan je met verschillende potmeters het geluidje kan veranderen

een soort theremin ook op youtube zijn filmpjes te zien.

ik wacht af op jullie reakties

groeten olan

Zoek eens op "Atari Punk Console", een combinatie van een astabiele en monostabiele-multivibrator. Dat moet met een PIC ook wel te maken zijn.

Hint: wissel note_... eens om met een variabele waarin de waarde van een analoog-digitaal omzetting staat. Als je dat ook met de 128 doet ben je klaar.

@Iemand, zoiets moet toch met twee lookup tables een stuk kleiner te maken zijn? 1 tabel voor de frequentie en 1 voor de tijd. Loopje laten draaien en klaar.

@kif: weet ik, maar dit stukje code is in 5 minuten in elkaar gezet als grap bij mijn profielwerkstuk (een cansat).

hallo co'ers

de atari punk console is inderdaad wat ik zoek
ik heb al vanalles gevonden aan schema's
morgen even een paar potmeter halen de rest heb ik wel

en iedereen bedankt voor de info