JSFX et ReaJS - Discutons-en!
- 19 réponses
- 9 participants
- 3 454 vues
- 16 followers

Anonyme
8413

Sujet de la discussion Posté le 26/02/2017 à 22:01:55JSFX et ReaJS - Discutons-en!
A la demande de WZ, j'ouvre un thread sur le JSFX.
Le JSFX est un format de plug-in spécifique à REAPER qui possède son propre langage.
Via le plug ReaJS, il est possible d'utiliser ce format au sein d'autres STAN
les bases : https://www.reaper.fm/sdk/js/basiccode.php#js_basic
ReaJS : https://www.cockos.com/reaper/reaplugs/
N'hésitez pas à poster vos JS préférés avec les liens de téléchargement si possible!
Si des spécialistes de la programmation dans ce format passent par ici, n'hésitez pas à vous lacher!
Le JSFX est un format de plug-in spécifique à REAPER qui possède son propre langage.
Via le plug ReaJS, il est possible d'utiliser ce format au sein d'autres STAN
les bases : https://www.reaper.fm/sdk/js/basiccode.php#js_basic
ReaJS : https://www.cockos.com/reaper/reaplugs/
N'hésitez pas à poster vos JS préférés avec les liens de téléchargement si possible!
Si des spécialistes de la programmation dans ce format passent par ici, n'hésitez pas à vous lacher!


Will Zégal
77784

Will Zégal
Membre depuis 23 ans
2 Posté le 26/02/2017 à 22:12:30
Merci Reno 

0

X-Raym
100

