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
» Bataille terrestre
Piano Emptypar Marc Hier à 16:20

» item_index
Piano Emptypar Marc Hier à 16:13

» SineCube
Piano Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Piano Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Piano Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Piano Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Piano Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Piano Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Piano Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Piano Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Piano Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Piano Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Piano Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Piano Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Piano Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

 

 Piano

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Piano Empty
MessageSujet: Piano   Piano EmptyVen 30 Avr 2021 - 22:32

Juste vite fait pour s'amuser...
Je n'y connais rien en pratique de la musique, je sais juste écouter, je viens de découvrir les
instructions MIDI de Panoramic qui ouvrent des horizons.
C'est juste un essai, on peut faire beaucoup mieux et beaucoup plus élaboré, ici on peut jouer
au clair de la lune, ou jouer du piano sur le clavier, juste les notes do,ré,mi,fa,sol,la,si,do
sur les touches A Z E R T Y U I, très élémentaire (si ça se trouve ça avait déjà été fait,
je n'ai pas cherché...):
Code:
' Musique.bas: jouer des notes de musique avec des instruments différents
LABEL Qt,Instrum,piano,piano1,ecouter
DIM t1,t2,v,dt(11),ins$(127),inst(127),mido,ip,i,a$,b$
DIM do(3),dod(3),re(3),red(3),mi(3),fa(3),fad(3),sol(3),sold(3),la(3),lad(3),si(3)
' N°s de notes MIDI:
'      https://musicordes.fr/tableau-frequences-numero-de-note-midi/'
' ici notes sur 3 octaves, 12 valeurs par octave:
'      do, do#, re, re#, mi, fa, fa#, sol, sol#, la, la#, si
DATA 48,49,50,51,52,53,54,55,56,57,58,59: ' octave 1
DATA 60,61,62,63,64,65,66,67,68,69,70,71: ' octave 2
DATA 72,73,74,75,76,77,78,79,80,81,82,83: ' octave 3
FOR i = 1 TO 3
    READ do(i): READ dod(i): READ re(i): READ red(i): READ mi(i): READ fa(i)
    READ fad(i): READ sol(i): READ sold(i): READ la(i): READ lad(i): READ si(i)
NEXT i
: ' durée des notes en fonction de l'indice 0 à 11
dt(0)=4000: dt(1)=6000: dt(2)=2000: dt(3)=3000: dt(4)=1000: dt(5)=1500: dt(6)=500
dt(7)=750: dt(8)=250: dt(9)=375: dt(10)=125: dt(11)=188: ' durées note, en ms
' Liste des instruments (N°s):
'      https://www.zikinf.com/articles/mao/tablemidi.php
' Table complète des instruments: C:\PANORAMIC\MUSIQUE_MIDI\Instruments.rtf
DATA "Piano (1à8)","Percussion (9à16)","Orgue (17à24)","Guitare (25à32)"
DATA "Basse (33à40)","Violon (41à48)","Cordes (49à56)","Cuivres (57à64)"
DATA "Anche (65à72)","Flute (73à80)","Synthé1 (81à88)","Synthé2 (89à96)"
DATA "Synthé3 (97à104)","Ethnique (105à112)","Percussion (113à119"
DATA "Effets (120à128)"

BORDER_SMALL 0: WIDTH 0,350: HEIGHT 0,110: FONT_SIZE 0,10: COLOR 0,245,255,255
CAPTION 0,"  -  MUSIQUE  MIDI  -": ON_CLOSE 0,Qt
BUTTON 5: CAPTION 5,"Écouter": ON_CLICK 5,ecouter
BUTTON 6: TOP 6,TOP(5)+25: CAPTION 6,"Jouer": ON_CLICK 6,piano
BUTTON 7: TOP 7,TOP(6)+25: CAPTION 7,"Quitter": ON_CLICK 7,Qt
FOR i = 5 TO 7: WIDTH i,60: NEXT i
PICTURE 8: TOP 8,5: LEFT 8,WIDTH(5)+2: WIDTH 8,8: HEIGHT 8,HEIGHT_CLIENT(0)-10
COLOR 8,255,0,0: HIDE 8
CONTAINER_OPTION 10: LEFT 10,80: WIDTH 10,260: CAPTION 10,"INSTRUMENT :"
OPTION 11: PARENT 11,10: TOP 11,19: LEFT 11,0: CAPTION 11,"Piano": MARK_ON 11: ip=1
OPTION 12: PARENT 12,10: TOP 12,TOP(11): LEFT 12,85: CAPTION 12,"Xylophone"
OPTION 13: PARENT 13,10: TOP 13,TOP(11): LEFT 13,160: CAPTION 13,"Harmonica"
OPTION 14: PARENT 14,10: TOP 14,TOP(11)+19: LEFT 14,LEFT(11): CAPTION 14,"Guitare"
OPTION 15: PARENT 15,10: TOP 15,TOP(14): LEFT 15,LEFT(12): CAPTION 15,"Violon"
OPTION 16: PARENT 16,10: TOP 16,TOP(14): LEFT 16,LEFT(13): CAPTION 16,"Flûte"
OPTION 17: PARENT 17,10: TOP 17,TOP(14)+19: LEFT 17,LEFT(11): CAPTION 17,"Cornemuse"
OPTION 18: PARENT 18,10: TOP 18,TOP(17): LEFT 18,LEFT(12): CAPTION 18,"Oiseaux"
OPTION 19: PARENT 19,10: TOP 19,TOP(17): LEFT 19,LEFT(13): CAPTION 19,"Téléphone"
FOR i = 11 TO 19: ON_CLICK i,Instrum: NEXT i
inst(11)=1: inst(12)=13: inst(13)=22: inst(14)=24: inst(15)=40: inst(16)=73
inst(17)=109: inst(18)=123: inst(19)=124
READ ins$(24): READ ins$(40): READ ins$(73)
READ ins$(109): READ ins$(123): READ ins$(124)
v = 120: ' volume (=1 à 127)
t1 = 6: ' durée note = 500 ms
t2 = 4: ' 1000 ms
t1 = 9: t2 = 7: ' 375 et 750 ms
mido = 0: ' midi off)
END
' ==================================
Qt:
TERMINATE
' ==================================
Instrum:
  IF mido = 1 THEN MIDI_OFF: mido = 0: HIDE 8
  i = NUMBER_CLICK: ip = inst(i)
RETURN
' ==================================
piano:
  ' Jouer des notes au clavier:
  '      touches AZERTYUI = do,ré,mi,fa,sol,la,si,do
  ' Taper la touche 'Esc' pour quitter
  MIDI_ON: mido = 1: SHOW 8
  MIDI_INSTRUMENT ip
  MIDI_VOLUME 120: ' 1 à 127
piano1: 
  i = 0: WHILE i < 2: PAUSE 50: i = SCANCODE: SCANCODE = 0: END_WHILE
  IF i = 27 THEN MIDI_OFF: mido = 0: HIDE 8: RETURN
  a$ = UPPER$(CHR$(i))
  b$ = "AZERTYUI": i = INSTR(b$,a$)
  SELECT i
      CASE 1: v = do(2)
      CASE 2: v = re(2)
      CASE 3: v = mi(2)
      CASE 4: v = fa(2)
      CASE 5: v = sol(2)
      CASE 6: v = la(2)
      CASE 7: v = si(2)
      CASE 8: v = do(3)
  END_SELECT 
  IF i>0 THEN MIDI_PLAY v,t1
  GOTO piano1
RETURN
' ===================================
ecouter:
  ' jouer au clair de la lune
  MIDI_ON: mido = 1: SHOW 8
  MIDI_INSTRUMENT ip 
  MIDI_VOLUME 120
FOR i = 1 TO 2
  MIDI_PLAY do(2),t1
  MIDI_PLAY do(2),t1
  MIDI_PLAY do(2),t1
  MIDI_PLAY re(2),t1
  MIDI_PLAY mi(2),t2
  MIDI_PLAY re(2),t2
  MIDI_PLAY do(2),t1
  MIDI_PLAY mi(2),t1
  MIDI_PLAY re(2),t1
  MIDI_PLAY re(2),t1
  MIDI_PLAY do(2),5: ' durée 1500 ms
NEXT i

MIDI_PLAY re(2),t1
MIDI_PLAY re(2),t1
MIDI_PLAY re(2),t1
MIDI_PLAY re(2),t1
MIDI_PLAY la(1),t2
MIDI_PLAY la(1),t2
MIDI_PLAY re(2),t1
MIDI_PLAY do(2),t1
MIDI_PLAY si(1),t1
MIDI_PLAY la(1),t1
MIDI_PLAY sol(1),5

MIDI_PLAY do(2),t1
MIDI_PLAY do(2),t1
MIDI_PLAY do(2),t1
MIDI_PLAY re(2),t1
MIDI_PLAY mi(2),t2
MIDI_PLAY re(2),t2
MIDI_PLAY do(2),t1
MIDI_PLAY mi(2),t1
MIDI_PLAY re(2),t1
MIDI_PLAY re(2),t1
MIDI_PLAY do(2),5
MIDI_OFF: mido = 0: HIDE 8
RETURN
' ====================================
Bonne nuit à tous !

Edit du 1/5


Dernière édition par JL35 le Sam 1 Mai 2021 - 17:18, édité 1 fois
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Piano Empty
MessageSujet: re   Piano EmptySam 1 Mai 2021 - 15:47

Le truc, c'est qu'on sort plus, même en cliquant sur la croix...
affraid
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Piano Empty
MessageSujet: Re: Piano   Piano EmptySam 1 Mai 2021 - 16:06

Bonjour Yannick
On sort par <ECHAP>
JL35 ne l'a pas dit, mais c'est dans le code.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Piano Empty
MessageSujet: Re: Piano   Piano EmptySam 1 Mai 2021 - 17:17

Merci papydall de l'avoir précisé pour moi, j'aurais dû..
Quand on a fini de jouer il faut bien taper la touche Esc, sinon on reste en mode saisie de note.

Ceci dit j'ai fait une petite interface simple.
Et notamment j'ai visualisé si MIDI_ON est actif, pour savoir si on est en cours de frappe ou non,
parce que c'est bloquant. A ma connaissance on ne peut pas le tester avec Panoramic
(du genre IF MIDI_ON = 1).

Voilà, la nouvelle version remplace l'ancienne, là-haut.                                
.
Piano Img11

PS et je m'aperçois effectivement avec une recherche sur le mot Piano que le sujet a bien
été abordé, et de manière plus approfondie (j'ai un peu honte de ne pas avoir cherché avant).
Et notamment ici, très intéressant, un piano virtuel d'une Panoramicienne (flowerkinzy):
https://panoramic.1fr1.net/t881-piano-re-remixe?highlight=Piano
Revenir en haut Aller en bas
Contenu sponsorisé





Piano Empty
MessageSujet: Re: Piano   Piano Empty

Revenir en haut Aller en bas
 
Piano
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Maquette d'une rédaction de partition de piano
» Piano à 88 touches
» Piano re-remixé
» clavier de piano et notes
» Piano avec tous les instruments

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: