Derniers sujets
» HRC (Hires RLE Compressed)
musique en c - Page 2 EmptyMar 15 Oct 2019 - 20:16 par Hialmar

» CEO-MAG 354
musique en c - Page 2 EmptyDim 13 Oct 2019 - 10:14 par didierv

» Version compatible 64 bits de WAVtoTAP ?
musique en c - Page 2 EmptySam 12 Oct 2019 - 16:48 par markerror

» Lot de livres et revues Oric sur LBC
musique en c - Page 2 EmptyVen 11 Oct 2019 - 21:37 par didierv

» rs
musique en c - Page 2 EmptyMer 9 Oct 2019 - 0:29 par kenneth

» Écriture stylée sur MCP 40
musique en c - Page 2 EmptyDim 6 Oct 2019 - 17:38 par Dbug

» CEO-MAG 353
musique en c - Page 2 EmptyDim 6 Oct 2019 - 15:27 par Symoon

» Vieumikro 2019
musique en c - Page 2 EmptyLun 30 Sep 2019 - 16:34 par Hialmar

» [sujet Public] - le Ceo-Mag
musique en c - Page 2 EmptyDim 29 Sep 2019 - 22:31 par didierv

» Vidéos en anglais
musique en c - Page 2 EmptyDim 29 Sep 2019 - 15:22 par Dbug

» Nouvelles commandes SEDORIC
musique en c - Page 2 EmptySam 28 Sep 2019 - 20:57 par Sheld67

» A venir: nouvelle version TAP2WAV
musique en c - Page 2 EmptyMer 25 Sep 2019 - 21:03 par Symoon

» Twilighte card, 6502 et joysticks
musique en c - Page 2 EmptyMar 24 Sep 2019 - 12:29 par Jede

» Boitier Oric HD
musique en c - Page 2 EmptyLun 23 Sep 2019 - 12:58 par Jede

» OSDK & gnu/Linux...
musique en c - Page 2 EmptyVen 20 Sep 2019 - 4:39 par Symoon

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 193 membres enregistrés
L'utilisateur enregistré le plus récent est Oric Man

Nos membres ont posté un total de 7938 messages dans 684 sujets
Portail ORIC




musique en c

Poster un nouveau sujet   Répondre au sujet

Page 2 sur 2 Précédent  1, 2

Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par goyo le Lun 4 Mar 2019 - 18:05

Sur l'idée des effets de son de LADYWASKY et de son :
Code:
play_soundfx()
,
j'ai programmé un petit outil en C de génération aléatoire de sons, histoire de faire au hasard une trouvaille sympa  =)

musique en c - Page 2 Gensou10



y a beaucoup de bruits d'hélicoptères dans le lot .... Shocked
Fichiers joints
musique en c - Page 2 Attachment
gensound.zip (6 Ko) Téléchargé 23 fois


Dernière édition par goyo le Mer 20 Mar 2019 - 14:56, édité 3 fois
goyo
goyo

Messages : 178
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par goyo le Mar 5 Mar 2019 - 14:48

j'ai mis en téléchargement une nouvelle version ;-)
goyo
goyo

Messages : 178
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par retroric le Mer 6 Mar 2019 - 1:07

Merci Goyo, c'est sympa ton petit programme !

C'est clair que le AY-3-8912, on dirait qu'il a été conçu pour créer des jeux d'hélicoptères au bord de la mer (avec le bruit des vagues, un "classique" aussi...) !! Razz Razz

_________________
retrOric (Laurent D)https://github.com/retroric
retroric
retroric

Messages : 535
Date d'inscription : 09/08/2014
Age : 48
Localisation : Paris

https://github.com/retroric

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par didierv le Mer 6 Mar 2019 - 6:59

Je connais le bruit des vagues, sans allumer mon oric Smile

_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
didierv
didierv

Messages : 724
Date d'inscription : 19/01/2014
Age : 56
Localisation : Nord de la France

http://www.dmacoco.fr

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par goyo le Mer 6 Mar 2019 - 10:34

si vous avez des remarques pour améliorer l'outil n’hésitez pas à me les suggérer.
Je pensais à une fonction pour générer aléatoirement un son intelligemment : en respectant les formats des octets avec les bits..
goyo
goyo

Messages : 178
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par goyo le Jeu 14 Mar 2019 - 10:43

Quelqu'un saurait-il si on peut jouer une musique tout en lançant des sons comme ping ou shoot par dessus ...

Suffit-il que les sons soient sur des canaux différents de la musique ?

Si je comprends bien l'Oric à trois canaux de son (3 voix ?) ?
goyo
goyo

Messages : 178
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par retroric le Ven 15 Mar 2019 - 1:46

C'est plus ou moins possible, en fonction précisément de combien de canaux tes sons et ta musique utilisent...

Si ton effet sonore et ta musique utilisent des canaux séparés, c'est assez simple, tu positionnes les valeurs des registres correspondant au canal ou aux canaux utilisés par ton effet sonore, tu "valides" pour déclencher la lecture par le PSG, puis tu positionnes les valeurs des registres correspondant au canal ou aux canaux utilisés par la 1ere note de ta musique, tu valides, et les sons des différents canaux se "superposent"... Après, suivant si ton effet sonore "dure" ou doit être modifié, tu modifies les registres nécessaires, puis tu alternes pour les registres des canaux de la musique, pour jouer les différentes notes...
Ceci étant, si tu ne veux pas t'embêter à positionner les registres, tu peux aussi appeler les commandes BASIC SOUND, MUSIC et PLAY en ROM, c'est nettement plus simple...

Dans le cas où tes effets sonores et ta musique utilisent un ou plusieurs canaux identiques en revanche, pas de solution miracle... Il n'y a guère d'autre solution que d'alterner entre restitution de l'effet sonore et jeu de la musique, car "mixer" les 2 serait compliqué voire impossible... En général on s'arrange donc pour réserver un canal sonore et le canal de bruit aux effets sonores, et on utilise les 2 canaux restants pour la musique. Je n'ai pas d'exemple sur Oric (car souvent les jeux proposent soit des effets sonores soit de la musique, car faire les 2 prend énormément de temps CPU, et dans Stormlord par exemple on doit choisir l'un ou l'autre). En revanche sur ST, si tu prends un jeu emblématique comme Goldrunner (vidéo), tu pourras constater que lorsque le joueur tire avec son vaisseau, la musique n'est pas coupée, de même lorsqu'un sample est joué, la musique continue aussi... A priori, 1 canal son (et le canal bruit) est réservé aux effets sonores et la musique utilise les 2 autres canaux son. Il y a cependant les percussions qui utilisent aussi le canal bruit, donc je pense que niveau programmation sonore c'est extrêmement complexe.

Pour répondre à ta dernière question, il y a en fait 4 canaux: 3 canaux de forme d'onde carrée, et 1 canal de bruit blanc, qui peut être mixé soit à un seul canal "'son", soit à plusieurs des canaux son.

Tout ceci est très bien expliqué dans le manuel de l'Atmos par exemple, pour les commandes Basic SOUND, PLAY et MUSIC que tu peux appeler aussi en C en faisant un #include <sys/sound.h> au début de ton programme puis en faisant appel aux fonctions sound(), play() et music() qui sont définies dans ce header.

ATTENTION CEPENDANT, le header inclus dans l'OSDK (depuis la v1.5 au moins..) est incorrect et ne compile pas, j'ai du le corriger à la main il y a qq semaines pour les besoins de mon jeu "ElectrOric", je comptais envoyer le correctif à DBug, c'est l'occasion !! Smile

Pour info, le pb dans ce header est la définition via #defines de "constantes" pour les notes dièse, qui utilise le caractère "-" qui n'est pas autorisé dans un nom de macro #define, et que j'ai donc tout simplement remplacé par le caractère de soulignement "_" et le suffixe "SHARP" (dièse en anglais).

Exemple:
#define NOTE_C-  2
remplacé par:
#define NOTE_C_SHARP  2

==> Je joins donc une version corrigée de ce header, à placer donc dans %OSDK%\include\sys

(NB: le forum permettant seulement l'ajout de certains types de fichiers, j'ai du mettre la pièce jointe dans une archive ZIP)
Fichiers joints
musique en c - Page 2 Attachment
OSDK_include_sys_sound_h.zip Fichier header sys/sound.h corrigé pour OSDK 1.13(2 Ko) Téléchargé 27 fois
retroric
retroric

Messages : 535
Date d'inscription : 09/08/2014
Age : 48
Localisation : Paris

https://github.com/retroric

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par goyo le Ven 15 Mar 2019 - 11:17

laurentd75 a écrit:C'est plus ou moins possible, en fonction précisément de combien de canaux tes sons et ta musique utilisent...

Si ton effet sonore et ta musique utilisent des canaux séparés, c'est assez simple, tu positionnes les valeurs des registres correspondant au canal ou aux canaux utilisés par ton effet sonore, tu "valides" pour déclencher la lecture par le PSG, puis tu positionnes les valeurs des registres correspondant au canal ou aux canaux utilisés par la 1ere note de ta musique, tu valides, et les sons des différents canaux se "superposent"... Après, suivant si ton effet sonore "dure" ou doit être modifié, tu modifies les registres nécessaires, puis tu alternes pour les registres des canaux de la musique, pour jouer les différentes notes...
Ceci étant, si tu ne veux pas t'embêter à positionner les registres, tu peux aussi appeler les commandes BASIC SOUND, MUSIC et PLAY en ROM, c'est nettement plus simple...

