FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
gammes Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
gammes Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
gammes Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
gammes Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
gammes Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
gammes Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
gammes Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
gammes Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
gammes Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
gammes Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
gammes Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
gammes Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
gammes Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
gammes Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
gammes Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Boutique Nike : -25% dès 50€ sur TOUT le ...
Voir le deal

 

 gammes

Aller en bas 
AuteurMessage
musicgames




Nombre de messages : 55
Date d'inscription : 21/01/2008

gammes Empty
MessageSujet: gammes   gammes EmptyMar 3 Fév 2009 - 9:52

J' ai fait ce petit programme pour illustrer la toute nouvelle commande MIDI_PLAY de Panoramic.
On peut contruire des gammes en cliquant sur un clavier de piano, ou essayer de reconstruire une gamme aléatoire que le proramme nous propose.
Code:

DIM I,K,Gammes%(5,8),GammeAlea%(8),NoteSel%,NotesX%(13),NotesNatX%(8),NotesNat%(8),GammeChr%(13)
DIM NotesXY%(2,13),ActionGamme%

LABEL NvGamme,JouerGammeAlea,FaireGamme,JouerMaGamme
LABEL AjouterNote,SupprimerNote,SupprimerToutes

WIDTH 0,800 : HEIGHT 0,600 : CAPTION 0,"gammes musicales"
COLOR 0,200,200,255 : FONT_NAME 0,verdana : FONT_SIZE 0,9

BUTTON 1 : WIDTH 1,150 : HEIGHT 1,30 : CAPTION 1,"nouvelle gamme"
LEFT 1,240 : TOP 1,30 : ON_CLICK 1,NvGamme

BUTTON 2 : WIDTH 2,150 : HEIGHT 2,30 : CAPTION 2,"rejouer"
LEFT 2,410 : TOP 2,30 : ON_CLICK 2,JouerGammeAlea

PICTURE 3 : WIDTH 3,640 : HEIGHT 3,200 : TOP 3,200 : LEFT 3,80
ON_CLICK 3,FaireGamme

BUTTON 4 : WIDTH 4,150 : HEIGHT 4,30 : CAPTION 4,"jouer ma gamme"
LEFT 4,325 : TOP 4,480 : ON_CLICK 4,JouerMaGamme

BUTTON 5 : WIDTH 5,200 : HEIGHT 5,30 : CAPTION 5,"ajouter une note"
LEFT 5,85 : TOP 5,430 : ON_CLICK 5,AjouterNote

BUTTON 6 : WIDTH 6,200 : HEIGHT 6,30 : CAPTION 6,"supprimer une note"
LEFT 6,295 : TOP 6,430 : ON_CLICK 6,SupprimerNote

BUTTON 7 : WIDTH 7,200 : HEIGHT 7,30 : CAPTION 7,"supprimer toutes les notes"
LEFT 7,505 : TOP 7,430 : ON_CLICK 7,SupprimerToutes


PRINT_LOCATE 100,100
PRINT "une gamme est une série de notes qui montent ou descendent"
PRINT_LOCATE 100,130
PRINT "écoute la gamme aléatoire et essaye de la reconstruire, en faisant la tienne"
PRINT_LOCATE 100,160
PRINT "ou fais simplement ta propre gamme"

DATA 0,2,4,5,7,9,11,12
DATA 0,2,3,5,7,8,10,12
DATA 0,2,4,5,7,9,10,12
DATA 0,2,3,5,7,8,11,12
DATA 0,1,3,5,7,8,10,12

FOR I=1 TO 5
  FOR K=1 TO 8
    READ Gammes%(I,K)
  NEXT K
NEXT I

DATA 0,55,105,135,185,240,295,345,375,425,455,505,560,640
FOR I=0 TO 13
  READ NotesX%(I)
NEXT I

DATA 0,80,160,240,320,400,480,560,640
FOR I=0 TO 8
  READ NotesNatX%(I)
NEXT I

DATA 1,3,5,6,8,10,12,13
FOR I=1 TO 8
  READ NotesNat%(I)
NEXT I

DATA 40,80,120,160,200,280,320,360,400,440,480,520,600
DATA 160,80,160,80,160,160,80,160,80,160,80,160,160

