MorphOS au quotidien

15 sujets de 781 à 795 (sur un total de 883)

  • ACE

      #356335

      Tcheko c’est impressionnant ce que tu es encore entrain de nous faire.
      Helas je n’ai pas de matos midi pour tester mais ce soft pourrait bien me pousser à me prendre un peu de matos.
      Nous n’avons rien de vraiment fonctionnel en Midi jusqu’à maintenant.
      C’est vraiment bien de voir des développements natifs exploitants vraiment les spécificités de Morphos. Merci

      Le PSG qui gagne la ligue des champions c'est possible ... Que dans Swos.
      Amiga Morphos Rules.

      BatteMan

        #356337

        C’est clair que c’est cool !
        Hâte de voir ça fonctionnel chez quelqu’un (j’ai pas le matos et suis pas musicien… ça limite l’utilisation que je pourrais en avoir ^^).

        En tout cas, j’aime comme ça bouge sous MorphOS en ce moment !


        /me se demande si on verra un peu de MorphOS x86 cette année ^^

        Only Amiga makes it possible !

        Mod

        Tcheko

          #356344

          Youpla,

          Quelques nouvelles de mon dernier ‘pet project’. Pour démarrer, une image histoire de donner un aperçu de la bricole.
          PimPamPoom 1.8

          Les fonctionnalités implémentées à ce jour :
          – Sélection des programmes GM, la place est faite pour les bank select mais l’interface ne permet pas (encore) de choisir les banques MSB/LSB.
          – Sélection du canal MIDI
          – Support du volume général par instrument
          – Support multi instrument MIDI (on peut utiliser plusieurs appareils MIDI)
          – Couleur indépendante par instrument
          – Undo /Redo illimité (sauf par la RAM) (ça c’est sortit du four en fin d’après midi)
          – Multi projets
          – Sélection par lasso des notes
          – Déplacement des notes par drag drop
          – Support du ‘Snap to Grid’ (‘quantisation’ des notes) sur le drag drop
          – Vélocité modifiable note par note (pas d’édition de groupe pour l’instant)
          – Mode ‘compose’ pour dessiner les notes à la souris
          – Mode ‘edit’ pour modifier les notes
          – Signature de temps supportée : 4/4 (sic ><) - Sauvegarde et chargement (format 'propriétaire' mais ouvert en notation JSON) - Invite de sauvegarde en cas de travaux non enregistrés - Déplacement dans le temps par mesure (1 mesure en avant, 1 mesure en arrière, fin de partition, début de partition) - Support des 12 octaves MIDI - Lecture et modification de la partition en temps réel - Barre de lecture affichée en temps réelle (rafraîchissement à 20Hz, ça sera configurable pour ceux qui ont des grosses machines) - Lecture par un processus enfant indépendant de l'interface graphique - Support de raccourcis claviers pour les tâches d'édition - Suppression en bloc / note individuelle - Verrouillage d'un instrument contre l'édition - Fonction 'Silence' pour rendre silencieux un instrument lors de la lecture - Fonction Afficher/Cacher les notes d'un instrument sur la partition - Mode plein écran / fenêtré - Résolution temporelle des événements : 1ms (1000Hz) - Usage CPU très modéré lors de la lecture, mode plein écran, moins de 5% du CPU sur un Powerbook G4 1.67 Prochain blocs fonctionnels à implémenter : - Opérations de couper, copier, coller (même partition, autre partition) - Changement du tempo (actuellement, 120BPM...) - Support des signatures de temps autre que 4/4 - Zoom/Pan sur la partition - Enregistrement de notes depuis un clavier maître pour la composition 'live' - Interface pour la sélection des banques de son - Amélioration des outils d'édition de la vélocité - Support des effets sur les notes - Scripting LUA - Menus contextuels - Une icône qui roxx (j'ai un agent secret qui bosse sur la question...) - et une liste affreusement longue (plus je regarde de vidéo sur les autres séquenceurs, plus je suis découragé par la somme de boulot qui a du être investi haha) Temps de développement pour obtenir ce résultat : moins de 10 jours. 100% pure C. Le binaire fait dans les 200Ko, j'ai pas encore retiré le gras ^^. Pour l'avenir, j'ai pas l'intention de refaire un cubase ou un abelton. Cela restera probablement un 'jouet' comparativement aux solutions existantes 'pro' d'où le nom ridicule : PimPamPoom. Si vous changez media par private et png par lha, vous devriez trouver une bricole. 😉 ++ PS: utilisation à vos risques et périls. 🙂 Une autre image, un bout de composant MUI non public encore : KeyFrame MCC
          Ce composant permet l’édition de courbes interpolées (hold, linéaire, cosine, catmull rom), idéal pour l’édition des effets sur le MIDI. Cela permet de faire varier une valeur dans le temps. l’image présente 5 courbes : R, G, B, X, Y. Les courbes R, G, et B produisent la couleur de fond dans le rectangle dans le coin bas gauche tandis que le X et le Y déplacent un carré gris (le moment de la capture n’est pas idéal pour le contraste, tant pis…). Ca fait un bout de temps que j’ai bricolé ce composant… en pensant au séquenceur par la suite… (et avant ça la camd.library puis le MIDI Piano dispo sur l’ISO de MorphOS)… Bref petit à petit, je vais y arriver. Quand je pense que je voulais écrire une DrumBox il y a 30 ans… Ben j’y suis maintenant, voire un peu plus loin en fait ^^

          Anonyme

            #356351

            Excellent !!

            Dommage que je n’ai pas le matos ni vraiment les compétences… Mais dès que j’aurai 5 mn je lancerai et testouillerai cet épatant PimPamPoom 🙂


            /me attend surtout des productions de vrais zicos, comme ACE ! 😉

            Anonyme

              #356673

              @Tcheko :

              Je viens de tester un peu PimPamPoom, à l’aveugle n’ayant pas le matos 😉

              Même en newbie, je trouve l’interface pratique, intuitive et déjà bien fournie, en tout cas l’essentiel a l’air d’être là pour commencer à produire 🙂

              Juste 2-3 remarques / questions :

              – pour l’instant, la sauvegarde/lecture est dans un format JSON, prévois-tu à l’avenir également une sauvegarde/lecture au format MIDI (.mid) ? Histoire de pouvoir récupérer des fichiers MIDI existants 🙂 Remarque, je ne sais même pas s’il y a différents formats MIDI… ^^

              – j’ai tenté une sauvegarde de morceaux, mais leur rechargement ne marche pas chez moi : l’application reste en attente avec le sablier… (donc morte)

              – le must (certainement hors-sujet voire irréaliste) serait aussi d’avoir la possibilité d’associer chaque instrument à un fichier .wav ou .mp3 (ou autre), pour pouvoir au final jouer le morceau directement dans PimPamPoom 😛

              En tout cas, ça donne déjà envie de voir et d’écouter des productions réalisées avec PimPamPoom 😎


              /me aime bien les hidden parts ^^

              Anonyme

                #356674

                Hop,

                Un nouveau petit jeu porté par notre ami Ace, « Ninja Siege » :

                https://www.morphos-storage.net/?find=NinjaSiege

                Vraiment original, je cite :

                Pour une raison encore inconnue du grand public, de méchants pirates vont essayer de tuer votre grand maître Ninjitsu qui détient le secret ultime de l’évolution humaine. Va savoir quoi ?

                Vous devrez le défendre en disposant différents ninjas sur la route des méchants pirates, chaque ninja ayant ses fonctions et son coût.

                Entre chaque vague de pirates vous pourrez souffler un peu, si le premier niveau peut paraître simple la suite vous fera suer !

                Chaque pirate tué vous rapporte des points et quand vous avez assez de points vous pouvez placer d’autres ninjas sur la carte, même pendant que les ennemis attaquent…

                Je l’ai testé un peu, m’a l’air bien sympa et bien prenant 😎


                /me encourage Ace qui s’est mis récemment au portage sur MorphOS 🙂

                Mod

                Tcheko

                  #356696

                  @Tcheko :

                  Je viens de tester un peu PimPamPoom, à l’aveugle n’ayant pas le matos 😉

                  Même en newbie, je trouve l’interface pratique, intuitive et déjà bien fournie, en tout cas l’essentiel a l’air d’être là pour commencer à produire 🙂

                  Juste 2-3 remarques / questions :

                  – pour l’instant, la sauvegarde/lecture est dans un format JSON, prévois-tu à l’avenir également une sauvegarde/lecture au format MIDI (.mid) ? Histoire de pouvoir récupérer des fichiers MIDI existants 🙂 Remarque, je ne sais même pas s’il y a différents formats MIDI… ^^

                  – j’ai tenté une sauvegarde de morceaux, mais leur rechargement ne marche pas chez moi : l’application reste en attente avec le sablier… (donc morte)

                  – le must (certainement hors-sujet voire irréaliste) serait aussi d’avoir la possibilité d’associer chaque instrument à un fichier .wav ou .mp3 (ou autre), pour pouvoir au final jouer le morceau directement dans PimPamPoom 😛

                  En tout cas, ça donne déjà envie de voir et d’écouter des productions réalisées avec PimPamPoom 😎


                  /me aime bien les hidden parts ^^

                  Hey J.

                  Merci pour les encouragements et l’essai ‘à vide’. ^^

                  Q1 – Concernant la lecture et la sauvegarde au format SMF (Format de fichier MIDI), c’est bien évidemment un indispensable. C’est dans la liste des choses à implémenter. J’ai déjà le code de lecture MIDI étant également l’auteur de PlayMIDI dans l’ISO de MorphOS. Mais pour cela, il faut que j’implémente encore quelques bricoles comme le changement de vitesse de lecture (BPM) par exemple. Ce n’est pas indispensable pour pouvoir le faire mais c’est quand même bien utile pour jouer à la bonne vitesse ^^.

                  Q2 – La 1.8 a un vilain bug dans le ‘parsing’ du JSON qui déclenche une boucle infinie (le : dans le nom de l’instrument qui déclenche un ‘mauvais’ chemin dans l’automate de lecture). Si tu remplaces le 8 par un 11, tu trouveras la dernière version expurgée de ce bug (mais également toutes les nouveautés…).

                  Q3 – C’est que l’on appelle un « Soft Synth », ou en bon français, un synthétiseur logiciel. Cela existe déjà et je crois qu’il y a eu quelques portages de ce genre de logiciel (68k seulement). L’un des plus connus https://www.fluidsynth.org/ L’objectif de PimPamPoom est d’être un séquenceur MIDI. Il n’a pas vocation à faire de la synthèse (dans l’immédiat). N’étant pas du tout dans le trip portage de truc sur MorphOS, si une pointure sur le sujet veut s’y coller, je peux filer un coup de main sur la jointure avec CAMD… Beworld? Sinon, un candidat à tester pour faire du bruit : http://aminet.net/package/mus/midi/SamX26 mais bon 68k également et n’utilise pas les SoundFont, sorte de référence sur le sujet pour les tables de son.

                  Merci pour ton retour !

                  ++

                  BeWorld

                    #356702

                    Avec BSzili, on a reussi à compiler ca : https://github.com/divideconcept/FluidLite
                    Une version « Lite » de fluidsynth qui servira peut être dans EasyRPG à l’avenir.

                    Après la version fluidsynth, il faut pouvoir gérer la sortie audio AHI et CAMD comme le souligne Tcheko, m’ai n’ayant pas de matos midi pas simple (même soucis avec ScummVM)
                    Après faut se plonger dans le machin voir exactement ce qu’il y a à faire.

                    Mes confs : IMac G5 2.1, PowerBook G4 17 1.5 et PowerMac G5 2.7
                    Mes ports sur MOS

                    Mod

                    Tcheko

                      #356710

                      @BeWorld, point besoin de matériel midi pour tenter de faire un truc avec fluidsynth (ou litesynth). Techniquement, cela se limite à câbler la partie qui injecte les événements MIDI dans *synth par la CAMD.

                      Grosso modo depuis la camd :
                      Initialisation du cluster *Synth en lecture
                      1. CreateMidi()
                      Le tampon de réception obligatoire ici car nous souhaitons recevoir des messages MIDI. Chaque fois qu’un message est transmis sur le cluster (cf point suivant), la tâche qui a appelé CreateMidi est signalé avec le signal MIDI_RecvSignal (on peut déclarer une autre tâche avec un tag si nécessaire).

                          struct TagItem miditags[5];
                          struct MidiNode *midinode;
                          miditags[0].ti_Tag      = MIDI_RecvSignal;
                          miditags[0].ti_Data     = SIGBREAKB_CTRL_D;
                          miditags[1].ti_Tag      = MIDI_MsgQueue;
                          miditags[1].ti_Data     = 1024;
                          miditags[2].ti_Tag      = MIDI_Name;
                          miditags[2].ti_Data     = (ULONG)"*Synth";
                          miditags[3].ti_Tag      = MIDI_ClientType;
                          miditags[3].ti_Data     = CCType_EventGenerator;
                          miditags[4].ti_Tag      = TAG_END;
                      
                          midinode = CreateMidiA(miditags);

                      2. AddMidiLink(), type MLType_Receiver
                      Connexion du midinode à un cluster. Les autres applications peuvent alors se connecter sur le cluster ‘*Synth’ en mode émission et envoyer des messages MIDI à l’instrument.

                      	struct MidiLink *midilink;
                              miditags[0].ti_Tag = MLINK_Location;
                              miditags[0].ti_Data = (ULONG)"*Synth"; /* clustername où se connecter */
                              miditags[1].ti_Tag = MLINK_EventMask;
                              miditags[1].ti_Data = CMF_Channel;	/* à étendre si l'on veut les CC */
                              miditags[2].ti_Tag = TAG_END;
                              midilink = AddMidiLinkA(midinode, MLTYPE_Receiver, miditags);

                      3. Boucle d’événement
                      Ici, une simple boucle qui attend le signal MIDI_RecvSignal. Si GetMidi retourne vrai, envoie le message au synthétiseur logiciel.

                      ULONG sigs = SIGBREAKF_CTRL_D ;
                      
                         while(TRUE)
                         {
                                sigs = Wait(sigs);
                               if (sigs & SIGBGREAKF_CTRL_D)
                               {
                                     MidiMsg msg;
                                    if (GetMidi(midinode, &msg)) SendToSynth(foo, bar, baz, &msg);
                               }
                      }

                      Rien de plus n’est nécessaire pour déclarer un instrument MIDI qui reçoit des événements. Les concepteurs initiaux de cette bibliothèque ont vraiment fait une API facile et efficace pour traiter les messages MIDI.

                      Bref. La partie CAMD, c’est définitivement pas le plus poilu à faire.

                      BeWorld

                        #356714

                        🙂 ok

                        Bon j’ai regardé vite fait, j’avais oublié le détail qu’il y a une dépendance avec GLIB sur Fluidsync
                        Donc FluidLite reste le plus simple car compilable facilement et pourrait donc faire l’affaire.

                        Mes confs : IMac G5 2.1, PowerBook G4 17 1.5 et PowerMac G5 2.7
                        Mes ports sur MOS

                        Mod

                        Tcheko

                          #356715

                          @BeWorld, si tu arrives à pondre un portage, c’est cool. Je peux tester également. ++

                          Anonyme

                            #356720

                            Hop Tcheko,

                            Merci pour toutes ces précisions 🙂

                            Super pour le support à venir des fichiers MIDI, je m’en doutais un peu 😉

                            Ok pour le bug JSON de la v1.8, je vais tester la v1.11 asap (en me couchant hier soir, je m’étais justement dit : « si ça se trouve, il y a peut-être déjà d’autres versions » ^^)

                            Pour le côté « Soft Synth », c’était juste une idée. C’est sûr qu’à ce stade, c’est tentant d’avoir ce genre fonctionnalités, mais clairement pour la cohérence de ton logiciel / projet ce n’est effectivement pas le but, « dans l’immédiat » comme tu dis 😉

                            En tout cas, j’aime suivre l’évolution de ce genre de projet, même si je ne suis pas zicos 🙂

                            Hop BeWorld,

                            Effectivement, ce serait cool que tu arrives à porter ça ! Je m’empresserai de le tester aussi 😎

                            BeWorld

                              #356721

                              Bah… je viens de vérifier FluidLite….
                              Je l’ai recompilé et pour être sur que cela fonctionne, j’ai testé de l’implémenter dans ScummVM….. et j’ai reussi (mouahahaha) à le faire fonctionner à la place de FluidSync….
                              Après avoir télécharger un paquet de fichier .sf2, le son n’a rien à voir du coup et on a le choix

                              bon bah…. la prochaine version de ScummVM aura FluidLite inclus et sans oublier CAMD :-)…
                              (faut que je vois avec la scummvm team s’ils veulent intégrer FluidLite en option)


                              @Tcheko
                              bon bah je pète une archive avec include, lib et sources du coup, me reste à faire un beau makefile car la avec cmake c’est naze.

                              Mes confs : IMac G5 2.1, PowerBook G4 17 1.5 et PowerMac G5 2.7
                              Mes ports sur MOS

                              Anonyme

                                #356722

                                Trop fort !! 😎

                              15 sujets de 781 à 795 (sur un total de 883)

                              • Vous devez être connecté pour répondre à ce sujet.

                              Forums AmigaOS, MorphOS et AROS Général MorphOS au quotidien

                              Amiga Impact