Posteur·euse AFfiné·e
Membre depuis 18 ans
3 Posté le 27/02/2017 à 04:03:08
En résumé, JSFX c'est un moyen d'écrire de coder (programmer) des effets pour moduler le son ou le MIDI, beaucoup plus simplement que si il fallait créer un VST pour cela, que ce soit à la fois au niveau du traitement du signal que de l'interface. Cependant, ils ne peuvent pas répondre à toutes les situations : dans certains cas, le VST restera un meilleur choix pour développer un plugin.
Parmis les JSFX les plus avancés, on a le kit de son 3D ambisonics
The Ambisonic Toolkit, (il y avait même eu une conférence à l'IRCAM pour présenter le concept, et pourquoi JSFX et pas autre chose => Ambisonic Toolkit for Reaper - Ressources), mais souvent, des petits JS très simples peuvent rendre de grands services (comme les fonctions de splitter par fréquence, de filtrage du MIDI, de randomization etc).
REAPER est livré avec plus de 250 JSFX, dont le Sampler Super 8, et de nombreux utilisateurs développent et partagent les leurs gratuitement, comme l'arpégiateur arp0!.
Parmis les JSFX les plus avancés, on a le kit de son 3D ambisonics
The Ambisonic Toolkit, (il y avait même eu une conférence à l'IRCAM pour présenter le concept, et pourquoi JSFX et pas autre chose => Ambisonic Toolkit for Reaper - Ressources), mais souvent, des petits JS très simples peuvent rendre de grands services (comme les fonctions de splitter par fréquence, de filtrage du MIDI, de randomization etc).
REAPER est livré avec plus de 250 JSFX, dont le Sampler Super 8, et de nombreux utilisateurs développent et partagent les leurs gratuitement, comme l'arpégiateur arp0!.
0

Wolfen
14007

Rédacteur·trice
Membre depuis 23 ans
4 Posté le 27/02/2017 à 10:52:10
Je suis un grand fan du Bass Professor MK2 et des plug-ins + interfaces graphiques en JSFX de Sonic Anomaly : http://sonic.supermaailma.net/plugins
De manière générale, je trouve qu'il y a quelques pépites en JSFX, et aussi beaucoup de bordel
mais c'est vraiment cool de pouvoir coder un effet ou un instrument aussi simplement dans Reaper ou avec ReaJS, c'est intéressant à la fois pour les débutants ou pour des développeurs + avancés qui veulent prototyper un truc vite fait, ou avoir accès à une fonctionnalité simplement.
J'aime bien aussi personnellement regarder comment certains JSFX sont fichus, ça permet aussi d'apprendre des choses en DSP. Après, j'avoue que j'ai quand même pas mal d'outils de prototypage personnellement, et que je ne suis pas super méga fan du langage utilisé dans les JSFXs, du coup j'en ai jamais codé un moi-même. Mais je le ferai peut-être à un moment donné histoire de partager avec les utilisateurs de Reaper du code que j'ai déjà mis en open source pour JUCE.
De manière générale, je trouve qu'il y a quelques pépites en JSFX, et aussi beaucoup de bordel

J'aime bien aussi personnellement regarder comment certains JSFX sont fichus, ça permet aussi d'apprendre des choses en DSP. Après, j'avoue que j'ai quand même pas mal d'outils de prototypage personnellement, et que je ne suis pas super méga fan du langage utilisé dans les JSFXs, du coup j'en ai jamais codé un moi-même. Mais je le ferai peut-être à un moment donné histoire de partager avec les utilisateurs de Reaper du code que j'ai déjà mis en open source pour JUCE.
1
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud

SmashedTransistors
25

Nouvel·le AFfilié·e
Membre depuis 8 ans
5 Posté le 05/03/2017 à 18:36:24
J'ai pas mal codé de petits JSFX, y compris des synthés polyphoniques. SmashedTransistors JSFX plugins.
Le langage a une certaine maturité. Il est stable et permet un codage bien structuré (pas objet au sens strict, mais le langage supporte les "namespaces").
La programmation sous JSFX est de bas niveau.
On a pas de modules comme dans un "synth maker" ou "pure data".
On est au même niveau que les VST: on traite et on génère tout au niveau code.
L'avantage par rapport aux VST est que le compilo est intégré à Reaper et qu'on a pas besoin de passer des heures sur une interface graphique. On a un système de sliders qui permet de répondre aux besoins élémentaires.
Ces derniers temps, j'ai un peu laché JSFX au profit de l'Axoloti qui combine programmation de bas niveau et modules. Ce serait chouette que JSFX évolue dans ce sens.
Le langage a une certaine maturité. Il est stable et permet un codage bien structuré (pas objet au sens strict, mais le langage supporte les "namespaces").
La programmation sous JSFX est de bas niveau.
On a pas de modules comme dans un "synth maker" ou "pure data".
On est au même niveau que les VST: on traite et on génère tout au niveau code.
L'avantage par rapport aux VST est que le compilo est intégré à Reaper et qu'on a pas besoin de passer des heures sur une interface graphique. On a un système de sliders qui permet de répondre aux besoins élémentaires.
Ces derniers temps, j'ai un peu laché JSFX au profit de l'Axoloti qui combine programmation de bas niveau et modules. Ce serait chouette que JSFX évolue dans ce sens.
1
[ Dernière édition du message le 05/03/2017 à 18:37:40 ]

X-Raym
100

Posteur·euse AFfiné·e
Membre depuis 18 ans
6 Posté le 13/03/2017 à 03:11:42
@SmashedTransistors
Cool d'avoir pour ton expertise sur le sujet ! J'ai vu que tu avais partagé beaucoup de tes réalisations sur le forum et sur le repo JSFX de Reateam :P Merci !
---
Un autre pro en JSFX: geraintluff.
Regardez son set de plugin ici (basé une bibliothèque graphique de son cru) :
A small set of JSFX (ReaPack) - Cockos Confederated Forums
Cool d'avoir pour ton expertise sur le sujet ! J'ai vu que tu avais partagé beaucoup de tes réalisations sur le forum et sur le repo JSFX de Reateam :P Merci !
---
Un autre pro en JSFX: geraintluff.
Regardez son set de plugin ici (basé une bibliothèque graphique de son cru) :
A small set of JSFX (ReaPack) - Cockos Confederated Forums
1

sched
363

Posteur·euse AFfamé·e
Membre depuis 21 ans
7 Posté le 13/03/2017 à 11:33:09
Citation :
+1 ! Un autre pro en JSFX: geraintluff
Il y a des trucs vrmt sympas et au moins il y a un travail graphic pour les interfaces pcq qd ce n'est pas retravaillé c'est franchement ( pardonnez moi) à chier visuellement parlant.
Sinon c'est chouette d'avoir ouvert ce post pcq je ne connaissais vrmt pas ce domaine dans reaper.

0

X-Raym
100

Posteur·euse AFfiné·e
Membre depuis 18 ans
8 Posté le 13/03/2017 à 13:05:38
A noter que l'aspect des sliders par défaut et les vu-mètres sont influencés par le thème :P
D'un point de vue du dev, créer un slider JSFX sans GUI, ça tient en une ligne. Si on doit gérer le design là... on passe rapidement à 150, ce qui est un brin plus complexe ^^
geraintluff a partagé sa librairie en open source, mais là encore cela demande un certain apprentissage.
La plus part des JSFX ne sont que des utilitaires très simples mais très pratiques, donc à la rigueur c'est pas trop grave si l'UI est très générique, comme les Band Spliter et Joiner qui permettent de diviser le son d'une piste en fonction de certaines plages de fréquences afin de leur apporter des traitements sonores différents.
JS Band Splitter FX – The REAPER Blog
--
Un autre truc cool avec les JSFX et leur possibilités de "sortir certaines valeurs", ce qui permet d'avoir accès à des valeurs calculées par le plugin (et non pas définie par l'utilisateur), et de définir des modulations de paramètres en fonction de celles-ci.
Par exemple, kawa a modé le Gonionmeter (merci à lui d'avoir accepté mes feature requests :P) pour qu'il indique la distribution stéréo du son sur la stéréo, et, cette valeur étant accessible en sortie, on peut moduler d'autres effets en fonction.
Ci dessous, ce qui module l'equaliseur c'est la valeur de distribution stéréo calculée par le JSFX en fonction du son de la piste.

Ces valeurs calculées peuvent aussi être exportées en données d'automation (points d’enveloppe), ce qui permet d'avoir une vue d'ensemble du paramètre calculé sur l'ensemble du projet.

--
D'autres JSFX par kawa:
three XY Slider jsFx ."Bit Crusher","Chorus","Flanger","Delay" - Cockos Confederated Forums
D'un point de vue du dev, créer un slider JSFX sans GUI, ça tient en une ligne. Si on doit gérer le design là... on passe rapidement à 150, ce qui est un brin plus complexe ^^
geraintluff a partagé sa librairie en open source, mais là encore cela demande un certain apprentissage.
La plus part des JSFX ne sont que des utilitaires très simples mais très pratiques, donc à la rigueur c'est pas trop grave si l'UI est très générique, comme les Band Spliter et Joiner qui permettent de diviser le son d'une piste en fonction de certaines plages de fréquences afin de leur apporter des traitements sonores différents.
JS Band Splitter FX – The REAPER Blog
--
Un autre truc cool avec les JSFX et leur possibilités de "sortir certaines valeurs", ce qui permet d'avoir accès à des valeurs calculées par le plugin (et non pas définie par l'utilisateur), et de définir des modulations de paramètres en fonction de celles-ci.
Par exemple, kawa a modé le Gonionmeter (merci à lui d'avoir accepté mes feature requests :P) pour qu'il indique la distribution stéréo du son sur la stéréo, et, cette valeur étant accessible en sortie, on peut moduler d'autres effets en fonction.
Ci dessous, ce qui module l'equaliseur c'est la valeur de distribution stéréo calculée par le JSFX en fonction du son de la piste.

Ces valeurs calculées peuvent aussi être exportées en données d'automation (points d’enveloppe), ce qui permet d'avoir une vue d'ensemble du paramètre calculé sur l'ensemble du projet.

--
D'autres JSFX par kawa:
three XY Slider jsFx ."Bit Crusher","Chorus","Flanger","Delay" - Cockos Confederated Forums
0
[ Dernière édition du message le 13/03/2017 à 13:28:12 ]

sched
363

Posteur·euse AFfamé·e
Membre depuis 21 ans
9 Posté le 13/03/2017 à 13:15:10
C'est vrai qu'il faut pas mal de code en plus pour le design ...
Vai jeter un oeil aux liens que tu as mis, j'ai juste peur que après ça ne devienne adictif tout ça nan?
Vai jeter un oeil aux liens que tu as mis, j'ai juste peur que après ça ne devienne adictif tout ça nan?

0

obe
408

Posteur·euse AFfamé·e
Membre depuis 21 ans
10 Posté le 13/03/2017 à 13:20:29
Une autre ressource interessante pour le developpement en JSFX : la librairie CookDSP.
Le code est très clair, bien documenté et facilement réutilisable.
Le code est très clair, bien documenté et facilement réutilisable.
0

SmashedTransistors
25

Nouvel·le AFfilié·e
Membre depuis 8 ans
11 Posté le 14/03/2017 à 19:10:34
Je peux passer environ 1h par jour à coder, pas beaucoup plus.
Soit je code des algos, soit je code de l'interface graphique.
Mon truc, c'est les algos, faire des choses qu'on ne trouve pas ailleurs.
Développer une GUI à partir de zéro (@gfx des JSFX) c'est un bouffe temps phénoménal. C'est pour ça qu'à la base j'apprécie le système des sliders.
Mais au delà de l'aspect inesthétique (dont je me contre fous, je fais de l'audio et je ne suis pas fétichiste-virtual-analog)...
Bref, le problème ce n'est pas seulement que c'est moche, c'est surtout que ça devient particulièrement illisible dès qu'on a plus de trois ou quatre paramètres... Rien ne distingue la palanquée de sliders grisouilles les uns des autres.
Il suffirait pourtant de quelques petites options de mise en page (couleur, taille, disposition) pour qu'à défaut d'être joli cela soit utilisable.
Mais bon j'ai demandé et redemandé ça il y a deux ans et rien ne bouge. Chez cockos ils ont eu d'autres priorités (vidéo et autre éditeur de partition)... C'est dommage qu'ils laissent JSFX en plan.
Soit je code des algos, soit je code de l'interface graphique.
Mon truc, c'est les algos, faire des choses qu'on ne trouve pas ailleurs.
Développer une GUI à partir de zéro (@gfx des JSFX) c'est un bouffe temps phénoménal. C'est pour ça qu'à la base j'apprécie le système des sliders.
Mais au delà de l'aspect inesthétique (dont je me contre fous, je fais de l'audio et je ne suis pas fétichiste-virtual-analog)...
Bref, le problème ce n'est pas seulement que c'est moche, c'est surtout que ça devient particulièrement illisible dès qu'on a plus de trois ou quatre paramètres... Rien ne distingue la palanquée de sliders grisouilles les uns des autres.
Il suffirait pourtant de quelques petites options de mise en page (couleur, taille, disposition) pour qu'à défaut d'être joli cela soit utilisable.
Mais bon j'ai demandé et redemandé ça il y a deux ans et rien ne bouge. Chez cockos ils ont eu d'autres priorités (vidéo et autre éditeur de partition)... C'est dommage qu'ils laissent JSFX en plan.
1

