electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Articles  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links  |  Store
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
Live streaming at radio.electro-music.com

  host / artist show at your time
<on air> Twyndyllyngs Special Monday edition of Chez Mosc
Please visit the chat
 Forum index » Discussion » Composition
glass-bead game
Post new topic   Reply to topic Moderators: elektro80
Page 6 of 7 [155 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Author Message
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 5978
Location: San Antonio, Tx, USA
Audio files: 258

PostPosted: Sun Jul 06, 2008 7:03 pm    Post subject: Reply with quote  Mark this post and the followings unread

At some point perhaps we should notify the USCF and FIDE about this effort. They might be responsive and popularize it somehow, perhaps a brief mention in Chess Life Magazine or on their web page would be nice.
_________________
"Let's make noise for peace." - Kijjaz
Back to top
View user's profile Send private message Send e-mail
Kassen
Janitor
Janitor


Joined: Jul 06, 2004
Posts: 7678
Location: The Hague, NL
G2 patch files: 3

PostPosted: Mon Jul 07, 2008 10:36 am    Post subject: Reply with quote  Mark this post and the followings unread

http://www.news.com.au/story/0,23599,23979955-23109,00.html

Just add pressure sensors to the gloves. And ropes. And boots.

_________________
Kassen
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Mon Jul 07, 2008 10:53 am    Post subject: Reply with quote  Mark this post and the followings unread

Inventor wrote:
At some point perhaps we should notify the USCF and FIDE about this effort. They might be responsive and popularize it somehow, perhaps a brief mention in Chess Life Magazine or on their web page would be nice.

OK by me.

I plan at some point to try to generalize this into a compositional approach for letting non-musicians who have some favorite board games make music by playing games and twiddling some knobs associated with those games. To do that, I have to write at least one more plugin for a different game, and get some captive game subjects. I'll be teaching university CS in a few months, and there is a prof in the music department who may be interested, so I'll probably write a paper, maybe for NIME, when I get the work done.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Sun Jul 13, 2008 7:06 pm    Post subject: Reply with quote  Mark this post and the followings unread

Attached is the latest revision, a few new features and numerous bug fixes. chorusmanytones.ck, like manytones.ck, has 4 banks x 64 oscillators per bank, and is designed to run with testf(). While manytones.ck does OK under miniAudicle, chorusmanytones.ck hangs miniAudicle, but runs OK under command line ChucK.

EDIT: chess.zip attachment remove, see updated code from August 2 for latest version.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

Last edited by Acoustic Interloper on Sat Aug 02, 2008 10:22 am; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Mon Jul 28, 2008 8:07 pm    Post subject: Reply with quote  Mark this post and the followings unread

Realizing that EM 2008 is coming up, I thought I'd better update my supercollider contribution for the new testf() protocol. So here's a first go... I also want to add variations on the synthdefs to represent the conflict relationship, but that isn't done yet. Right now there is a different sound for each piece type (except King -- I had an idea what I wanted to do, but it isn't a good one so I'll have to go back and revisit -- right now that piece will be silent).

I also plan to throw in a touch of reverb to try to glue the sounds together better.

The steps to start it up are the same. I did only a quick test on Mac (successful after working out some stupid bugs), not sure how well it will work in Windows. I might have some time on my lunch hour tomorrow to give it a quick try. I'm worried mostly about loading the buffers -- I've seen Windows drop UDP messages under heavy traffic, where I don't think I've ever seen that on my Mac.

Unfortunately, things have been... complicated... here lately and I won't be able to attend. It would have been fun but under the circumstances, I couldn't possibly have arranged it.

I'd love to hear comments or suggestions, and of course let me know if something doesn't work.

James


chess_music_2.txt
 Description:
SuperCollider chess music update.

Download
 Filename:  chess_music_2.txt
 Filesize:  8.26 KB
 Downloaded:  130 Time(s)


_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Tue Jul 29, 2008 6:33 am    Post subject: Reply with quote  Mark this post and the followings unread

Thanks, James. It'll be a few days until I do another round of playing with it -- I gave my current long-distance employer 2 weeks notice yesterday, and there's something that they want me to hurry up and do. (So of course I am catching up on the Forum first thing!) I want to stay in their good graces, and keep a few hours a week of contracting work after I start teaching in the fall.

I made some changes to my parts of the code as well, changed XML/RPC to UDP because XML/RPC on OSX was having horrible delays when used over a LAN (as opposed to within a single machine). Fixed some bugs, improved my ChucK patch, improved the GUI. If you want that now, I can post it, otherwise I'll wait until I get to try your patch out.

Did the UDP droppage you saw occur within a single machine, or across a LAN? I always run the chess server and the sound generator in the same machine, both to minimize packet loss and to minimize latency, and have not seen a problem (actually, haven't heard a problem). The GUIs can be distributed, and actually have fewer problems with UDP than with XML/RPC/TCP, which should be more reliable because it uses TCP, but the Python XML/RPC library on OSX is rather suspect.

Since you are still tweaking your patch, I'll wait a couple days to see if you post any changes. Will try it out by the weekend at latest, and put it into the next "release."

Have a good week!

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Tue Jul 29, 2008 10:08 am    Post subject: Reply with quote  Mark this post and the followings unread

Cool - I do have a couple of tweaks. I found a bug with the bishop sound and of course the other improvements I mentioned last night.

I tested just now in Windows and all the synthdefs load properly.

I only noticed UDP droppage when filling wavetable buffers with client data using OSC. I could avoid the problem by adding a short pause between buffers, which I guess allowed some buffer to clear. I haven't noticed it during sequencing in Windows at all -- compared to buffer population, where dozens of big datagrams might be sent in a fraction of a second, triggering even 20-30 notes at the same time is relatively cheap.

James

_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Tue Jul 29, 2008 8:30 pm    Post subject: Reply with quote  Mark this post and the followings unread

Maybe another bug?

Doing some more testing tonight, I noticed that my supercollider client is receiving only 0 or 1 for piece type. Even if I bring the bishop out and directly threaten another piece, the bishop synth never gets called -- only pawn or knight.

Or maybe I misunderstood something in the protocol?
James

_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Wed Jul 30, 2008 6:46 am    Post subject: Reply with quote  Mark this post and the followings unread

I haven't seen a problem with this, but you never know whether I broke something. Here's the ChucK code for comparison. It includes a print statement for debugging.
Code:

OscRecv recv;
// port 7401 used by the chess program
57120 => recv.port;
// start listening (launch thread)
recv.listen();

// create an address in the receiver, store in new variable
recv.event( "list, i i f f f f i i i i i i" ) @=> OscEvent @ oe;

second => now ;

// infinite event loop
while( true )
{
    // wait for event to arrive
    oe => now;

    // grab the next message from the queue.
    while( oe.nextMsg() )
    {
        int bank, osc, player, piecetype, relationship ;
        int otherplayer, otherpiecetype, movenumber ;
        int piecediff, attacker, attackee ;
        float freq, phase, leftampl, rightampl ;

        // getFloat fetches the expected float (as indicated by "i f")
        oe.getInt() => bank ;
        oe.getInt() => osc ;
        oe.getFloat() => freq ;
        oe.getFloat() => phase ;
        oe.getFloat() => leftampl ;
        oe.getFloat() => rightampl ;
        oe.getInt() => player ;
        oe.getInt() => piecetype ;
        oe.getInt() => relationship ;
        oe.getInt() => otherplayer ;
        oe.getInt() => otherpiecetype ;
        oe.getInt() => movenumber ;
        <<< "OSC:", bank, osc, freq, phase, leftampl, rightampl, player,
        piecetype, relationship, otherplayer, otherpiecetype,
        movenumber >>>;

Here is a trace from ChucK along with some comments I've added. This is an initial move of white's queen's pawn forward two spaces. There are lots of supporting relationships on this.

I suspect you are using the "player" field (black or white) instead of the "piecetype" field. Player will always be 0 for white or 1 for black in chess, although the intent is to support other games with more players.

The 5 fields in the protocol:

PLAYER PIECE RELATE OPLAYER OPIECE

are ordered that way so you can read left to right while debugging, e.g.,

white queen supports white pawn

as in the comments below.
Code:

$ chuck --dac2 chorusmanytones.ck
OSC: 0 13 247.500000 0.000000 0.083074 0.020769 0 0 -2 -1 -1 1 (WHITE PAWN MOVED -- NO RELATIONSHIP
OSC: 0 13 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
THAT -4.0 IS A DEBUG TRACE IN THE PHASE SLOT I USED TO TRACE
PACKETS. IT DOESN'T HURT ANYTHING.
PREVIOUS PAWN SILENCED HERE.
OSC: 0 14 82.500000 0.250000 0.000000 0.000000 0 0 2 0 4 1 WHITE PAWN SUPPORTED BY WHITE QUEEN
OSC: 0 14 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0 PREVIOUS SILENCED
OSC: 0 26 165.000000 0.000000 0.020769 0.005192 0 4 0 0 5 1 WHITE QUEEN SUPPORTS WHITE KING
OSC: 0 15 556.875000 0.250000 0.020769 0.005192 0 4 0 0 2 1 WHITE QUEEN SUPPORTS WHITE BISHOP
OSC: 0 19 82.500000 0.000000 0.020769 0.005192 0 4 0 0 0 1 WHITE QUEEN SUPPORTS WHITE PAWN
OSC: 0 20 371.250000 0.250000 0.020769 0.005192 0 4 0 0 0 1 ANOTHER ONE
OSC: 0 26 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
SILENCE THE PREVIOUS SIMULTANEOUS CLUSTER OF NOTES . . .
OSC: 0 19 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 20 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 15 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 21 649.687500 0.000000 0.002077 0.008307 0 5 0 0 0 1 WHITE KING SUPPORTS WHITE PAWN
OSC: 0 22 185.625000 0.250000 0.002077 0.008307 0 5 0 0 2 1 WHITE KING SUPPORTS WHITE BISHOP
OSC: 0 0 550.000000 0.000000 0.002077 0.008307 0 5 0 0 4 1 WHITE KING SUPPORTS WHITE QUEEN
OSC: 0 1 550.000000 0.250000 0.002077 0.008307 0 2 0 0 0 1 WHITE BISHOP SUPPORTTS WHITE PAWN
OSC: 0 27 132.000000 0.000000 0.002077 0.008307 0 0 2 0 1 1 WHITE PAWN IS SUPPORTED BY WHITE KNIGHT
OSC: 0 0 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
SILENCE PREVIOUS CLUSTER
OSC: 0 1 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 27 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 21 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 22 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 23 412.500000 0.250000 0.041537 0.010384 0 2 0 0 0 1 WHITE BISHOP SUPPORTS WHITE PAWN
OSC: 0 8 41.250000 0.000000 0.041537 0.010384 0 1 2 0 3 1 WHITE KNIGHT IS SUPPORTED BY WHITE ROOK
OSC: 0 8 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 23 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 9 275.000000 0.250000 0.000000 0.000000 0 3 0 0 1 1 WHITE ROOK SUPPORTS WHITE KNIGHT
OSC: 0 2 220.000000 0.000000 0.000000 0.000000 0 3 0 0 0 1 WHITE ROOK SUPPORTS WHITE PAWN
OSC: 0 9 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0
OSC: 0 2 -1.000000 -4.000000 0.000000 0.000000 -1 -1 -2 -1 -1 0

The Python generator triggers off of both piece types and inter-piece relationships. My ChucK patch does the same, for example giving more FX weight to little-attacks-big attack relationships than the other way around. There is certainly nothing wrong with keying primarily off of the piece types, though. You've got two of them, the mover and the target of the relationship, although if there is no receiver (always the case for the most recently moved piece if it has no relationships, such as a pawn-to-king-4 initial move), then the receiver player and piecetype are both -1 for unknown.

Hope this helps Very Happy

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Wed Jul 30, 2008 7:54 am    Post subject: Reply with quote  Mark this post and the followings unread

I see... the protocol as described here says bank, osc, freq, phase, leftamp, rightamp, piece type, player but your code flips player and piece type.

Documentation is out of sync with the code then Smile

I tracked down another problem this morning. When a king is put in check, lots of oscillators get triggered for just a millisecond or two. That's causing "zombie nodes" in sc that never get released, eventually overwhelming the CPU.

I can work around it by delaying all releases by, oh, I don't know, 20-30 milliseconds. But the shortest of my envelopes have a 10ms ramp-in so it seems to me that notes are generated that are not perceptually significant.

Is this intended? What does it sound like in ChucK?

James

_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Wed Jul 30, 2008 8:35 am    Post subject: Reply with quote  Mark this post and the followings unread

dewdrop_world wrote:
I see... the protocol as described here says bank, osc, freq, phase, leftamp, rightamp, piece type, player but your code flips player and piece type.

Documentation is out of sync with the code then Smile

Thanks. I changed the order to facilitate debugging traces, and missed the docs. I'll fix the doc. Always good to have another set of eyeballs on the problem! Shocked

Quote:
I tracked down another problem this morning. When a king is put in check, lots of oscillators get triggered for just a millisecond or two. That's causing "zombie nodes" in sc that never get released, eventually overwhelming the CPU.

I can work around it by delaying all releases by, oh, I don't know, 20-30 milliseconds. But the shortest of my envelopes have a 10ms ramp-in so it seems to me that notes are generated that are not perceptually significant.

Is this intended? What does it sound like in ChucK?

James

It sounds like hell, and the poorer the sound generator, the better the effect! I'll take a look at stretching out the timing on this.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Wed Jul 30, 2008 8:39 am    Post subject: Reply with quote  Mark this post and the followings unread

The PROTOCOL_2.txt description is up to date and has the correct ordering for the OSC parameters. I am attaching the latest update from maybe a week ago, to make sure we are in sync.

I won't get to look at the check noise timing for a few days.

Have fun!


EDIT: chess.zip attachment remove, see updated code from August 2 for latest version.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

Last edited by Acoustic Interloper on Sat Aug 02, 2008 10:23 am; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Fri Aug 01, 2008 7:15 am    Post subject: Reply with quote  Mark this post and the followings unread

Here's an update from my side. I haven't tried it with the latest python stuff yet, though. Reverb is working now, synths are correctly chosen by piecetype, and there is a little mixer to tweak synth and reverb levels.

I haven't done the King sound yet. But, I did delay note releases so there are no more stuck synths. (It was easy because of message timestamps to the scsynth server - where the note onsets go out with a latency of 0.2, releases now use 0.3 so every note must be at least 0.1 second. This is easy to adjust once the game server fixes the too-short notes.)

hjh


chess_music_2.txt
 Description:
SuperCollider chess music code, 1 August 2008.

Download
 Filename:  chess_music_2.txt
 Filesize:  11.19 KB
 Downloaded:  109 Time(s)


_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Fri Aug 01, 2008 7:49 am    Post subject: Reply with quote  Mark this post and the followings unread

Thanks, James! I'll try it out and copy it into the EM2008 distribution (as it were) this weekend.

I took a look at the CHECK! Python code the other day, and the sequence of events should be:

1. Shut off all currently played notes.

2. Delay according to tempo.

3. Turn on two notes for every piecetype, one for support and one for conflict, across 5 octaves. This would give 2 x 6 x 5 = 60 simultaneous notes.

4. Delay according to tempo.

Repeat above until a move out of check is made.

I would expect all manner of clipping. I do scale the amplitudes back so that their sum should not exceed unity gain by much! So, I expect that it would be ugly, but once all 60 notes are turned on, I wouldn't expect any timing difference from a non-check board configuration. I'll do some debugging, but I am glad you found a workaround.

There was a ChucK release the other week, and a friend of mine at work said the former ChucK release sounded better (i.e., uglier) on CHECK than the new ChucK release.

Have a good weekend.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Sat Aug 02, 2008 10:18 am    Post subject: Reply with quote  Mark this post and the followings unread

Sounds very nice! I like the contrasts between my ChucK tone generator and your SC generator! They probably reflect differences between your approach to composition and mine, and between our perspective on the chess pieces/relationships/moves mapping to music, and between ChucK and SC. Obviously, I get bored with my own compositions after a while, and it's a nice change to listen to yours while playing. I am probably going to hook up 2 computers at some point, one running ChucK and one SC, and send OSC packets to both, just to see how they sound together.

I fixed the King CHECK panic sound timing issue. But, you should definitely KEEP your code in place for dealing with notes that are too short in time. The player can set both the main tempo scaling factor and the factor that scales application of the users' move speed to tempo, to 0.0, so essentially SC or ChucK or Max can get hammered constantly with notes that steal working oscillators in a bank. They should not crash in this condition. They are free to go silent or drop notes or whatever is needed in this case, and obviously if the player does not like what he or she hears, the player can increase these timing scale factors. I played your SC patch for a while with these both set to 0.0, and it sounded just fine!

The CHECK bug itself was due to the fact that I was asking for more oscillators at a time than exist in a bank. When this happens, the code looks at running oscillators that have sustains set by the player, and steals the one with the lowest sustain. Since by default the sustain is 0, it would always just keep stealing the same oscillator, effectively turning it on and off at different frequencies. I put a fix in testg() only (which runs plugin pannerSustainInterpreter.py) to run only as many oscillators as it has in a bank at one time. It then waits according to tempo, zeroes all those oscillators, and does it again with some other notes. I also added some randomness here to make CHECK more dissonant.

I did not change this behavior in the other plugins, and, as noted above, it's a good idea for the sound generator to be able to deal with very rapid notes on-then-off, even if it deals with them by dropping them. I still occasionally see one of these appearing from somewhere else, presumably when some oscillator is arbitrary selected for reuse. Besides laziness on my part, other people may write plugins, possible some of my future students, so it's probably a good idea to be prepared for this condition.

You can now start this by entering './gamestart' in one terminal window from within the chess/chess/ directory, and entering './guistart' in another. The guistart can optionally be followed by an IP address if the game server process is on another machine on the lan, e.g., './guistart 192.168.1.3'. I plan to have two GUI terminals set up at EM2008.

The updated code is attached, including your patch. Thanks again! Have fun.

EDIT: See August 11 post below for the EM2008 Festival update of the chess program.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

Last edited by Acoustic Interloper on Mon Aug 11, 2008 5:57 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 5978
Location: San Antonio, Tx, USA
Audio files: 258

PostPosted: Sat Aug 02, 2008 11:40 am    Post subject: Reply with quote  Mark this post and the followings unread

i sent the following to the USCF:


Quote:
Hi,

Some friends and i in the music community have written a program that plays sounds in response to a game's tension, or whatever. Would you like to hear some games?

Les

_________________
"Let's make noise for peace." - Kijjaz
Back to top
View user's profile Send private message Send e-mail
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Sat Aug 02, 2008 1:00 pm    Post subject: Reply with quote  Mark this post and the followings unread

Thanks. It'll be interesting to see if anyone takes an interest.

I'll probably write a Scrabble server for this at some point. I wonder if I am allowed to say Scrabble(tm)?

A friend of mine pointed me at XBoard and GNU Chess. The former is a GUI that can talk to the latter; my friend thinks that they use stdin/stdout rather than pipes or sockets, but whatever they use, one could undoubtedly insert an interceptor to spy on the game and generate music. Presumaby this would entail both human-vs-human and human-vs-machine games.

I am teaching a grad course in UNIX System Programming for the first time this fall. Depending on the difficulty, I suspect I will have students integrate those above 2 programs with this chess-to-music program as one of their major programming projects.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Sun Aug 03, 2008 9:23 am    Post subject: Reply with quote  Mark this post and the followings unread

With this update, I think I'm going to have to consider my contribution finished. Each piece now has a "conflict" variation (using a ringing filter + distortion for a nastier sound), and the king makes noise now too.

(By the way, for the next release -- supercollider reserves the .sc extension for class library files. We've been using .scd for plaintext code files to run interactively, but .txt works just as well.)

I finally got around to listening to the MP3 game posted a while back -- interesting difference indeed. I get the feeling you're doing something different with sending a new frequency to an already-active oscillator. Right now I'm dropping the old synth and starting a new one for the new frequency (re-attacking the note). It wouldn't be hard to keep the same note but just change frequency. No time to try it at the moment, though...

James


chess_music_sc.txt
 Description:
Last one?

Download
 Filename:  chess_music_sc.txt
 Filesize:  10.83 KB
 Downloaded:  122 Time(s)


_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Sun Aug 03, 2008 11:33 am    Post subject: Reply with quote  Mark this post and the followings unread

dewdrop_world wrote:

I finally got around to listening to the MP3 game posted a while back -- interesting difference indeed. I get the feeling you're doing something different with sending a new frequency to an already-active oscillator. Right now I'm dropping the old synth and starting a new one for the new frequency (re-attacking the note). It wouldn't be hard to keep the same note but just change frequency. No time to try it at the moment, though...

James

I don't know how much you got to play with the other, config parameter window that comes up. That's where a lot of the MP3's variability came from. I find myself playing those config parameters about 1/2 the time.

I hope you saw that window. I've been meaning to ask an OSX UI question about that. On my Macbook Pro if I have the OSX dock visible along the bottom margin of the screen, the 2 Python windows (chess board and config param window) are locked to the top left corner of the screen, one on top of the other, so you can only see one of the two at a time. If I move the OSX dock to the right vertical margin, then they become unglued from the top left corner, and I can move them around. I usually hide the OSX dock at that point to make more screen space.

Is there a simpler way to do it? It took some trial and error to figure this out.

Anyway, thanks for the update. I can actually double the number of oscillators used for CHECK, because right now I am using all odd bank generators (conflict), so I can double the number by adding the other bank. I'll play around with this with the SC and ChucK tone generators to see how it goes before I post the official EM2008 copy, including your upgraded SC patch with the correct file extensions.

One other note I should make for anyone writing a tone generator, is to make sure to have a compressor or other limiter, in case the game plugin swamps the tone generator with amplitude. Given the unknown nature of user plugins, watching out for excessive amplitude and 0-duration notes are probably good ideas. I used to have to tear my headphones off regularly while developing the ChucK patch, until I added a compressor to squash noise bursts!

I'll probably post the EM08 copy next weekend. Have a good week.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Sun Aug 03, 2008 12:11 pm    Post subject: Reply with quote  Mark this post and the followings unread

dewdrop_world wrote:
I get the feeling you're doing something different with sending a new frequency to an already-active oscillator. Right now I'm dropping the old synth and starting a new one for the new frequency (re-attacking the note). It wouldn't be hard to keep the same note but just change frequency. No time to try it at the moment, though...

James

Come to think of it, there are conditions where my ChucK patch slides from the old pitch to new pitch on a change to a running oscillator, an attempt at portamento. I think this happens on an attack relationship above a certain strength-differential threshold, with the note change timing tied to the pieceStrengthDifference. Also the bishop and rook have a LFO applied to their frequency when they are involved in an attack of a stronger piece. You might be hearing some of that

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Mon Aug 11, 2008 5:27 pm    Post subject: Official EM2008 copy Reply with quote  Mark this post and the followings unread

Attached is the official electro-music 2008 festival copy of the chess-to-music program to be demoed Thursday evening. See above for background, README for instructions. Thanks to all who helped! I'll let you know how it goes.

EDIT: Updated README.txt in this copy. testh() is the latest, fanciest plugin configuration. Gotta go pack for em2008.


chess12aug_em2008.zip
 Description:

Download
 Filename:  chess12aug_em2008.zip
 Filesize:  347.58 KB
 Downloaded:  129 Time(s)


_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Mon Aug 18, 2008 12:12 pm    Post subject: Reply with quote  Mark this post and the followings unread

Attendance at the chess game demo was pretty light, late Thursday evening, although I did get three people willing to play who were interested in what was going on, including both ChucK and SC sound generators. I think just setting this up as an installation piece would have been better, but I needed the equipment for other activities on other days.
_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Mon Mar 16, 2009 4:08 pm    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
Dear Dr. Dale Parson:

On behalf of the NIME 2009 Program Committee, I am delighted
to inform you that the following submission has been accepted
to appear at the conference:

Chess-based Composition and Improvisation for
Non-musicians

Your work has been selected as a Poster (2 pages in the
Proceedings).

The reviewers worked very hard to provide comments on
all the submitted papers. Please repay their efforts by
following their suggestions when you revise your paper.

Email will follow with instructions for submitting a final
manuscript for publication. We have decided to go with the
NIME tradition where authors retain copyrights, but we will
be asking you for explicit permission to publish your paper
and to make papers freely available online.

The reviews and comments are attached below. Again,
try to follow their advice when you revise your paper.
REVISED POSTER SUBMISSIONS ARE DUE APRIL 3.

Congratulations on your fine work. If you have any additional
questions, please feel free to get in touch.

I had written a nice acknowledgements section with everybody who participated in this thread getting an honorable mention. But with the 6 page paper now at 2, I'll guess they'll have to go. Thanks in any case -- you know who you are.

This conference is a tough nut to crack, so getting a poster session is an accomplishment. I'll probably get a demo session; not sure. I'm excited.

My Java programming class is working on generating music from last semester's students' on-line Scrabble game that they wrote. Each word is a chord, with each tile being a note, with various config parameters determining block chord vs. arpeggios, what scale to use, etc. We're generating MIDI Sequences using a Java library. It's going quite well.

I'll post an example when it matures, probably in summer.

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 20536
Location: The Netherlands, Enschede
Audio files: 147
G2 patch files: 318

PostPosted: Mon Mar 16, 2009 4:22 pm    Post subject: Reply with quote  Mark this post and the followings unread

Ah, good news! And looking forward to examples from the scrabble machine.
_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 1639
Location: Berks County, PA
Audio files: 35

PostPosted: Thu Apr 02, 2009 7:01 pm    Post subject:
Subject description: James Harkins in Sunny Pittsburgh in June
Reply with quote  Mark this post and the followings unread

I see that I am not the only person from this thread who will be attending NIME2009. Way to go, Dew Drop! Are you staying for the whole shebang? I'll be driving out the 3rd from Philly area, maybe with my son Jeremy along with me. I got 2 pages in the proceedings and a poster session that may become a hands-on demo of the chess game and some work my students and I have been doing with Scrabble in Java generating MIDI.

See you soon!

_________________
When the stream is deep
my wild little dog frolics,
when shallow, she drinks.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic Moderators: elektro80
Page 6 of 7 [155 Posts]
View unread posts
View new posts in the last week
Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Mark the topic unread :: View previous topic :: View next topic
 Forum index » Discussion » Composition
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
e-m mkii

Please support our site. If you click through and buy from
our affiliate partners, we earn a small commission.


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use