Dans le cas où tes effets sonores et ta musique utilisent un ou plusieurs canaux identiques en revanche, pas de solution miracle... Il n'y a guère d'autre solution que d'alterner entre restitution de l'effet sonore et jeu de la musique, car "mixer" les 2 serait compliqué voire impossible... En général on s'arrange donc pour réserver un canal sonore et le canal de bruit aux effets sonores, et on utilise les 2 canaux restants pour la musique. Je n'ai pas d'exemple sur Oric (car souvent les jeux proposent soit des effets sonores soit de la musique, car faire les 2 prend énormément de temps CPU, et dans Stormlord par exemple on doit choisir l'un ou l'autre). En revanche sur ST, si tu prends un jeu emblématique comme Goldrunner (vidéo), tu pourras constater que lorsque le joueur tire avec son vaisseau, la musique n'est pas coupée, de même lorsqu'un sample est joué, la musique continue aussi... A priori, 1 canal son (et le canal bruit) est réservé aux effets sonores et la musique utilise les 2 autres canaux son. Il y a cependant les percussions qui utilisent aussi le canal bruit, donc je pense que niveau programmation sonore c'est extrêmement complexe.

Pour répondre à ta dernière question, il y a en fait 4 canaux: 3 canaux de forme d'onde carrée, et 1 canal de bruit blanc, qui peut être mixé soit à un seul canal "'son", soit à plusieurs des canaux son.

Tout ceci est très bien expliqué dans le manuel de l'Atmos par exemple, pour les commandes Basic SOUND, PLAY et MUSIC que tu peux appeler aussi en C en faisant un #include <sys/sound.h> au début de ton programme puis en faisant appel aux fonctions sound(), play() et music() qui sont définies dans ce header.

ATTENTION CEPENDANT, le header inclus dans l'OSDK (depuis la v1.5 au moins..) est incorrect et ne compile pas, j'ai du le corriger à la main il y a qq semaines pour les besoins de mon jeu "ElectrOric", je comptais envoyer le correctif à DBug, c'est l'occasion !! Smile

Pour info, le pb dans ce header est la définition via #defines de "constantes" pour les notes dièse, qui utilise le caractère "-" qui n'est pas autorisé dans un nom de macro #define, et que j'ai donc tout simplement remplacé par le caractère de soulignement "_" et le suffixe "SHARP" (dièse en anglais).

Exemple:
#define NOTE_C-  2
remplacé par:
#define NOTE_C_SHARP  2

==> Je joins donc une version corrigée de ce header, à placer donc dans %OSDK%\include\sys

(NB: le forum permettant seulement l'ajout de certains types de fichiers, j'ai du mettre la pièce jointe dans une archive ZIP)

Merci Laurent de toutes ces précisions et le header, ça me parait encore un monde bien vaste, la programmation du son. Dans mon proto de jeu "rain panic" j'ai mis une variable compteur tempo=10 après chaque son de type 'ping zap, etc'. quand tempo atteint 0 je joue la note suivante de la musique. Je fais comme tu as indiqué, de l'alternance son/musique. Si tu veux je t'envoie mon proto pour que tu vois comment j'ai fait, si t'as des remarques. L'idéal serait que je joue ma musique dans l'interruption horloge pour qu'elle ait un rythme parfait, mais je ne sais pas encore assez bien utiliser l'assembleur pour ça. Si tu as la routine asm pour la musique et l'interruption horloge ça m’intéresse Smile
goyo
goyo

Messages : 178
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par kenneth le Ven 15 Mar 2019 - 11:34

On peut creer un tableau avec les notes et les temps. En détournant le vecteur d'interruption pour rajouter la routine son, on incrémente un nouveau timer a chaque nouvelle interruption, dès que la valeur correspond a celle du tableau, (temps de la note) on appelle la routine play ou sound pour jouer la nouvelle note du tableau.
kenneth
kenneth
Modérateur

Messages : 718
Date d'inscription : 13/01/2013
Age : 52
Localisation : 972

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par retroric le Ven 15 Mar 2019 - 14:54

Salut Goyo,

