DeQuencher

New version!

Current Universal Binary package for Macs (docs included): dq_v0.2.1.dmg
And here is the sources: dq_v0.2.1src.tar.gz
The Documentation and tutorial is included in the dmg.
The tutorial also has an accompanying video which can be downloaded/watched from here.

Old, processing based version:

I’m no longer hosting the old processing versions documentation here. However if you are interested, you can download the whole package for the old version which includes the docs from here.

To see a video of deQuencher in action, you can look here:
http://www.vimeo.com/938314

Embedded version:

This performance was made with the old processing version of dQ so not all of the functionality of the current version is used there.

What is new?

The current version is a complete rewrite of the application with C++ using the great openframeworks library. There are some new features like arbitrary chaining of Fx agents and freesound integration. Check the documentation and tutorial out to see what they are all about!

But what exactly does it do?

Simply put, deQuencher is a live sequencing tool. The idea behind it is that, instead of having separate and isolated layers for musical events, you have your sound generators and gates/triggers/parameter changes share the same canvas (and layer), and you interact with your “objects” on that canvas to express your musical ideas on time domain.

The program records your mouse gestures and then plays them back continuously, and your objects interact based on distance between each other. For now, there are 6 types of objects. They are:
- Synth (sound generators: parameter/trigger in, audio out),
- Fx (effects units: audio in, audio out),
- Parameter (sends parameters based on proximity: no input, parameter out),
- Trigger (sends triggers when close enough to a synth/fx object: no input, trigger out)
- Chaining Fx (effects units that can be chained between each other. audio in/audio out)
- Freesound sampler (downloads samples from freesound based on the keyword you give, and allows you to use that sound in your improvisations realtime.)

Once you record your gesture, you have the ability to post-process recorded movement, you can move the object(add offset), you can scale the movement, you can also clip the playback from its end so that the object will jump back to its origin earlier. Also, proximity thresholds for objects can be set.

The program is an interface for SuperCollider, so it uses SC as its sound engine. Usage is quite easy but getting started with it is not so straightforward so be sure to check the docs and tutorial out before attempting to do something with it. Comments and suggestions are always welcome.

  • StumbleUpon
  • del.icio.us
  • Digg
  • Facebook
  • Twitter
  • Reddit

16 Comments

  1. haeher
    Posted August 18, 2009 at 1:12 pm | Permalink

    Hi!

    I really like this new approach to sequencing, looks like lots of fun and possibilities.

    Is there a way to use DeQuencher with Linux (Ubuntu 8.10)? Because I would love to try this out… :-)

  2. Posted August 19, 2009 at 6:24 pm | Permalink

    Hi haeher, thanks for your comment. This was built with openframeworks which is a crossplatform library so it shouldn’t be too hard to compile it for linux but I don’t have a linux development environment right now, unfortunately. I’d be happy to help if you have a go at it however. :)

  3. haeher
    Posted August 19, 2009 at 7:18 pm | Permalink

    I am trying to compile deQuencher with the Code::Blocks IDE, wich is recommended at http://www.openframeworks.cc/setup/linux-codeblocks. But unfotunately I am getting lots of errors because the compiler for some reason doesn’t find the included libraries / files (for example “ofMain.h”).

    I think this could be a problem with the IDE, but I have never used this software or programmed in C++, so I don’t really know what to do :-(

  4. Posted August 19, 2009 at 7:31 pm | Permalink

    Ok, can you please send an e-mail to me (address available at contact section). So we can go step by step from there.

  5. enrike
    Posted October 1, 2009 at 5:23 pm | Permalink

    hi

    i am on linux as well, i can see that there are no .h files included with the source. Only the .cpp are there. I would be interested on compiling it as well. I am trying to do something similar, control scsynth from OF so reading your code is really helpful.

  6. Posted October 4, 2009 at 2:26 am | Permalink

    Enrike, you should import the source files to an existing oF template project by hand. It would be best if I could include it ready for compilation but the framework is about 100mb :/

  7. enrike
    Posted October 14, 2009 at 11:20 am | Permalink

    for some reason the first file i downloaded it did not contain .h or maybe I did something wrong when uncompressing. the files are now there. thanks!

    have you considered releasing as an OF addon? ofxScynth or something like this :) it would be cool.

  8. enrike
    Posted October 14, 2009 at 12:14 pm | Permalink

    any chances you have a simple example of the sc_osc usage?

  9. Posted October 14, 2009 at 12:41 pm | Permalink

    Hi Enrike, I can make a simple project for that but it may take some time. In the meantime, maybe you may be able to figure it out from the dQ sources by yourself if I give you some pointers. It’s not very hard.

    You obviously have to include sc_osc.h and sc_osc.cpp in your project. For now, objects for a Server, Synth and Buffer are included.

    The classes were developed for dQ (but are kind of generic) so only server messages concerning dQ are included at this time, but it’s easy to expand by adding new methods by figuring out the appropriate messages from “Server Command Reference” help file distributed with SuperCollider.

    You first need a representation of a server:

    myServer = new scServer(“127.0.0.1″, 57110) //ip and port

    To figure out how interaction with synths can be done, check out sAgent.cpp. Basically:

    mySynth = new scSynth(synthName, myServer);

    synthname is a string here and myServer is the server object we’ve created earlier. This creates a representation of a synth, but does not create it on scserver. When you want to create it:

    mySynth->create();

    When you want to get rid of it:

    mySynth->free();

    If you want to control a parameter:

    mySynth->set(paramName, value);

    paramName is a string and value is a float. You can find these methods defined in sc_osc.cpp. The usage is the same for other abstractions and their methods, you can just look them up from there. You can also add new commands easily (for example, according to Server Command Reference help in SuperCollider, to create a synth, you need to send “/s_new” osc message to server and it gets two arguments: synth name and node id. And the scSynth::create() definition in sc_osc.cpp does exactly that). If you want to add other commands, you can add them easily by changing the command and arguments. If you do so, please let me know so I can include it in a future release.

    Feel free to ask if you have more questions.

  10. Posted November 27, 2009 at 2:57 am | Permalink

    Love it man!
    On our first proper play with DeQuencher we challenged each other to mix as many freesounds as possible. You can hear about a dozen in this.
    http://retrogrademotion.net/node/22

    Unfortunately dq crashed when we created too many buffer synths. Searching through freesound randomly can be a slow process – time to release the python.

    A super-collider back-end would be good. I’d list to listen to the samples before adding them to the mix (like a DJ’s headphones). Any suggestions on where to start? Hadron?

  11. Posted November 27, 2009 at 3:15 am | Permalink

    Hey, thanks!

    I’m sorry that it crashed. Downloading stuff is asynchronous so always scary… A new version of dQ is on the way, you can save and load preset scenes etc, which helps a lot for live performances. Also dedicated DQSynthDef classes that is transparent like SynthDefs, you just memStore and go! But it will be around 1-2 months before I get to package it, too many troubles right now…

    I actually have a SuperCollider backend for FreeSound, do you know about my FreeSound Quark? I’ve recently released a GUI frontend for it too, you may want to check these posts:

    http://www.batuhanbozkurt.com/news/freesound-class-for-supercollider-released-as-a-quark
    http://www.batuhanbozkurt.com/news/freesound-quark-update

    You can adapt the class for any need, it can continuously download, and you can store them in buffers for sneaky listening etc… It’s not implemented directly inside the class but it is easy to make one that will fit your needs.

    I’m gonna give a listen now. :) Best…

  12. alt
    Posted January 24, 2010 at 9:39 pm | Permalink

    Great, I will sure give it a try. I am pretty new to openframework, if not to C++, processing or supercollider. May I ask why you switched from processing to openframework ?

  13. Posted January 25, 2010 at 4:18 pm | Permalink

    Hi alt, my processing code was messy. I wanted to rewrite it from scratch, and I’d just seen oF at that time. Wanted to give it a try, basically. There were also performance concerns but I’m pretty sure it can also be obtained with Java.

  14. alt
    Posted January 25, 2010 at 5:31 pm | Permalink

    Thanks for your quick answer.

  15. Diego
    Posted February 17, 2010 at 2:25 am | Permalink

    Hi Bathuan, thanks for the great SW! I am trying to use type 5 agents but i cannot downlad succesfully, altough i have set up the FS user and pw in the file fsounder.py, i am accesing via Aiport with a Macbook Pro Leopard. I left the field IP address as it was originally, that is 127.0.0.1, any idea what may be wrong?
    Thx

  16. Posted February 19, 2010 at 10:57 am | Permalink

    Hi Diego, FreeSound has since changed the way to access samples from it’s api so the python script is outdated. I’m going to fix it for the next release.

    As a workaround, you can use my FreeSound Quark in SC and set up a synth to play samples from there, I think. Sorry for the confusion!

Post a Comment

Your email is never published nor shared.

  • What

    I am Batuhan Bozkurt.

    Things involving computational (sound) art, and my work swirling around the subject are here.

    Follow my RSS feed if you care.

  • Find me