Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
356 connectés actuellement
30732328 visiteurs depuis l'ouverture
2306 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
❤ 0 Ce script pour XP et/ou VX permet d'ajouter des fonctionnalités audio comme mettre le son à droite ou à gauche, mettre en pause, répétition, etc...
Vous pouvez aussi vous en servir pour jouer plusieurs BGM, BGS, ME en même temps.
Cependant c'est pas un script pour débutant, il faut savoir gérer ses sons, par exemple tout arrêter quand on retourne à l'écran titre.
C'est pas très compliqué mais ça nécessite quelque modifications des scripts.
Petit inconvénient concernant les fichiers midi :
Déjà on ne peut en lire qu'un à la fois.
Les fichiers midi ne sont pas lu par RM mais par Windows, ce qui fait que le son est différent.
De plus si vous modifiez le volume ou autre d'un fichier midi les modifications se feront directement sur l'ordinateur, ce qui n'est pas terrible.
Je déconseille donc la lecture de midi en utilisant ce script par contre avec RM y'a pas de problème c'est comme avant.
Toutes les explications pour l'utiliser sont au début du script.
A mettre au dessus du Main.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
| #=================================
# Audio +
# Script créé par Zeus81
#=================================
#
#
# Manuel d'utilisation :
#
# Les commandes suivantes doivent être écrites dans un script.
#
#
# OUVERTURE D'UN NOUVEAU FICHIER AUDIO :
# Advanced_Audio.new("identifiant", "nom du fichier")
#
# identifiant = Nom quelconque dont on se servira ensuite pour modifier notre son.
#
# nom du fichier = Nom du fichier à lire (avec le chemin et l'extension).
#
# Exemple : Advanced_Audio.new("BGS 01", "Audio/BGS/020-People02.ogg")
#
# Note : Si un autre fichier audio porte le même identifiant il sera remplacé.
#
#
# DEMARRER LA LECTURE :
# Advanced_Audio["identifiant"].play(répétition, départ, fin)
#
# identifiant = Identifiant précédemment indiqué.
# Attention si l'identifiant ne correspond à aucun fichier ouvert, ça plantera.
#
# répétition = Précise si le fichier doit être lu en boucle ou pas.
# Pour lire en boucle mettez true, sinon false.
#
# départ = Temps à partir d'où débute la lecture en millisecondes.
# Si vous mettez -1 ce sera à partir de la dernière position de lecture.
#
# fin = Temps où s'arrêtera la lecture en ms.
# Si vous mettez -1 ça ira jusqu'à la fin du fichier.
#
# Exemple : Advanced_Audio["BGS 01"].play(true, 0, -1)
#
# Note : Les répétitions redémarrent non pas à la position de départ indiqué mais au début du fichier.
#
#
# METTRE EN PAUSE :
# Advanced_Audio["identifiant"].pause
#
#
# SORTIR DE PAUSE :
# Advanced_Audio["identifiant"].resume
#
#
# ARRETER LA LECTURE :
# Advanced_Audio["identifiant"].stop
#
# Note : Contrairement à la pause si vous voulez redémarrer la lecture il faudra passer par play.
# Ce qui signifie qu'il faudra remettre les options (répétition, départ, fin).
#
#
# FERMER LE FICHIER :
# Advanced_Audio["identifiant"].close
#
# Note : Ferme le fichier et libère la mémoire (en théorie).
#
#
# MODIFICATION DU VOLUME :
# Advanced_Audio["identifiant"].volume_change(volume, temps)
#
# volume = Nouveau volume du fichier entre 0 et 100
#
# temps = Durée de transition en nombre de frames.
#
# Exemple : Advanced_Audio["BGS 01"].volume_change(50, 40)
#
# Note : Par défaut le volume est à 100%
#
#
# MODIFICATION DE LA BALANCE (GAUCHE DROITE) :
# Advanced_Audio["identifiant"].balance_change(balance, temps)
#
# balance = Nouvelle balance du fichier entre -100 et 100
# A -100 le son est à gauche, à 0 au centre, à 100 à droite.
#
# Exemple : Advanced_Audio["BGS 01"].balance_change(-75, 200)
#
# Note : Par défaut la balance est à 0
#
#
# MODIFICATION DE LA VITESSE (TEMPO) :
# Advanced_Audio["identifiant"].pitch(vitesse)
#
# vitesse = Nouvelle vitesse de lecture en pourcentage.
# 200 = 2x, 100 = 1x, 50 = 0.5x
#
# Exemple : Advanced_Audio["BGS 01"].pitch(120)
#
# Note : Par défaut la vitesse est à 100%
#
#
# AUTRES FONCTIONS :
#
# Advanced_Audio["identifiant"].position : retourne la position de lecture actuelle
# Advanced_Audio["identifiant"].length : retourne la durée totale du fichier
# Advanced_Audio["identifiant"].mode : retourne l'état actuel (playing, paused, stopped)
#
# Advanced_Audio.reset : Ferme tous les fichiers audio
if defined?(Advanced_Audio)
Advanced_Audio.reset
else
class << Graphics
alias zeus81_advanced_audio_update update
def update
zeus81_advanced_audio_update
Advanced_Audio.update
end
end
class Advanced_Audio
MciSendString = Win32API.new("winmm", "mciSendString", "ppll", "l")
@@buffer = " "*256
@@audio = {}
def self.[](aliasname)
return @@audio[aliasname]
end
def self.call(command)
return (MciSendString.call(command, @@buffer, @@buffer.size, 0) == 0)
end
def self.update
@@audio.each_value {|audio| audio.update}
end
def self.reset
@@audio.each_value {|audio| audio.volume(1000); audio.close}
end
def initialize(aliasname, filename)
@aliasname = aliasname
@@audio[@aliasname].close if @@audio[@aliasname] != nil
@@audio[@aliasname] = self
Advanced_Audio.call("open \"#{filename}\" alias \"#@aliasname\" type MPEGVideo")
Advanced_Audio.call("set \"#@aliasname\" time format ms")
@volume = 1000.0
@balance = 0.0
@volume_duration = @balance_duration = 0
update
end
def play(repeat=true, from=-1, to=-1)
command = "play \"#@aliasname\""
command.concat(" from #{from}") if from != -1
command.concat(" to #{to}") if to != -1
command.concat(" repeat") if repeat
Advanced_Audio.call(command)
end
def pause
Advanced_Audio.call("pause \"#@aliasname\"")
end
def resume
Advanced_Audio.call("resume \"#@aliasname\"")
end
def stop
Advanced_Audio.call("stop \"#@aliasname\"")
end
def close
@@audio.delete(@aliasname)
Advanced_Audio.call("close \"#@aliasname\"")
end
def position
Advanced_Audio.call("status \"#@aliasname\" position")
return @@buffer.to_i
end
def length
Advanced_Audio.call("status \"#@aliasname\" length")
return @@buffer.to_i
end
def mode
Advanced_Audio.call("status \"#@aliasname\" mode")
return @@buffer.gsub("\000", "")
end
def pitch(pitch)
Advanced_Audio.call("set \"#@aliasname\" tempo #{pitch.to_i}")
Advanced_Audio.call("set \"#@aliasname\" speed #{(pitch*10).to_i}")
end
def left_volume(volume)
Advanced_Audio.call("setaudio \"#@aliasname\" left volume to #{volume.to_i}")
end
def right_volume(volume)
Advanced_Audio.call("setaudio \"#@aliasname\" right volume to #{volume.to_i}")
end
def volume(volume)
Advanced_Audio.call("setaudio \"#@aliasname\" volume to #{volume.to_i}")
end
def volume_change(volume, duration=0)
@volume_target = [[volume*10, 0].max, 1000].min
@volume_duration = [duration*2, 1].max
end
def balance_change(balance, duration=0)
@balance_target = [[balance*10, -1000].max, 1000].min
@balance_duration = [duration*2, 1].max
end
def update
if @volume_duration > 0
@volume = (@volume * (@volume_duration - 1) + @volume_target) / @volume_duration.to_f
@volume_duration -= 1
end
if @balance_duration > 0
@balance = (@balance * (@balance_duration - 1) + @balance_target) / @balance_duration.to_f
@balance_duration -= 1
end
if @last_volume != @volume or @last_balance != @balance
@last_volume = @volume
@last_balance = @balance
left_volume((1000 - @balance) * @volume / 1000)
right_volume((1000 + @balance) * @volume / 1000)
end
end
end
end |
Mis à jour le 4/7/2020.
|
foxfiesta -
posté le 25/02/2009 à 10:22:27 (443 messages postés)
| | Wah pas mal ce script !
*s'en va ouvrir son éditeur de scripts*
|
RPG-Man -
posté le 25/02/2009 à 12:06:25 (0 messages postés)
| J'aime mapper mais je sais pas mapper ... | Huhu, je garde en mémoire ça! Très utile (par exemple si on veut mettre le son en pause dans le menu, pour reprendre après!).
Zeus81, tu es un génie!
|
Metroid_Prime -
posté le 25/02/2009 à 12:17:44 (193 messages postés)
| | Ca peut être très utile comme script ^^
|
Rockmik -
posté le 25/02/2009 à 18:45:50 (12689 messages postés)
| En ligne | Merci.
|
Les ramens, c'est délicieux. |
tamtammort -
posté le 26/02/2009 à 13:20:44 (376 messages postés)
| | Merci pour ce script, une p'tite place dans mes crédits pour Zeus !
|
berka -
posté le 26/02/2009 à 16:57:58 (493 messages postés)
| planchant sur un script |
1
| Advanced_Audio.call("open \"#{filename}\" alias \"#@aliasname\" type MPEGVideo") |
pas besoin de définir un format particulier, ca évitera les problemes de codecs pour les formats autres que mp3.
bon script !
amicalement,
berka
|
Twitter: Pensées politiques et juridiques. Réflexions informatiques |
Zeus81 -
posté le 26/02/2009 à 20:59:31 (11071 messages postés)
| | Ben justement si on précise rien, ça ne lit plus les ogg et les fonctions de boucle ou de balance ne marchent quasiment que pour le mp3.
|
FoxFiesta -
posté le 27/02/2009 à 11:01:17 (443 messages postés)
| | Pour ceux qui ont des problèmes avec les MIDIs, je pense que DBPowerAmp peut les transformer en mp3, ogg...
Le logiciel est téléchargeable ici.
|
Ipnoz -
posté le 27/02/2009 à 22:21:22 (539 messages postés)
| Nostalgique! | Cool ton script zeus
|
Moi, j'active les flocons d'oniro :D |
RPG-man -
posté le 17/03/2009 à 18:24:54 (0 messages postés)
| J'aime mapper mais je sais pas mapper ... | Ben, Zeus ça y'est, je l'ai prit pour Galactic Battle, pour par exempler mettre la musique en pause pendant le mini-menu en jeu.
Merci!
|
Ryk -
posté le 12/10/2010 à 16:50:27 (33 messages postés)
| C++ && Ruby | Alors ça c'est du beau code!! Content de voir un script si bien documenté qui fonctionne nickel.
|
L'imagination est plus importante que la connaissance. |
Nana -
posté le 15/05/2013 à 19:33:39 (45 messages postés)
| Rêveuse Passionée | Super script merci beaucoup !
|
Degenpy -
posté le 18/11/2015 à 18:30:44 (115 messages postés)
| Jeune maker qui essaie des trucs. | Excellent script Zeus comme d'hab !
Pensez à bien installer un codec Ogg si ce n'est pas déjà le cas. Il est trouvable ici http://www.vorbis.com/setup_windows/ (site officiel), sinon les musiques en Ogg ne se liront pas.
Par contre lors de la lecture multipistes les pistes se désynchronisent entre elles. Pour mon projet j'aimerai rajouter des pistes qui se greffe à la mélodie principal au fur et à mesure de l'avancé dans un donjon. Pour qu'elles soient bien synchronisées je les lancent toutes en même temps et je met à le volume à zéro pour les pistes que je n'utilise pas tout de suite (j'ai régler le volume à 0 de base dans le script) puis j'augmente le volume de ces pistes en fondu au fur et à mesure de l'avancé dans le donjon avec des commandes script dans les événements. Mais à force de boucler les pistes finissent par se désynchroniser entre elles.
J'ajoute que les pistes font toutes la même longueur et que le problème apparait que soit en OGG, Mp3 ou Wav.
Tu aurais une solution Zeus ?
|
Clique ici pour découvrir Ah'ra Project, élu meilleur jeu 2027 selon l'UFC que choisir. |
crazyboko -
posté le 30/12/2018 à 15:22:19 (76 messages postés)
| | Bon sang de bonsoir !
Ce script m'intéresse fortement pour éviter que les musiques recommencent au début après un combat...
Mais je n'arrive même pas à les écouter.
Premier évènement :
Script : Advanced_Audio.new("machin", "Audio/BGS/bidule.wav")
Deuxième évènement :
Script : Advanced_Audio["machin"].play(false, 0, -1)
La musique bidule.wav est dans le dossier BGS.
Et pourtant rien ne se lance (ni en mp3 ni en ogg)
J'ai copié collé le script donc normalement pas d'erreur.
Je vois que ça a l'air de marcher pour les autres.
Alors quelqu'un aurait une idée sur ce que je fais mal pour réussir à lancer la zic ?
| |
|
|