Paul From Rinse,Repeat is getting together for an online live jam for the winter solstice. The only problem we have is how to synchronize all of the midi instruments to run off of one clock for the performance. Does anybody know how this could work?

Is this even feasible with current technology? Latency in a sound card driver is nothing in comparison to latency over the net.

I am quite interested in this problem because, having worked with programmed audio delays in some depth, I am interested in a possible performance model based on using the delays of the net in composing music. At present this is a rough draft of an idea that I have been thinking about over the last year.

This comes from a background of using delays that are multiples of finger picking speeds (finger-to-finger time) in my banjo and guitar finger picking, a technique I used on Saturday at em08, that I refer to half-jokingly as 320 millisecond rounds. Part of the act of composition is finding finger patterns whose accents and harmonies line up in interesting ways when lined up with accents and harmonies some number N of milliseconds in the past (and future) with accents and harmonies that occurred then (or will be occuring).

Extrapolate this to two players over the net. What I play now arrives at you in the future, and what you play now arrives at me in the future. So, what you play has to work rhythmically and harmonically with what I played in the past (which arrives as you play), and with what I will play in the future (since your playing comes back to me later). Thus, the Internet acts as a big, and perhaps difficult to control delay line. Actually, perhaps not too difficult, if we can always guarantee that packet communication does not exceed the programmed delay; in that case, the receiving computer can just wait out any remaining delay after samples arrive in a stream before using them. The dynamics are the same, whether you are streaming audio or simply MIDI, although of course MIDI is less voluminous and bandwidth-consuming.

Note that no two performers/listeners will hear the same piece!!!!! I will hear my present against everyone else's past, and likewise for everyone else. This is the aspect of this model I find most interesting -- superpositional composition and performance. The composition is a superposition, across time, of the distinct performance that each of us hears. This is the heart of the composition / performance research problem that interests me, and it is related to "quantum composition" concepts that I have posted earlier on the forum.

I don't see how you can improvise over the net without making latency part of the compositional structure.

I've been meaning to talk with Mosc about using electro-music.com for a little experiment along these lines. Maybe this is the opportunity. I certainly am interested to hear about anyone who has actually tackled this problem, and the successes and pitfalls that they have encountered. Thanks for opening this topic up._________________When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

I understand the delay line stuff
but would it not be confusing to others especially since the number of performers online could vary from jam to jam?
keep me in the looooooooooop.
m_________________"I'm the transmitter' I give information."
"You're the antenna,catch the vibration."
>>> Kraftwerk Radioactivity<<<

I think it could work for music that is slowly evolving and doesn't require real time adjustments or reactions.

Even some amount of real-time adjustment would be possible between two people. Imagine that you and I are jamming. I shoot you a phrase. You get it, then shoot me one back. We are improvising in a slow time frame. Real-time doesn't necessarily mean fast or immediate, it just means (at least to me) that the piece is not 100% scripted/composed.

You are right, it would be slowly evolving, but it would also be real time. Just more gradual. The concept of time changes from what we are used to. Distributed time.

mtvic wrote:

I understand the delay line stuff
but would it not be confusing to others especially since the number of performers online could vary from jam to jam?
keep me in the looooooooooop.
m

Let's suppose we know the upper bound on the delay time is 1 second. Let's suppose we agree that some sound will pop out once a second -- maybe it's 1 note, or something bigger like a chord or an arpeggio or phrase. So, I get everybody else's sound (however it is structured) from 1 second ago as I play my sound of this second. This "relativistic perspective" is similar for all people.

It needn't be confusing. It can even be improvisational. Let's say we agree on accents and loose harmonic structure. Given those one second delays, let's say every four we have an accent. If we all hit an accent at second 3, then at second 4 I will get everybody else's accent, nicely lined up, EXCEPT MY OWN (which I hit at 3). That's interesting! Maybe it is confusing

I am already doing this at a 160 millisecond level with my fingers and ears, and there are some multiples that my brain can entrain on. I can play while subconsciously lining up what that note will hit against in the future, when re-played via ping-pong delays. There are other sets of delays that I can program that I cannot sync my nervous system to, that sound like mush *until I change my finger picking pattern*. I need more time to practice.

This would be the same, but at a coarser time scale, with more people.

I think someone needs to right us a canon. Not all the notes, but the basic rhythmic and harmonic structures.

Think of singing a song in rounds. Suppose the delay between everyone is one verse. So, you sing verse 1, she sings verse 2, I sing verse 3, and he sings verse 4, all at the same starting time. At the end of that verse we rest.

You then hear verse 2, 3 and 4.
She hears verse 1, 3 and 4.
I hear 1, 2 and 4.
He hears 1, 2 and 3.

In fact, we could loop our own verses back as well, so that each of us hears all 4 verses superimposed, i.e., we all hear the same thing.

That may be a degenerate, special case, but I think it's an interesting one. we all play for an interval, then sit back and and rest and listen for an interval. Then we play. Then we rest and listen. It's exactly what we do with these posts, except now we use sounds instead of words, and try to achieve a steady rhythm!

Too bad I have to start a new job tomorrow. I know where my head is going to be!

Who's good at writing canons?_________________When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

Patterns are to be played consecutively with each performer having the freedom to determine how many times he or she will repeat each pattern before moving on to the next. There is no fixed rule as to the number of repetitions a pattern may have, however, since performances normally average between 45 minutes and an hour and a half, it can be assumed that one would repeat each pattern from somewhere between 45 seconds and a minute and a half or longer. It is very important that performers listen very carefully to one another and this means occasionally to drop out and listen. As an ensemble, it is very desirable to play very softly as well as very loudly and to try to diminuendo and crescendo together. Each pattern can be played in unison or canonically in any alignment with itself or with its neighboring patterns. One of the joys of IN C is the interaction of the players in polyrhythmic combinations that spontaneously arise between patterns.

I think the two major problems to solve in trying to do this as an experiment are:

1. Having a loose canon structure along the lines of In C, where we can interactively evolve the realization of the piece, and

2. Some software infrastructure to sync playing up at each node. We don't even need to share a common clock, as long as our milliseconds are all of the same length. Once a second (or whatever time granularity) my computer collects everybody else's messages and spits out a sound, with which I play. It doesn't matter if my clock is 40 milliseconds off from your clock, because you don't hear my sound when it comes out, and I don't hear yours.

I don't think we'd want to do MIDI. Open Sound Controlhas an extended mode that supports timestamped bundles. You can ship a MIDI sequence as a bundle if you like. On each computer we'd have to have a server process running that would take an incoming OSC bundle and release it as a stream of MIDI messages (or similar) at the prescribed time. A lot of music tools cannot handle OSC bundles, BUT with each computer we could have a process running that essentially unbundles the bundle and "releases" its notes to a MIDI channel or an no-bundle OSC channel at the appropriate time. Also, when you perform, a "bundler" would do the inverse, bundle up your messages and broadcast them out to everybody else's unbundlers.

When I had my interview in march for my new professor job that starts tomorrow, the Provisional Assistant Dean (the Dean was busy) asked me what I saw myself doing in 10 years. My wife says I should have answered, "Drinking shots down at Shorty's!" But, in fact, I talked about this idea, and the more general idea of superpositional compositional structure. I don't know if it made any sense, but at least I got the job!

Got two days of new faculty brainwashing tomorrow and Wednesday, and then 4 computer science courses starting Monday for which I need to prep some lectures, but I am going to think about this in those long meetings tomorrow, and try to sketch out an architecture. Somebody else can think about writing a canon. Make it something we can repeat for a long time, but nondeterministic. maybe we should just play "In C"!!! Worldwide distributed In C. Wouldn't that be something?

My wife just walked in and gave me that, "Now what are you getting yourself into?" look. Guess I;'d better go sleep and prepare to earn that daily bread. Good night._________________When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

I don't see how you can improvise over the net without making latency part of the compositional structure.

There is some software out there doing that, it delays sound till the start of a bar I think .. I forgot how and what exactly but it has been mentioned on the forum ... a year ago or so?_________________Jan

all of these ideas seem to be getting somewhere. The delay software could be cool, but we obviously have to figure out what it is called and exactly how it works before it can be considered. I think my original idea to use the same midi clock is totally out of the water, but I like the progressive idea with everyone playing on their interval... that could be a good way to get started and work the bugs out.

P.S. my brother told me I'm stupid and that this impossible... lets prove him wrong with the recording of our first jam

Since the inherent latency of the Internet prevents true realtime synchronization of the jam2, and playing with latency is weird (and often uncomfortable), NINJAM provides a solution by making latency (and the weirdness) much longer.

Latency in NINJAM is measured in measures, and that's what makes it interesting.

The NINJAM client records and streams synchronized intervals of music between participants. Just as the interval finishes recording, it begins playing on everyone else's client. So when you play through an interval, you're playing along with the previous interval of everybody else, and they're playing along with your previous interval. If this sounds pretty bizarre, it sort of is, until you get used to it, then it becomes pretty natural. In many ways, it can be more forgiving than a normal jam, because mistakes propagate differently.

So, maybe the tools are there. I suggest syncing up with the folks in the ChucK thread. Still sounds like a canon would be an ideal composition for this.

I'll be interested in participating if I get any sleep between now and then. The right side of my brain was washed today . . . tomorrow the left _________________When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

