Auteur | Message |
---|---|
Beau Parleur
![]() |
Bonjour, bonjour à tous, bonjour Hibou.
Comme je dis dans la catégorie Création perso, cette année (2018) je travaille sur mon projet de compositeur virtuel pour instruments MIDI. J'en suis à mon 5ieme essai qui réussi cette fin d'année à me faire recommencer en apportant les améliorations qui s'imposent. Déjà, ces derniers jours j'ai ré-écrit les base pour partager une unique instance de drivers de périphériques. Ce qui permet de jouer plusieur fichier à la fois. J'ai également implementté un mode play list en boucle eventuellement. Cette fois je viens ici pour spécifier une nouvelle hiérachie d'objet spécifique à un timbre, ou à un plugin. En fait un timbre peut avoir plusieurs plugins. Voici ma specification pour le moment ; Juste deux class de plugin. Source ada :with Ada.Finalization; use Ada.Finalization; La classe Work_Record enveloppe un tableau d'access à la classe Abstract_Plugin_Class pour maintenir un tableau héthérogène de plugin. J'ai en réalité deux classe à l'échele Class_Wide à spécifier, l'une étant celle qui implémente la class concrète des divers plugins ; L'autre étant cette qui va présenter l'interface de ces plugins à l'utilisateur. J'ai en fait besoin d'un coup de main pour commencer ou pour discuter de l'architecture des objets relatif à la musique et au instrument de musique. Bienvenue. Merci. |
Beau Parleur
![]() |
Si je calcule un peut ce que j'ai fait, il y a un paquet d'endroit ou je vais caster les objet.
J'avais une ou deux question à propos cu cast, est-ce possible de l'évité, si non est-ce normale d'avoir à caster un objet ? |
Beau Parleur
![]() |
Bonjour,
J'ai fait un peu différement, mais j'ai un problème d'aiguillage automatique. Dans le main, j'appelle la procédure print pour chacun des plugins contenu dans un work_record mais le compilateur me dit qu'il attends un type implémentant la procedure print, mais que je lui passe un type Abstrait de la classe supérieur. le code : le type abstait de mes plugins : Source ada :package Libsens.Virtual.Plugins is un plugin parmis d'autre : Source ada :with Libsens.Virtual.Plugins; use Libsens.Virtual.Plugins; le cord de la classe Work_Class : ou je fait un test d'initialization. Source ada :with Libsens.Virtual.Cc_Change; use Libsens.Virtual.Cc_Change; Le main : Source ada :with GNAT.Command_Line; use GNAT.Command_Line; Le message de gnatmake : Citation : main.adb:105:25: no candidate interpretations match the actuals: Je suis un peu en retard por l'objet et j'aurais besoin d'un coup de main pour comprendre mon erreur. S'il vous plait !! Merci. |
Beau Parleur
![]() |
Ohp !!!!!
J'ai trouvé : j'ai implémenté une procedure print dans WorkClass comme suit : Source ada :procedure Print (Plugin : in Abstract_Plugin_Access) is Dans le main, j'ai enlevée les With de mes bibliothèques de plugins et j'appel print : Print(Plugin): Et ça fonctionne. Merci, a moins que vous ayez mieux à proposer. Bonne fin d'année. |
Beau Parleur
![]() |
Bonjour,
Bonne année. J'ai une petit problème, que j'espère temporaire. Je déclare une classe abstraite de laquelle je dérive une sous-classe mais je ne parviens pas à spécifier la procedure initialize qui va avec la sous-classe. Voici mon code : la specification : Source ada :type Abstract_Plugin_Specifications(Class : Plugin_Enum) is abstract tagged l'implémentation : Source ada :-------------------------------------------------------------------------------- Le message d'erreur est le suivant : (que je pige pas tellement je suis null en POO. (bref), Citation : libsens-applications-windows.ads:50:04: type must be declared abstract or "Initialize" overridden Voilà le problème, j'ai cherché, je trouve pas. Merci pour votre aide. |
Beau Parleur
![]() |
Bonjour,
Je suis sortie d'affaire à présent pour ce problème pour ce projet. J'en suis à la version 6.5.11a avec le plugin step sequenceur pouvant être sauvegardé et charger sur la ligne de commande. j'ai aussi implementé des bout de code pour les générateur génétique. J'ai encore 38 fichiers à compléter, et ce sont pas les plus simple. A oui, j'ai fait les sequenceur pour les Ctrl change et prgm change. Dans les Pgrm change, les paramètres MSB select et LSB select ne sont pas utilisé. Mais c'est pas sauvegardable. |
Beau Parleur
![]() |
Bonjour,
J'allais dire, j'ai terminé mais non, il me reste en réalité encore un peux de travail pour l'ouverture des fichier à partire d'une fenêtre principale, c'est l'operation "open", à faire et peut-être inverser certaine contruction de patterns. Si non la "première" étape est "quasi" achevé. J'ai un paquet de warning mais ça fonctionne quand même. je me suis planté à un endroit. dans le Arp_sequenceur j'ai déclaré step comme un dérivé de note alors que ce son deux type distinct normalement. Je me suis aussi planté dans la hiérachisation de mes objets dérivé de plugin dont 2 classes contiennent 3 sous classe, alors que j'ai simplement fait 6 sous classe de plugin. Une bonne raison pour recommencer. bref. Aujourd'hui j'ai publié la version 6.7.3b. qui maintiens une version de fichiers de réseau de neurones artificiels par fichiers ultrason et par plugin. Si vous utiliser 3 plugins NL_Mod vous trouverez 3 * 3 fichier de réseau dans data/networks/ Si vous souhaitez des présisions, je reviens. Merci pour votre aide et votre contribution. |