MorphOS au quotidien

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

  • Aladin

    • Messages : 1112
    #356326

    ACE

    • Messages : 2368
    #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

    Et hop une petite ligue des champions pour le fc sion à Swos 🙂 embalé c'est pesé elle est pas belle la vie !

    Admin

    BatteMan

    • Messages : 6012
    #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 !

    Pensez à vous inscrire sur www.annuaire-amiga.org, l'Annuaire des Amigaïstes toutes saveurs confondues ! ^^

    Mod

    Tcheko

    • Messages : 1015
    #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 ^^

    Jedi

    • Messages : 1269
    #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 ! 😉

    Jedi

    • Messages : 1269
    #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 ^^

    Jedi

    • Messages : 1269
    #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

    • Messages : 1015
    #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

    • Messages : 133
    #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

    • Messages : 1015
    #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

    • Messages : 133
    #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

    • Messages : 1015
    #356715

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

    Jedi

    • Messages : 1269
    #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

    • Messages : 133
    #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

    Jedi

    • Messages : 1269
    #356722

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

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

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

Amiga Impact