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.
Piano Emptypar Pedro Aujourd'hui à 10:37

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

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

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

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

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

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

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

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

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

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

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

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

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

» fichier.exe
Piano 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 : -28%
-28% Machine à café avec broyeur ...
Voir le deal
229.99 €

 

 Piano

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7112
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 : 8635
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 : 7017
Age : 74
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 : 7112
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: