1 / 13

geluid, MIDI

geluid, MIDI. Wat gaan we doen: Een (vaste) melodie spelen op de PC speaker MIDI variable-length integers interpreteren. Geluid maken (werkt alleen op XP!). #include <windows.h> Beep( Frequency, Milliseconds ); _sleep( Milliseconds ); Let op: B eep!. noten : naam (= toon hoogte).

aderyn
Download Presentation

geluid, MIDI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. geluid, MIDI Wat gaan we doen: • Een (vaste) melodie spelen op de PC speaker • MIDI variable-length integers interpreteren Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  2. Geluid maken (werkt alleen op XP!) #include <windows.h> Beep( Frequency, Milliseconds ); _sleep( Milliseconds ); Let op: Beep! Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  3. noten : naam (= toon hoogte) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  4. noten : duur Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  5. nootnaam  frequentie Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  6. een geinitialiseerd array int Prime[ 9 ] = { 1, 2, 3, 5, 7, 11, 13, 17, 19 }; int Square[] = { 1, 4, 9, 16, 25, 36 }; Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  7. een geinitialiseerd array (2) typedef struct { char naam[ 10 ]; float cijfer; } Student; Student Info[] = { { "hans", 6.7 }, { "johan", 3.2 }, { "michiel", 7.8 }, { "", 0.0 } }; Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  8. gebruik van #define (1) play( 4567, 400 ); play( 4793, 200 ); play( 4567, 400 ); play( 4793, 200 ); play( 4567, 400 ); play( 4793, 200 ); Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  9. gebruik van #define (2) #define A 4567 #define B 4793 #define HALF 400 #define KWART 200 play( A, HALF ); play( B, KWART ); play( A, HALF ); play( B, KWART ); play( A, HALF ); play( B, KWART ); Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  10. Opdracht 1 Maak een functie die je aanroept met • het MIDI noot nummer • de duur in milliseconden De functie moet dus het noot nummer vertalen naar de frequentie. De functie moet (voor debugging) ook de noot naam, nummer en duur afdrukken. Schrijf hiermee een programma dat een liedje laat horen. Gebruik #defines voor de lengtes (duur) van noten en eventueel voor de noten zelf. Gebruik een geinitialiseerd array om het liedje op te slaan. In dit array moet het MIDI nummer van een noot staan, niet de frequentie. Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  11. MIDI variable-length integer format • In het laatste (‘laatste’, laagstwaardige) byte staat het hoogste bit op 0 • Als er nog een volgend bit komt dan staat het hoogste bit op 1 • De byte met ”meestwaardige” bits staat voorop • 7 ‘data’ bits per byte • maximum is 4 bytes (dus 4x7=28 bits) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  12. MIDI variable-length integer format Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

  13. Opdracht 2 Schrijf een functie met de volgende definitie: int MIDI_Int( unsigned char **p ); Deze functie wordt aangeroepen met een pointer naar een pointer naar een (reeks) MIDI variable-length integers. De functie lees de eerste MIDI integer, veschuift de pointer tot net na die integer, en geeft die integer waarde terug. Test je functie. Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

More Related