[Algo][Résolu]Générer tous les accords.

Générer tous les accords. [Algo][Résolu] - Algo - Programmation

Marsh Posté le 27-08-2009 à 07:45:21    

Bonjour, S'il vous plaît, je souhaite générer tous les accords musicaux de 2 à 5 notes.
Sur la gamme constituée de 88 notes indexées de 21 à 108, je parcoure les notes de 60 à 72 pour construire les accords de 2 à 5 notes selon les intervalles suivant : 1, 2, 3, 4, 5, 6, 7, 8, 9, 11.
Merci pour votre aide, bien à vous.


Message édité par The matrix le 28-08-2009 à 14:20:19

---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter
Reply

Marsh Posté le 27-08-2009 à 07:45:21   

Reply

Marsh Posté le 27-08-2009 à 08:19:14    

Je pense qu'il faut que je commence par générer toute les combinaisons de 1 à 4 intervalles.
 


---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter
Reply

Marsh Posté le 27-08-2009 à 20:50:27    

Up !


---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter
Reply

Marsh Posté le 27-08-2009 à 22:58:32    

Je suis persuadé qu'il y avais mieux à faire mais bon, c'est pas mon jour.
 

Code :
  1. type T_Interval is array (1..10) of Positive;
  2.   Interval : T_Interval := (1,2,3,4,5,6,7,8,9,11);
  3.  
  4.  
  5. begin
  6.   for I in 1..9 loop
  7.      for J in I+1..10 loop
  8.         for K in J+1..10 loop
  9.            for L in K+1..10 loop
  10.               Put(Integer'Image(Interval(I)));
  11.               Put(Integer'Image(Interval(j)));
  12.               Put(Integer'Image(Interval(K)));
  13.               Put(Integer'Image(Interval(L)));
  14.               New_Line;
  15.            end loop;
  16.         end loop;
  17.      end loop;
  18.   end loop;
  19. end Main;


 
Arff, c'est encore pas ce dont j'ai besoin pff.


Message édité par The matrix le 27-08-2009 à 23:02:54

---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter
Reply

Marsh Posté le 28-08-2009 à 14:19:39    

Bonjour, Voici le code que j'ai utilisé pour générer mes accords.
 

Code :
  1. -- Programme de génération des accords.
  2.    with Text_Io;
  3.    use Text_Io;
  4.    procedure Main is
  5.      subtype T_Note is Natural range 21..108;
  6.      type T_Interval is array (1..12) of Natural;
  7.      Interval : T_Interval := (0,1,2,3,4,5,6,7,8,9,10,11);
  8.    begin
  9.  
  10.       for A in 21..97 loop
  11.          for I in 1..Interval'Length-1 loop
  12.             for J in I+1..Interval'length loop
  13.                Put(Integer'Image(Interval(I)+A));
  14.                Put(Integer'Image(Interval(J)+A));
  15.                New_Line;
  16.             end loop;
  17.          end loop;
  18.          for I in 1..Interval'Length-2 loop
  19.             for J in I+1..Interval'Length-1 loop
  20.                for K in J+1..Interval'Length loop
  21.                   Put(Integer'Image(Interval(I)+A));
  22.                   Put(Integer'Image(Interval(J)+A));
  23.                   Put(Integer'Image(Interval(K)+A));
  24.                   New_Line;
  25.                end loop;
  26.             end loop;
  27.          end loop;
  28.          for I in 1..Interval'Length-3 loop
  29.             for J in I+1..Interval'Length-2 loop
  30.                for K in J+1..Interval'Length-1 loop
  31.                   for L in K+1..Interval'length loop
  32.                      Put(Integer'Image(Interval(I)+A));
  33.                      Put(Integer'Image(Interval(J)+A));
  34.                      Put(Integer'Image(Interval(K)+A));
  35.                      Put(Integer'Image(Interval(L)+A));
  36.                      New_Line;
  37.                   end loop;
  38.                end loop;
  39.             end loop;
  40.          end loop;
  41.          for H in 1..Interval'Length-4 loop
  42.             for i in H+1..Interval'Length-3 loop
  43.                for J in I+1..Interval'Length-2 loop
  44.                   for K in J+1..Interval'Length-1 loop
  45.                      for L in K+1..Interval'length loop
  46.                         Put(Integer'Image(Interval(H)+A));
  47.                         Put(Integer'Image(Interval(I)+A));
  48.                         Put(Integer'Image(Interval(J)+A));
  49.                         Put(Integer'Image(Interval(K)+A));
  50.                         Put(Integer'Image(Interval(L)+A));
  51.                         New_Line;
  52.                      end loop;
  53.                   end loop;
  54.                end loop;
  55.             end loop;
  56.          end loop;
  57.       end loop;
  58.    end Main;


Message édité par The matrix le 29-08-2009 à 06:23:29

---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed