08 Sep 2025 - 04:35Deutsch | English
Bonjour visiteur [ Register | Identification ]

Poster un nouveau sujet   Répondre au sujet
Voir le sujet précédent Version imprimable Se connecter pour vérifier ses messages privés Voir le sujet suivant
Auteur Message
horo
25 Sujet du message: ChucK: Strongly-timed Concurrent Audio Programming  MessagePosté le: 21 Fév 2008 - 12:27



Inscrit le: 17 Déc 2003
Messages: 700
Localisation: Berlin
Hi,

searching for DSP and measurement I discovered this project:
http://chuck.cs.princeton.edu/

Citation:
what is it? : ChucK is a new (and developing) audio programming language for real-time synthesis, composition, performance, and now, analysis - fully supported on MacOS X, Windows, and Linux. ChucK presents a new time-based, concurrent programming model that's highly precise and expressive (we call this strongly-timed), as well as dynamic control rates, and the ability to add and modify code on-the-fly. In addition, ChucK supports MIDI, OSC, HID device, and multi-channel audio. It's fun and easy to learn, and offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive control.

ChucK works perfectly with JACK.
apt-get install chuck

A very simple program:
Code:
 // connect sine oscillator to D/A convertor (sound card)
SinOsc s => dac;
1000 => s.freq;
// allow 2 seconds to pass
2::second => now;

Save as sinus.ck and run it:
chuck sinus.ck
you will hear a sinus for two seconds.
A more complex program from the tutorial:
Code:
      // impulse to filter to dac
      Impulse i => BiQuad f => dac;
      // set the filter's pole radius
      .99 => f.prad;
      // set equal gain zero's
      1 => f.eqzs;
      // initialize float variable
      0.0 => float v;

      // infinite time-loop
      while( true )
      {
          // set the current sample/impulse
          1.0 => i.next;
          // sweep the filter resonant frequency
          Std.fabs(Math.sin(v)) * 4000.0 => f.pfreq;
          // increment v
          v + .1 => v;
          // advance time
          100::ms => now;
      }

Save as moe.ck and run it:
chuck moe.ck
Stop it with ^C

hours of fun...

Ciao Martin

_________________
omnia vincit pecunia
 
 Voir le profil de l'utilisateur Envoyer un message privé  
Répondre en citant Revenir en haut
Montrer les messages depuis:     
Sauter vers:  
Toutes les heures sont au format GMT + 1 Heure
Poster un nouveau sujet   Répondre au sujet
Voir le sujet précédent Version imprimable Se connecter pour vérifier ses messages privés Voir le sujet suivant
PNphpBB2 © 2003-2007 
Traduction par : phpBB-fr.com
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.