IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lisp Discussion :

problème basique de code en Lisp


Sujet :

Lisp

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 21
    Points : 12
    Points
    12
    Par défaut problème basique de code en Lisp
    Bonjour à tous. J'ai une question de débutant à poser. Elle concerne la rédaction d'un code en Lisp orienté production musicale. C'est un code que j'utiliserai dans un plug-in nyquist pour Audacity 2.1.0.
    Le problème est le suivant: j' essai d'écrire un code où je voudrais pouvoir agir sur certains paramètres. Par exemple, je voudrais pouvoir agir sur la hauteur de l'onde sonore générée. J'ai donc défini
    (defun mysound ()
    (osc midi-note dur))

    J'ai prévu un code (propre à Audacity) pour indiquer que je souhaite pouvoir utiliser des valeurs situées entre "16" et "127" (c'est le numéro MIDI de la note, en partant du principe que le la du diapason c'est la valeur "60"). Le problème est que je dois écrire maintenant un code pour indiquer que "midi-note" a une valeur qui peut aller de 16 à 127, 16 et 127 inclus. Par exemple
    (setf midi-note ...
    C'est à ce niveau que je suis bloqué. Un modérateur pourrait-il m'indiquer comment écrire ce cas précis?
    D'avance merci.

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par fdair07 Voir le message
    Le problème est que je dois écrire maintenant un code pour indiquer que "midi-note" a une valeur qui peut aller de 16 à 127, 16 et 127 inclus. Par exemple
    (setf midi-note ...
    C'est à ce niveau que je suis bloqué. Un modérateur pourrait-il m'indiquer comment écrire ce cas précis?
    D'avance merci.
    Je crois que, si tu n'as pas de réponse, c'est parce que ta question n'est pas très claire...

    "un code pour indiquer que "midi note" a une valeur qui peut aller de 16 à 127"? Mais indiquer à qui et dans quel contexte? Parles-tu d'un constructeur qui vérifierait la validité du nombre fourni lors de la création d'une midi-note? D'une liste des valeurs correctes dans lesquelles on peut piocher? Ou de qqc d'autre encore?

    Donne quelques précisions et nous serons heureux de t'aider

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 21
    Points : 12
    Points
    12
    Par défaut problème basique de code en Lisp
    Bonjour Stendhal666.
    Le cadre d'utilisation de ce code est la console Nyquist installée dans Audacity. Elle permet de générer de l'audio à partir de greffons d'effets écrit en Lisp ou en Sal. Audacity n'exploite qu'une partie des fonctionnalités de Nyquist. Les plug-ins peuvent être écrits à partir d'un simple éditeur de texte. Pour les écrire, on utilise le manuel d'utilisation de R. B. Dannenberg. Le code (setq midi-note... doit indiquer quelle peut être la valeur que le symbole "midi-note" peut avoir dans mon plug-in. Le symbole "(mysound" est repris à la fin du code pour générer l'audio: (abs-env (scale 0.1 (mult (mysound) (starship freq scl))))
    Je ne sais pas si cela est plus clair. J'ai un niveau débutant en programmation Nyquist.

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    C'est un peu plus clair mais pas non plus très clair

    J'ai regardé la doc dont tu parles et à priori midi-note (le deuxième argument de osc) est un nombre à virgule flottante, rien de plus. Donc avec setf je peux lui assigner une valeur, mais certainement pas indiquer les valeurs possibles.

    setf affecte une valeur à une variable, par exemple:
    (setf midi-note 60.5)
    (osc midi-note dur) ;; midi-note = 60

Discussions similaires

  1. [MySQL] OU est le probléme avec ce code ??
    Par adlich dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/04/2006, 17h47
  2. Problème basique XSL
    Par tarrant17 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/02/2006, 13h32
  3. Xsl problème d'affichage (code) [débutant]
    Par redsaint dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 01/06/2005, 17h02
  4. [XSL/JavaScript]problème d'intégration code JS dans le XSL
    Par Devil666 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/04/2005, 16h36
  5. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo