Salut à tous !
J'ai besoin de votre aide sur un projet :
Il s'agit de faire un jeu vidéo où le son sera contrôlé par Pure Data, pour des besoins de flexibilité de spatialisation et d'effets. Et d'aut' trucs.
Par contre, ça nécessite de gérer tous les sons du jeu.
On peut estimer 10 sons pour chaque dossier ("vaisseau", "ennemis" ...), donc une bonne cinquantaine au minimum.
Je cherche des solutions pour gérer cette quantité folle de sons. J'en suis là :
-Objet [readsf~] : il permet de lire directement les fichiers depuis le disque (c'est ça ?)
Ca nous fait un patch léger, facile à ouvrir, à manipuler, et facile pour trouver les fichiers (à coup de [prepend] et [appent] )
MAIS il a une limitation du nombre de lectures, dirait-on ! Au bout d'une centaine environ, il n'y a plus de son ...
Peut-être une protection pour éviter de surcharger l'utilisation du disque dur ?
-Objet [soundfiler], [table] et cie : il stocke les fichiers dans le patch (et dans la RAM)
On a tous les fichiers son dans les [table]s du patch, on peut les lire autant de fois qu'on veut.
MAIS j'ai peur que le temps de chargement (et manipulation) du patch soit vraiment infini. La manière dont on va indiquer quel fichier mettre dans quel [table] me fait peur aussi ...
Qu'est-ce que vous me conseillerez ?
Perso, [readsf~] serait vraiment l'idéal, mais à cause de cette limitation, ça rend les choses compliquées ...
Est-ce que quelqu'un saurait la faire sauter, et si c'est judicieux ?
Voilà, merci d'avance !
Hors ligne
Je serai toi j'irai faire un tour du côté de la lib d'abstraction rjdj : https://github.com/rjdj/rjlib
Dans les abstractions préfixées 'u_' , il y a pas mal de choses qui peuvent t'aider comme :
[u_multisamplebank-help] et éventuellement [u_samplekit-help]
Hors ligne
étrange la limitation de readsf~ ? je n'ai pas remarqué, alors que je l'utilise beaucoup.
autrement le mieux est de faire un abstract pour tes sons, ou bien s'ils sont légers de les charger à la volée dans un array. si t'es fichiers sons sont pas lourds, avoir 50 arrays ou plus c'est rien. Tu peux créer cela en dynamique avec un bon abstract, et un pd-génératif sans te prendre la tête. ils auront un ID unique, e qui te permettra d'avoir tes pointeurs.
Hors ligne
Salut !
Merci de vos réponse, j'ai finalement opté pour les array et tabread~.
@Berenger : merci pour rjdj, j'irai voir ça un de ces 4
@philippe : je me souviens avoir utilisé readsf~ pour de la granulation simple : il devait me lire 10 sons aléatoirement tous les 20ms, et au bout d'une vingtaine de secondes, plus rien ... Pas réessayé depuis.
Ma crainte initiale était le temps de chargement du patch : je chargeais des fichiers de backtrack de ~3 minutes dans des arrays avec mon ancien groupe, et PD aimait moyennement.
Hors ligne
Pages: 1