sched
363

Posteur·euse AFfamé·e
Membre depuis 21 ans
12 Posté le 14/03/2017 à 20:46:05
Citation :
Bref, le problème ce n'est pas seulement que c'est moche, c'est surtout que ça devient particulièrement illisible dès qu'on a plus de trois ou quatre paramètres... Rien ne distingue la palanquée de sliders grisouilles les uns des autres.
Oui, tu as raison en fait...
0

SmashedTransistors
25

Nouvel·le AFfilié·e
Membre depuis 8 ans
13 Posté le 07/04/2017 à 08:57:47
Pour le moment, je m'investis pas mal dans l'Axoloti en portant quelques techniques que j'ai développé sous JSFX vers la petite bestiole...
JSFX a pas mal évolué au fil des années.
Rien qu'au niveau programmation, à l'origine il n'y avait pas de fonctions et rien pour structurer les données.
L'introduction des fonctions et des espaces de noms (namespace) ont beaucoup amélioré la qualité du code JSFX.
Donc, quand Cockos décide de faire quelque chose, ils ne le font pas à moitié
On peut toujours espérer que Justin refasse un toilettage sérieux de JSFX, en commençant par les sliders.
JSFX a pas mal évolué au fil des années.
Rien qu'au niveau programmation, à l'origine il n'y avait pas de fonctions et rien pour structurer les données.
L'introduction des fonctions et des espaces de noms (namespace) ont beaucoup amélioré la qualité du code JSFX.
Donc, quand Cockos décide de faire quelque chose, ils ne le font pas à moitié

On peut toujours espérer que Justin refasse un toilettage sérieux de JSFX, en commençant par les sliders.
0

jico27
78

Posteur·euse AFfranchi·e
Membre depuis 22 ans
14 Posté le 24/09/2017 à 14:27:30
Comme tout le monde j'aime bien les JS et JSFX. Il y en a de très bons.
Toutefois je vais faire une remarque ultra-basique, mais je pense justifiée.
Pourquoi ces FX sont-ils classés vraiment n'importe comment (soit par catégorie, soit par contributeur et plutôt les deux en même temps) ?
Je ne vois pas non plus de docs indiquant à quoi tous ces JS servent.
Tout cela complique la recherche, la rend parfois interminable.
Donc c'est le bordel.
Pourquoi n'a-t-on pas classé tout cela par catégorie ?
Y a-t-il un moyen de le faire soi-même sans se prendre la tête ?
Merci d'avance.
Toutefois je vais faire une remarque ultra-basique, mais je pense justifiée.
Pourquoi ces FX sont-ils classés vraiment n'importe comment (soit par catégorie, soit par contributeur et plutôt les deux en même temps) ?
Je ne vois pas non plus de docs indiquant à quoi tous ces JS servent.
Tout cela complique la recherche, la rend parfois interminable.
Donc c'est le bordel.

Pourquoi n'a-t-on pas classé tout cela par catégorie ?

Y a-t-il un moyen de le faire soi-même sans se prendre la tête ?

Merci d'avance.
0

vincent sermonne
923

Posteur·euse AFfolé·e
Membre depuis 21 ans
15 Posté le 25/09/2017 à 16:06:37
Citation de jico27 :
Y a-t-il un moyen de le faire soi-même sans se prendre la tête ?
oui en utilisant le rangement "intelligent" par le filtre intégré à la création de dossier personnalisé.
Comme la programmation des JS sont accessible à tous c'est un peu le foutoir en effet, mais certain programmateur integre une "notice" dans l'écriture même du js, qui n'est qu'un simple fichier texte. En éditant un js par Reaper tu pourras vérifier si il y est intégré des explications
0

Anonyme
8413

16 Posté le 25/09/2017 à 16:18:27
dans l'FX browser
Tu crées un nouveau folder
Tu lui donnes un nom
tu coches la case smart folder
et tu notes Comp NOT VST NOT AU
et boum, tous les compresseurs JS sont dans ton folder
EQ OR FILTER NOT VST : toutes les eq et les filtres
CLIP OR LIMIT NOT VST : Tous les clippers / limiter
enfin, t'as compris la logique
Tu crées un nouveau folder
Tu lui donnes un nom
tu coches la case smart folder
et tu notes Comp NOT VST NOT AU
et boum, tous les compresseurs JS sont dans ton folder

EQ OR FILTER NOT VST : toutes les eq et les filtres
CLIP OR LIMIT NOT VST : Tous les clippers / limiter
enfin, t'as compris la logique

1

jico27
78

Posteur·euse AFfranchi·e
Membre depuis 22 ans
17 Posté le 25/09/2017 à 16:24:55
Merci Vincent et ReNo pour vos réponses. 
Grandiose ton système ReNo... !
Comme quoi Reaper est bien un 'smart soft', à condition d'avoir des 'smart tricks'

Grandiose ton système ReNo... !

Comme quoi Reaper est bien un 'smart soft', à condition d'avoir des 'smart tricks'

1

Anonyme
8413

18 Posté le 25/09/2017 à 16:51:48
ah oui et :
click droit sur le dossier JS dans le fx browser -> show in fx list -> jsfx description & JsFX filename
click droit sur le dossier JS dans le fx browser -> show in fx list -> jsfx description & JsFX filename
0

jico27
78

Posteur·euse AFfranchi·e
Membre depuis 22 ans
19 Posté le 25/09/2017 à 21:10:57
Super, merci !
Une dernière question : comment exporte-t-on tous les rep JS créés vers une autre config (et seulement les rep JS créés) ?
Merci d'avance
Une dernière question : comment exporte-t-on tous les rep JS créés vers une autre config (et seulement les rep JS créés) ?

Merci d'avance
0

jico27
78

Posteur·euse AFfranchi·e
Membre depuis 22 ans
20 Posté le 26/09/2017 à 20:01:59

0
- < Liste des sujets
- Charte