well, I'm thinking we should just try doing individual performances because that sounds like quite an undertaking...from what I understand we could just do podcasts or whatever of live performances by individual artists and groups...I really like the idea of doing an electronic electronic concert with multiple artists. over the internet. It sounds cool. How do we do that, what is it just podcasts or do you need something else to do that live?

A grad student and I are planning to field test NINJAM, and when we've accomplished something we'll report back here. We intend to try it out and also look at bandwidth requirements, in case we need to set up a server on electro-music. But, we have more to do than we have time. Don't wait for us, but if we make any progress, we'll report back here._________________When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

this may not be exactly what you had in mind but I find it very amazing nonetheless.

Thanks for the link, that is really cool! I've been asked to sit in on banjo with the World Percussion Ensemble of the university where I just started teaching (see here -- turns out I pick Afro-Cuban rhythms with my right hand). I'll have to forward this to the music prof.

I haven't forgotten about this thread or NINJAM, by the way. I have not had time to download and try it out, but the current plan is for my son Jeremy who is living 2000 miles away to field test NINJAM with me over Thanksgiving break. I'll post the results here after the test run._________________When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

Hello all, Paul from R,R. here. Not to be a glass half empty kinda guy, but it would appear that a synchronization jam for next month is not possible. However, I hope to be able to organize a series of concerts to stream. Failing that, I propose that at least some people from the area (Delaware Valley) meet up somewhere and we can broadcast some shows and some improv action. I'll be in talks with Mike G in regards to this topic. If all else fails, we'll shoot for another date.

Hello all, Paul from R,R. here. Not to be a glass half empty kinda guy, but it would appear that a synchronization jam for next month is not possible.-p-

I don't know about that. I just download NINJAM and it seems to work, although I didn't have anybody to try it out with. My son Jeremy and I are going to try it later this week.

Assuming that we can get it to work and its performance is satisfactory, I think what we ultimately ought to go for is a NINJAM server process running on the electro-music server, perhaps requiring use by registered users. The NINJAM server farm on the NINJAM site allows anonymous connections on some ports, but others bounce you off if you try, so clearly some of their server ports require user logins.

Below is a copy of the email that I just sent Jeremy. I'll post again later this week when we get to test it out.

Dale
---------------------
I just installed ninjam client program on the alienware pc and also the mac. I didn't have anybody to jam with, but it appears to work easily. Also, I scanned it for viruses on the pc.

I connected to test.ninjam.com:2049 and that seemed to work. When I connected with my Alienware & guitar plugged in, there was nobody else on. When I connected with the Mac (no instrument connected), there was 1 guy on, and I could hear his guitar briefly. There is also a chat panel.

My advice is to install it, connect to a server to see how to use it, and then sync with me so we can try it out when you have free time. The Mac user interface is a little different from the PC. You have to add an input channel for your input, and you may have to set your audio I/O preferences. Also, you can mute individual channels from other players.

To change the tempo, you have to "!vote bpm NUMBER" into the bottom chat text entry line, for example "!vote bpm 100" to get 100 beats per minute. I guess this determines the latency from another player's note until I hear it.

I may give you a call in a bit, but I thought I'd send this first._________________When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

The verdict from tonight's trial of Ninjam is not so good. Audio travel time from Albuquerque, New Mexico (there) to southeast PA (here) was around 8 seconds, from here to there was almost (but not quite) double that, and it was not a function of the metronome speed, as far as we could tell. Basically, random delay.

I don't see how it could do this syncing properly. I have not looked at the client software source code, but, even if it sends timestamps along with the audio data, they would be timestamps in relation to what? The idea, as I understand it, is to have the receiving client add in the remaining needed delay to get the output at the far end to be a multiple of the time for a measure, derived from the metronome. But, if there's no way to calculate the sender-to-server and server-to-receiver network delays, how would the receiving client software know how much additional delay to add?

Cheesy, kind of fun, like a cheesy FX box, but ultimately, not very good. It was nice to hear Jeremy's bass playing after several months away, and it was good for a laugh.

There has to be a way to sync these clocks. Would Global Positioning Satellites be a way to do it? Triangulate not only for position, but also for time? I suspect that might be a way to do it. In fact, it probably wouldn't hurt to get the server on the same time base as well.

This is good news for me, in a way, because I was hoping to find a research project here, and this might be a good one: Using GPS signals to sync real time multimedia (initially audio) collaborations.

The client NINJAM software is open source. Not sure about the server. So, it provides an interesting starting point. Looks like not much has been done with it in several years.

I won't get to the research aspect of this until next summer. But, I think the idea is viable. The implementation is not there yet.

You could sort of jam, with minimal harmonic motion, but essentially, there is no sync in this stuff. Not so promising for a winter solstice jam in its present state, I'm afraid._________________When the stream is deep
my wild little dog frolics,
when shallow, she drinks.

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

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