Attention, je ne suis nullement un spécialiste de la programmation sonore sur Oric (même si c'est un domaine qui m'intéresse beaucoup), je galère d'ailleurs pas mal à faire des sons corrects et à jouer avec les enveloppes, mais n'hésite pas à poster ton proto dans ce sujet, je pourrai jeter un oeil et d'autres personnes plus calées comme Kenneth pourront sans doute aussi t'aider sur le sujet ou sur celui des interruptions, car sur les interruptions je suis vraiment néophyte, je n'ai jamais rien codé avec des interruptions en 6502, et il faudrait que je me "pose" un peu pour étudier le sujet car il y a plusieurs timers et je me mélange un peu les pinceaux ! Very Happy

_________________
retrOric (Laurent D)https://github.com/retroric
retroric
retroric

Messages : 535
Date d'inscription : 09/08/2014
Age : 48
Localisation : Paris

https://github.com/retroric

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par goyo le Lun 25 Mar 2019 - 15:26

laurentd75 a écrit:Salut Goyo,

Attention, je ne suis nullement un spécialiste de la programmation sonore sur Oric (même  si c'est un domaine qui m'intéresse beaucoup), je galère d'ailleurs pas mal à faire des sons corrects et à jouer avec les enveloppes, mais n'hésite pas à poster ton proto dans ce sujet, je pourrai jeter un oeil et d'autres personnes plus calées comme Kenneth pourront sans doute aussi t'aider sur le sujet ou sur celui des interruptions, car sur les interruptions je suis vraiment néophyte, je n'ai jamais rien codé avec des interruptions en 6502, et il faudrait que je me "pose" un peu pour étudier le sujet car il y a plusieurs timers et je me mélange un peu les pinceaux ! Very Happy

j'ai vu le programme d'interruption horloge sur le Theoric 6 page 36. dommage que le code assembleur ne soit pas commenté.

Je vais un peu arranger mon programme proto avant de le poster. !

Je recherche un bruit de saut de saut (jump) que j' arrive pas à trouver avec la routine d'effet sonore similaire au ping, ni avec l'outil soundgen...
goyo
goyo

Messages : 178
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par retroric le Ven 29 Mar 2019 - 16:51

Salut Goyo,

Pour un effet sonore de saut, une astuce peut-être d'utiliser un des sons " d'hélicoptère" que tu peux trouver facilement, et de le couper après qq centaines de millisecondes avec un PLAY 0,0,0,0 pour juste garder une période du son.

Mais si tu veux réfléchir un peu plus, en gros, tu cherches sans doute un son sur un canal mixé avec le générateur de bruit et avec l'enveloppe n°1 ou n°2 (enveloppe descendante ou montante qui se coupe toute seule au bout de la période de l'enveloppe). Avec ces infos, tu devrais sans doute pouvoir jouer avec les paramètres pour trouver le son qui convient...

Sinon, tu peux aussi essayer de trouver le son qui te convient dans un jeu existant  en BASIC et récupérer les paramètres de ce son (instructions PLAY et SOUND utilisées pour le bruitage).
retroric
retroric

Messages : 535
Date d'inscription : 09/08/2014
Age : 48
Localisation : Paris

https://github.com/retroric

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par goyo le Sam 30 Mar 2019 - 14:47

laurentd75 a écrit:Salut Goyo,

Pour un effet sonore de saut, une astuce peut-être d'utiliser un des sons " d'hélicoptère" que tu peux trouver facilement, et de le couper après qq centaines de millisecondes avec un PLAY 0,0,0,0 pour juste garder une période du son.

Mais si tu veux réfléchir un peu plus, en gros, tu cherches sans doute un son sur un canal mixé avec le générateur de bruit et avec l'enveloppe n°1 ou n°2 (enveloppe descendante ou montante qui se coupe toute seule au bout de la période de l'enveloppe). Avec ces infos, tu devrais sans doute pouvoir jouer avec les paramètres pour trouver le son qui convient...

Sinon, tu peux aussi essayer de trouver le son qui te convient dans un jeu existant  en BASIC et récupérer les paramètres de ce son (instructions PLAY et SOUND utilisées pour le bruitage).

Merci Laurentd75,
oui je peux essayer de bidouiller un son avec la routine rom de $FA86 même si dans les 14 paramètres y a des comportements assez bizaroides ..
je peux aussi utiliser l'outil soundgen pour chercher et faire des expériences.
je trouve que zap rensemble pas mal à un bruit de saut mais ZAP n'utilise pas que cette routine rom mais un autre en plus j'ai cru comprendre...
oui play et sound . je ne les ai pas trop utilisées mais ça peut être une occasion de mieux les pratiquer..
goyo
goyo

Messages : 178
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

musique en c - Page 2 Empty Re: musique en c

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum