Publicité

Annonce

Réduire
Aucune annonce.

Au sujet de CSound

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Au sujet de CSound

    Au détour du fil voisin, je me suis (ré)intéressé à Csound.

    Il s'agit d'un langage de programmation qui permet de synthétiser des sons. Le langage peut être assez rebutant, car parfois peu lisible. Ainsi, "f1 0 4096 10 1" initialise une table n°1 avec une fonction sinus (fonction n°10)... En terme de clarté, je pense qu'il était possible de faire mieux. En revanche, le langage est assez puissant. Il y a des codes pour pas mal de chose déjà intégrés. Ainsi on trouve pour la synthèse :

    Additive Synthesis/Resynthesis
    Basic Oscillators
    Dynamic Spectrum Oscillators
    FM Synthesis
    Granular Synthesis
    Hyper Vectorial Synthesis
    Linear and Exponential Generators
    Envelope Generators
    Models and Emulations
    Phasors
    Random (Noise) Generators
    Sample Playback
    Soundfonts
    Scanned Synthesis
    Table Access
    Wave Terrain Synthesis
    Waveguide Physical Modeling
    À cela s'ajoute les filtres (guides d'ondes, etc). Et comme il s'agit d'un langage de programmation, les possibilités sont illimitées. Ainsi, on peut refaire une synthèse FM sans les oscillateurs dédiés.

    À la base, Csound s'utilise en ligne de commande et génère un fichier WAV. Il peut soit utiliser un fichier MIDI en entrée, soit une section "score" intégrée au fichier. (Les premières versions séparaient dans deux fichiers la définition de l'instrument (dite orchestra) de la partition (dite score). Un usage en temps-réel avec clavier maitre est aussi possible.

    On a aussi des environnements qui facilite la saisie (mise en couleur des codes Csound reconnu, index, aide en ligne intégrant la doc de Csound). Il y a deux tels environnements qui valent le détour : CsoundQt (que l'on récupère naturellement avec Csound) et WinXound (https://winxound.codeplex.com/), merci deb

    WinXound est très abouti, la présentation est claire, le produit est fonctionnel.

    CsoundQt semble moins stable. Ainsi, je n'ai eu qu'une fois les icônes dans la barre des boutons... maintenant, je dois me contenter du texte. La réinstallation n'y fait rien. En revanche, le produit va plus loin. Il intègre nativement le temps réel (on y arrive avec WinXound et les "options" que l'on peut saisir dans le fichier de description, mais c'est moins direct). Mais surtout, il dispose d'un éditeur d'interface graphique qui permet ensuite le contrôle en temps réel du synthétiseur. Accessoirement un clavier virtuel. Par ailleurs, CsoundQt offre aussi d'emblée une bonne série d'exemples : soit des exemples ciblés sur des fonctions pour débuter, soit des exemples plus aboutis (dont un B6 Hammond intéressant. La synthèse FM proposée est pas mal : 2 oscillateurs seulement (porteur+modulateur), mais enveloppe, affichage du scope et de spectre). Petit point gênant : CsoundQt ne supporte pas les répertoire accentués. Il me faut travailler dans un répertoire hors de mon "home directory" (et y recopier aussi les exemples).

    Pour l'instant, à part la reprise d'exemples de CsoundQt, je n'ai pas fait grand chose... juste jouer la 1ère invention de Bach avec une fonction sinus... J'envisage d'essayer avec le B6 Hammond de CsoundQt... mais il y a quelques problèmes d'intégration.

    Il existe une version VSTi de Csound... mais impossible de la faire reconnaitre ni par Reaper, ni par Cubase AI. C'est bien dommage.
    Dernière modification par floyer, 15 décembre 2016, 23h41.
    http://www.sinerj.org/~loyer/piano/

    It's never too late to learn to play the piano. (tip of the day)

    Côté piano : Yamaha CLP150, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 12 - Arturia V Collection 7, Korg Legacy Collection, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 -
    Casque : AKG K-702

  • #2
    Envoyé par floyer Voir le message
    Au détour du fil voisin, je me suis (ré)intéressé à Csound.
    Il s'agit d'un langage de programmation qui permet de synthétiser des sons. Le langage peut être assez rebutant, car parfois peu lisible. Ainsi, "f1 0 4096 10 1" initialise une table n°1 avec une fonction sinus (fonction n°10)... En terme de clarté, je pense qu'il était possible de faire mieux. En revanche, le langage est assez puissant. Il y a des codes pour pas mal de chose déjà intégrés.
    Ainsi on trouve pour la synthèse :
    À cela s'ajoute les filtres (guides d'ondes, etc). Et comme il s'agit d'un langage de programmation, les possibilités sont illimitées. Ainsi, on peut refaire une synthèse FM sans les oscillateurs dédiés.
    Très sympa cette présentation. Je me permets quelques commentaires dans la mesure où je pratique Csound en quelque sorte depuis 1981. Le langage comme tu le soulignes est très puissant, si tu veux faire jouer ensemble 200 oscillateurs et 200 filtres, rien ne t'en empêche sinon la patience pour la programmation et la puissance de ton ordinateur.
    À la base, Csound s'utilise en ligne de commande et génère un fichier WAV. Il peut soit utiliser un fichier MIDI en entrée, soit une section "score" intégrée au fichier. (Les premières versions séparaient dans deux fichiers la définition de l'instrument (dite orchestra) de la partition (dite score). Un usage en temps-réel avec clavier maitre est aussi possible.
    Historiquement, c'est la suite des "Music" dont le mythique Music V développé par Max Mathews et de son ouvrage "The Technology of Computer Music" écrit en collaboration avec Joan E. Miller, F.R. Moore, J.R. Pierce et J.C. Risset (décédé, il y a quelques semaines). Le programme avait été réécrit pour les centres de Recherches comme le MIT, l'IRCAM, avec Music 10 qui était en temps différé sur des PDP11 et autres Vax. C'est sur Music 10 qui j'ai fait mes premiers pas en informatique musicale lors du stage d'été de 40 jours en 1981 àl'Ircam. C'était très lourd car il fallait écrire le code, compiler, écouter, modifier, re-compiler, ré-écouter, etc. Mais c'était aussi très excitant.
    CSound est la suite logique de Music 10, 11. Concernant le temps réel, je l'ai sur mes deux anciens Imac avec CsoundQT. En revanche, sur le tout récent, pas moyen de l'obtenir, je suis condamné pour l'instant au différé avec comme tu le soulignes la création d'un fichier wav après la compilation. Pour ma part, il est créé dans Audacity ce qui fait qu'il peut-être enregistré.

    On a aussi des environnements qui facilite la saisie (mise en couleur des codes Csound reconnu, index, aide en ligne intégrant la doc de Csound). Il y a deux tels environnements qui valent le détour : CsoundQt (que l'on récupère naturellement avec Csound) et WinXound (https://winxound.codeplex.com/), merci deb WinXound est très abouti, la présentation est claire, le produit est fonctionnel. CsoundQt semble moins stable. Ainsi, je n'ai eu qu'une fois les icônes dans la barre des boutons... maintenant, je dois me contenter du texte. La réinstallation n'y fait rien. En revanche, le produit va plus loin. Il intègre nativement le temps réel (on y arrive avec WinXound et les "options" que l'on peut saisir dans le fichier de description, mais c'est moins direct). Mais surtout, il dispose d'un éditeur d'interface graphique qui permet ensuite le contrôle en temps réel du synthétiseur. Accessoirement un clavier virtuel. Par ailleurs, CsoundQt offre aussi d'emblée une bonne série d'exemples : soit des exemples ciblés sur des fonctions pour débuter, soit des exemples plus aboutis (dont un B6 Hammond intéressant. La synthèse FM proposée est pas mal : 2 oscillateurs seulement (porteur+modulateur), mais enveloppe, affichage du scope et de spectre). Petit point gênant : CsoundQt ne supporte pas les répertoire accentués. Il me faut travailler dans un répertoire hors de mon "home directory" (et y recopier aussi les exemples).
    En fait, CSoundQT est plus orienté Mac et son interface dans cette plateforme est nettement plus agréable que celle dédiée à Windows, ce que je trouve particulièrement dommage, alors que winsound est nettement plus PC. Manifestement, tu n'as pas eu de problème avec Winsound et windows 10. Ce n'est pas mon cas, mais c'est peut-être dû au PC que j'utilise pour gérer mes photos et autres Mp3. Bref, c'est un bas de gamme. Mais je note que lors de ma première installation de CsoundQT, il fonctionnait mais quand je l'ai redémarré après l'installation de mises à jours de Windows 10, plus rien ne tournait, et il manquait des dll (grrr... je hais les mises à jour de Windows).
    Pour l'instant, à part la reprise d'exemples de CsoundQt, je n'ai pas fait grand chose... juste jouer la 1ère invention de Bach avec une fonction sinus... J'envisage d'essayer avec le B6 Hammond de CsoundQt... mais il y a quelques problèmes d'intégration.
    Tu as deux oeuvres "mythiques" dans les exemples : Study 2 de Stockhausen (qui a aussi été porté sur Max Msp) et Stria de John Chowning et dont le script est impressionnant en regard du nombre de données qu'il a fallu introduire. Tu peux aussi faire l'inventaire des différents instruments proposés dans les exemples et t'en faire des modèles et écrire tes propres "partitions", durées, fréquences Hz ou converties, amplitudes, dynamiques, enveloppes, etc. C'est un excellent moyen pour maitriser la syntaxe de Csound. D'ailleurs, sur ce point, les premiers tutoriels d'Open Music sur Csound sont un bon moyen de faire ses premiers pas dans la syntaxe de Csound dans la mesure où elle se résume aux paramètres fondamentaux.

    Il existe une version VSTi de Csound... mais impossible de la faire reconnaitre ni par Reaper, ni par Cubase AI. C'est bien dommage.[/QUOTE]
    Mais ils fonctionnent avec Ableton Live via Max for Live si je me souviens bien. Mais honnêtement j'ai été déçu par ses VSTi. En dehors d'un seul, celui qui permet de jouer un patch complet de Csound dans Ableton Live et de profiter de ses essais.
    A noter que la version pour l'Ipad (http://www.synthtopia.com/content/20...dpad-for-ipad/) est vraiment excellente à partir du moment où on utilise un clavier bluetooth pour écrire le code. On peut passer ainsi de CsoundQt ou Winsound à la version de l'Ipad ou vice-versa. En terme de synthèse, avec l'application iVCS3 (mélange de l'EMS VCS3 et Synthi AKS) où tous les paramètres y compris les fréquences Hz ont une précision à deux chiffres après la virgule, ce qui permet des modulations d'oscillateurs tout à fait intéressantes), cela donne deux outils très complémentaires et avec un rendu sonore tout à fait honorable et surtout utilisable dans un mix.

    Commentaire


    • #3
      @ deb : Merci pour ce complément.


      Je viens de réussir à faire jouer un fichier MIDI avec le B6 fourni en guise d'exemple avec CsoundQt. J'ai passé pas mal de temps à changer la lecture des paramètres du preset pour les coder en dur, mais il y a aussi une commande qui permet de faire le lien entre les canaux MIDI et les numéros d'instrument (une sorte de Program Change) qui fonctionne mal.... j'ai dû permuter deux instruments.

      Cela donne :


      http://www.sinerj.org/~loyer/invention_1_B6.mp3

      Et en ajoutant le tempérament Cordier (facile, j'ajoute d'une ligne "ioct = (ioct-8)*(1 + 23.46/1200/7) +8"), on obtient quelque chose de proche :


      http://www.sinerj.org/~loyer/invention_1_B6_cordier.mp3

      Pour vous donner un ordre d'idée, le programme qui définit l'orgue fait 546 lignes, mais beaucoup ne concernent que des interactions avec l'IHM. 237 lignes définissent l'instrument (dont lignes vides, commentaires). Cet instrument est contrôlé par 76 paramètres (2x9 drawbars, scanner, distorsion, delay, reverb, leslie, etc), ce qui explique - avec la présentation aérée du code - le nombre de lignes importantes. Le ratio entre le nombre de lignes et le nombre de paramètres illustre la puissance de Csound.
      Dernière modification par floyer, 17 décembre 2016, 14h51.
      http://www.sinerj.org/~loyer/piano/

      It's never too late to learn to play the piano. (tip of the day)

      Côté piano : Yamaha CLP150, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 12 - Arturia V Collection 7, Korg Legacy Collection, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 -
      Casque : AKG K-702

      Commentaire


      • #4
        Très sympa tes deux exemples. Bravo. Sinon, j'essaye de comprendre ta formule sur le tempérament Cordier pour que je la teste avec Python et Opusmodus. peux-tu me faire une explication ? Si j'ai bien compris, il faut augmenter chaque octave d'1/7e de comma soit 3,35 cents si je ne me trompe pas, mais à quoi correspond le 23.46 ?

        Commentaire


        • #5
          Oui, tu as compris. Un comma vaut 23.46 cents, et je le découpe en 7.

          J'obtiens le comma en cent en Python par :

          Code:
          from math import log2
          print ((log2(1.5)*12-log2(2)*7)*1200)
          Il s'agit de 12 quintes (1.5) - 7 octaves (2)... Le log2, mesure l'intervalle en fraction d'octave. Cette différence est en nombre d'octave, je la multiplie par 1200 pour avoir des cents. (C'est un peu ballot de multiplier par 1200 pour avoir un résultat que je m'empresse de diviser par 1200 !! Mais, le cent est une unité plus usuelle pour les petits intervalles.

          Le principe est que j'étire les octaves d'un 7ème de comma, et tout est étiré de façon homothétique. Le 8 que l'on trouve dans la formule est le do du milieu dans Csound (curieuse convention). J'ai pris parti de garder cette note fixe et d'étirer tout autour.
          Dernière modification par floyer, 17 décembre 2016, 17h43.
          http://www.sinerj.org/~loyer/piano/

          It's never too late to learn to play the piano. (tip of the day)

          Côté piano : Yamaha CLP150, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 12 - Arturia V Collection 7, Korg Legacy Collection, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 -
          Casque : AKG K-702

          Commentaire


          • #6
            Tu aurais pu choisir un La440 comme référence au lieu du Do serrure… !
            (je te charrie bien sûr !! )
            Roland RD2000, Nord Piano 2 HP, KORG PA900
            FocusRite Scarlett 6i6, Lucas Nano 300, 2xMonitors CM30,
            MacBookPro + Logic Pro X + divers VSTs (AU), Zoom Q2n, Boss VE-5

            Cheminer ou arriver: quel est mon but ? La musique est un chemin infini...

            Commentaire


            • #7
              Envoyé par Alain44 Voir le message
              Tu aurais pu choisir un La440 comme référence au lieu du Do serrure… !
              (je te charrie bien sûr !! )

              Pure flemme, et je me suis dit que personne aura une oreille absolue assez fine pour remarquer.

              Il est évident, qu'un 8.75 aurait été de meilleur goût.
              http://www.sinerj.org/~loyer/piano/

              It's never too late to learn to play the piano. (tip of the day)

              Côté piano : Yamaha CLP150, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 12 - Arturia V Collection 7, Korg Legacy Collection, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 -
              Casque : AKG K-702

              Commentaire

              Chargement...
              X