FOR I=1 TO 2
  FOR K=1 TO 13
    READ NotesXY%(I,K)
  NEXT K
NEXT I

MIDI_ON

2D_TARGET_IS 3

2D_RECTANGLE 0,0,640,200
FOR I=1 TO 12
  2D_LINE 80*I,0,80*I,200
NEXT I
2D_FILL_COLOR 0,0,0
2D_RECTANGLE 55,0,105,120
2D_RECTANGLE 135,0,185,120
2D_RECTANGLE 295,0,345,120
2D_RECTANGLE 375,0,425,120
2D_RECTANGLE 455,0,505,120

2D_PEN_COLOR 255,128,0
2D_FILL_COLOR 255,128,0

INACTIVE 2

ActionGamme% = 1

END

NvGamme:

  ACTIVE 2

  GammeAlea%(0) = RND(4) + 1

  FOR I=1 TO 8
    GammeAlea%(I) = Gammes%(GammeAlea%(0),I) + 60
  NEXT I
 
 
GOTO JouerGammeAlea

JouerGammeAlea:

  FOR I=1 TO 8
    MIDI_PLAY GammeAlea%(I),4
  NEXT I

RETURN

FaireGamme:

  IF (MOUSE_Y_LEFT_DOWN(3) <= 120)
    FOR I=1 TO 13
      IF (MOUSE_X_LEFT_DOWN(3) > NotesX%(I-1)) AND (MOUSE_X_LEFT_DOWN(3) <= NotesX%(I))
        NoteSel% = I
      END_IF
    NEXT I
  ELSE
    FOR I=1 TO 8
      IF (MOUSE_X_LEFT_DOWN(3) > NotesNatX%(I-1)) AND (MOUSE_X_LEFT_DOWN(3) <= NotesNatX%(I))
        NoteSel% = NotesNat%(I)
      END_IF
    NEXT I
  END_IF
 
 
  IF (ActionGamme% = 1)
    GammeChr%(NoteSel%) = 1
    2D_PEN_COLOR 255,128,0
    2D_FILL_COLOR 255,128,0
  END_IF
  IF (ActionGamme% = 2)
    GammeChr%(NoteSel%) = 0
    2D_PEN_COLOR 0,0,0
    2D_FILL_COLOR 0,0,0
    FOR I=1 TO 8
      IF NoteSel% = NotesNat%(I)
        2D_PEN_COLOR 255,255,255
        2D_FILL_COLOR 255,255,255
      END_IF
    NEXT I
  END_IF
  2D_CIRCLE NotesXY%(1,NoteSel%),NotesXY%(2,NoteSel%),20

 
  MIDI_PLAY 59 + NoteSel%,8
 
RETURN

JouerMaGamme:

  FOR I=1 TO 13
    IF (GammeChr%(I) = 1) THEN MIDI_PLAY 59+I,6
  NEXT I

RETURN

AjouterNote:

  ActionGamme% = 1

RETURN

SupprimerNote:

  ActionGamme% = 2

RETURN

SupprimerToutes:

  2D_PEN_COLOR 0,0,0
  2D_FILL_COLOR 255,255,255
  2D_RECTANGLE 0,0,640,200
  FOR I=1 TO 12
    2D_LINE 80*I,0,80*I,200
  NEXT I
  2D_FILL_COLOR 0,0,0
  2D_RECTANGLE 55,0,105,120
  2D_RECTANGLE 135,0,185,120
  2D_RECTANGLE 295,0,345,120
  2D_RECTANGLE 375,0,425,120
  2D_RECTANGLE 455,0,505,120
 
  FOR I=1 TO 13
    GammeChr%(I) = 0
  NEXT I

RETURN
Revenir en haut Aller en bas
Invité
Invité




gammes Empty
MessageSujet: Re: gammes   gammes EmptySam 31 Oct 2009 - 14:03

Super ton piano !

Juste une chose.
Quand ont clique plusieurs fois sur la même note il ne joue qu'une seule fois la note.

A+
Revenir en haut Aller en bas
 
gammes
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: