electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
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 
 Forum index » Discussion » Composition
I want to make my own (software) sequencer.
Post new topic   Reply to topic Moderators: elektro80
Page 1 of 1 [24 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
Qualium



Joined: Oct 19, 2004
Posts: 33
Location: Australia
G2 patch files: 1

PostPosted: Fri Sep 18, 2009 12:19 am    Post subject:  I want to make my own (software) sequencer.
Subject description: What do I need to know/learn/do/get?
Reply with quote  Mark this post and the followings unread

Hi all,

I'm a long-time tinkerer in electronic music, who has gravitated toward the most versatile end of software and equipment. I use Logic Pro and a NM G2 synth (amongst other products) due to their power and flexibility, and so finding these forums some years ago was natural for me.

However, I'm finding that I'm wanting to be able to do things a that even Logic and the G2 can't do (or have difficulty doing) when it comes to sequencing. What I want to do, vaguely, is to be able create my own structures and interdependent algorithms for laying down and manipulating the midi events within a track, and I don't want to have to deal with some stupid restriction like 'Deep Architecture' or fixed sequencer lengths, or anything else dependent on someone else's limited ideas of what the process of composition involves or requires. It's all a bit hazy, I'm afraid, as it isn't totally clear in my own head what I'm trying to create, but I want to be able to play around an see what I can come up with.

Ultimately, I'd like to be able to have full realtime programmable control over midi events, to be able to create my own UI, control 3rd party plugins and synths with midi output messages, accept midi messages from hardware controllers and other software. You know, the usual stuff - all necessary but not sufficient for my purposes. Mind you I'm not concerned (at this stage at least) with actually creating audio directly - I'm just thinking of the sequencing part.

If I have to learn C++ to do that, then fine - I'm up for it. I've got a head for than kind of thing and I'm motivated. I've already learned the basics of the language, but I could use some suggestions, pointers, or shortcuts if anyone has any to offer.

However, if there's already existing software, or a language, that seems like it could be useful to me, I'd like to know about it. I've checked a few but I haven't found anything that looked quite what I was after, but maybe someone here knows better.


PS I'm not sure this is the best forum in which to post this question, but the Sequencer forum seemed to cover only hardware, and there was no general dicussion forum in the software section.
Back to top
View user's profile Send private message Visit poster's website
Antimon



Joined: Jan 18, 2005
Posts: 4145
Location: Sweden
Audio files: 371
G2 patch files: 100

PostPosted: Fri Sep 18, 2009 9:02 am    Post subject: Reply with quote  Mark this post and the followings unread

Have you checked out ChucK or SuperCollider (both have subforums here)? Sounds like the perfect thing for you. It may be a bit lacking on the graphical interface side, but that can be fixed with a Java app and some OSC communication (or Python or some other high level lanugage with UDP and graphics capabilities).

/Stefan

_________________
Antimon's Window
@soundcloud @Flattr home - you can't explain music
Back to top
View user's profile Send private message Visit poster's website
Qualium



Joined: Oct 19, 2004
Posts: 33
Location: Australia
G2 patch files: 1

PostPosted: Fri Sep 18, 2009 7:04 pm    Post subject: Reply with quote  Mark this post and the followings unread

Antimon wrote:
Have you checked out ChucK or SuperCollider (both have subforums here)? Sounds like the perfect thing for you. It may be a bit lacking on the graphical interface side, but that can be fixed with a Java app and some OSC communication (or Python or some other high level lanugage with UDP and graphics capabilities).

/Stefan

Hmm, OK, I'll have a closer look at those two then. A GUI would be nice as I'd really like the visual cues, so I'll look into the graphics side too, as you've suggested (nice to hear you can do that kind of add-on thing thing). Yeah it'd be much better with a system (or systems) that's most of the way there already - working from scratch might be taking a pretty big bite to chew.
Back to top
View user's profile Send private message Visit poster's website
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 6221
Location: near Austin, Tx, USA
Audio files: 267

PostPosted: Sat Sep 19, 2009 2:08 am    Post subject: Reply with quote  Mark this post and the followings unread

Well, to learn a language you should definitely begin with examples, so yeah you shouldn't start from scratch. Once, however, you have the language basics down, you should feel comfortable creating your SW synth from scratch. If you want to do something innovative, it is unlikely that you will find a pre-existing program for it.

Les

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



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

PostPosted: Sat Sep 19, 2009 8:15 am    Post subject: Reply with quote  Mark this post and the followings unread

Antimon wrote:
Have you checked out ChucK or SuperCollider (both have subforums here)? Sounds like the perfect thing for you. It may be a bit lacking on the graphical interface side...


In SuperCollider, look at TeaTracks or Hadron to learn some GUI tricks. With UserView + mouseDownAction, mouseUpAction and mouseTrackAction, you can go a long way. (But, some users prefer to make complex GUIs in e.g. Processing and interface with SC for the audio/MIDI rendering.)

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
x_x



Joined: May 05, 2008
Posts: 215
Location: mother earth
Audio files: 4

PostPosted: Sat Sep 19, 2009 1:17 pm    Post subject: Reply with quote  Mark this post and the followings unread

Use JUCE to make a VST with C++.

http://www.rawmaterialsoftware.com/juce/download.php
Back to top
View user's profile Send private message
Qualium



Joined: Oct 19, 2004
Posts: 33
Location: Australia
G2 patch files: 1

PostPosted: Mon Sep 21, 2009 5:52 pm    Post subject: Reply with quote  Mark this post and the followings unread

Thanks for the suggestions - highly appreciated. I'll be checking through them bit by bit, but obviously it takes while to learn each system enough to get a decent idea of what it can do.
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 2067
Location: Berks County, PA
Audio files: 89

PostPosted: Mon Sep 21, 2009 7:24 pm    Post subject:
Subject description: A Java alternative
Reply with quote  Mark this post and the followings unread

If you are looking initially at custom MIDI sequencing rather than crunching audio streams directly, I'd recommend Java over C++, largely because the javax.sound.midi library is pretty decent for doing custom sequencing. I used it for my Summer Solstice 2009 Scrabble-to-MIDI generator that my students and I wrote in Java courses over the last year, and I am i the middle of multithreading it so that I can get away from static sequences. I'll have a dedicated thread update a boundless "sequence" as it needs more notes. This sequence is like a stream of MIDI events that keeps flowing.

You can do this sort of thing in ChucK shreds and presumably in Supercollider, but I want to leverage the Java library infrastructure and also the fact that I teach Java anyway in my job. I would like to write a Java wrapper at some point for the SC sound generator process; it's tough to see when I'll have time to do that. I am not dissing music-oriented languages, but there are capabilities in more mainstream languages for which the music languages will always be playing catch up. Best to use the best of both worlds, I think, and Java is pretty decent as long as it needn't do audio-rate processing.

You can stream the MIDI out from a Java process to any synth using MIDI hardware or software pseudo-devices. I'd recommend giving it some thought.

EDIT: You can go to the Java library reference, scroll the upper left list until you see package javax.sound.midi and then surf through the docs. You needn't be a Java programmer to get an idea of what's there.

_________________
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
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 6221
Location: near Austin, Tx, USA
Audio files: 267

PostPosted: Mon Sep 21, 2009 8:02 pm    Post subject: Reply with quote  Mark this post and the followings unread

I've attached a post of the latest Klee Sequencer that I wrote in ChucK. It's a good example of some super-cool sequencing that one can create using any of the software techniques mentioned. I believe the original poster said that a starter program was desired, so here it is.

Les


Klee16.ck
 Description:
The ChucK Klee Sequencer

Download
 Filename:  Klee16.ck
 Filesize:  17.36 KB
 Downloaded:  304 Time(s)


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



Joined: Oct 25, 2005
Posts: 381
Location: San Francisco

PostPosted: Mon Sep 21, 2009 8:04 pm    Post subject: Reply with quote  Mark this post and the followings unread

I made my own step-sequencer on steroids in Max/MSP, and it has been really great to be able to control what's in it. A short description and some screen shots here:
http://www.xfade.com/Gyre

_________________
Chris Muir
http://www.eardrill.com <– My jobby (more than a hobby, less than a job)
Back to top
View user's profile Send private message Visit poster's website
x_x



Joined: May 05, 2008
Posts: 215
Location: mother earth
Audio files: 4

PostPosted: Mon Sep 21, 2009 8:24 pm    Post subject: Reply with quote  Mark this post and the followings unread

I agree with Acoustic, midi in java is a great way to start. There are a few Java midi API's out there (Jmusic & JFugue), but I'd recommend to build your own from scratch to learn the functionality of the midi protocol (in case you don't).

Max/MSP is the easiest way and it's great (also very limited), but it costs like $500 USD... but you can get the open source version of it if you search for "Pure Data."
Back to top
View user's profile Send private message
plagal



Joined: Dec 28, 2007
Posts: 18
Location: South Carolina

PostPosted: Tue Sep 22, 2009 10:38 pm    Post subject: Reply with quote  Mark this post and the followings unread

I wonder if execution speed is a consideration anymore for choosing a language for what the OP wants to do, considering that it can take a lot of processing per tick if he wants to ultimately change, or even replace, the midi data without missing a beat. The faster it is , the more freedom you have to be creative with realtime midi processing - there are already apps that are doing this sort of thing BTW.

Just a thought - I don't know enough to make comparisons, but its worth looking into if you are in it for the long haul.
Back to top
View user's profile Send private message
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 2067
Location: Berks County, PA
Audio files: 89

PostPosted: Wed Sep 23, 2009 5:11 pm    Post subject: Reply with quote  Mark this post and the followings unread

Performance out of Java on run-of-the-mill PCs has been fine for me.
_________________
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
Qualium



Joined: Oct 19, 2004
Posts: 33
Location: Australia
G2 patch files: 1

PostPosted: Wed Sep 30, 2009 11:36 pm    Post subject: Reply with quote  Mark this post and the followings unread

Well, I'm running a G5 Mac dual 2 GHz - getting a bit old these days, but it's been fine for all the music applications I've used so far (and most other stuff too).

Anyway, I've checked out Chuck and I've been messing around with it a bit. Nice - I'll keep doing that. But I'm also getting into Java. Looks good - I get to make my own compiled software, and it doesn't seem as cumbersome as C++. Still, it might take a little while to get something going though. So in which subforum here would you discuss Java programming?

And hey, does anyone know anything about the jMusic Java library? I'm trying to get it going but I having trouble (but then I'm dealing with unfamiliar Terminal crap).

Programming really doesn't seem that far off from the modular synthesis I do on the NM G2, except that I can't say I've developed a taste for staring at code - I do prefer a more graphical representation of systems. But in order to make something work just the way I want it to, I understand that coding is what I'll have to do.

And thanks for all your help and suggestions you're offering here - the thick fog around me is lifting in a few spots, so that sometimes I can see the ground I'm walking on, so to speak, heh.
Back to top
View user's profile Send private message Visit poster's website
Antimon



Joined: Jan 18, 2005
Posts: 4145
Location: Sweden
Audio files: 371
G2 patch files: 100

PostPosted: Thu Oct 01, 2009 3:06 am    Post subject: Reply with quote  Mark this post and the followings unread

I've posted the odd programming topic in Developer's Corner in the DIY section.

jMusic looks pretty cool! I'm tempted to have a go at it. Java is certainly my favourite programming language.

When I hack stuff I tend to treat ChucK as something that I can quickly throw something together to make sound or sequence MIDI/OSC, communicate with my monome or whatever. If I feel like doing a more amibitious project, especially one involving a GUI in some way, I tend to try to do it in Java.

/Stefan

_________________
Antimon's Window
@soundcloud @Flattr home - you can't explain music
Back to top
View user's profile Send private message Visit poster's website
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 2067
Location: Berks County, PA
Audio files: 89

PostPosted: Thu Oct 01, 2009 4:44 pm    Post subject: Reply with quote  Mark this post and the followings unread

Qualium wrote:
So in which subforum here would you discuss Java programming?

Antimon wrote:
I've posted the odd programming topic in Developer's Corner in the DIY section.
/Stefan

I'll start keeping an eye on this corner of DIY. Don't think I've been in there before! (Mostly Composition, Shmooze & Welcome for me!)

Thanks for the link to jMusic. I haven't seen it before, but I'll be teaching 2 sections of Java next spring, and this could be handy!

_________________
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
x_x



Joined: May 05, 2008
Posts: 215
Location: mother earth
Audio files: 4

PostPosted: Fri Oct 02, 2009 11:57 am    Post subject: Reply with quote  Mark this post and the followings unread

I've used Jmusic before. It doesn't seem to work anymore, I think it's because of some java update. Jmusic may work with an older version of Java, so I think.

I recommend using the Eclipse IDE for java.
Back to top
View user's profile Send private message
Acoustic Interloper



Joined: Jul 07, 2007
Posts: 2067
Location: Berks County, PA
Audio files: 89

PostPosted: Fri Oct 02, 2009 2:10 pm    Post subject: Reply with quote  Mark this post and the followings unread

gsanchez wrote:
I recommend using the Eclipse IDE for java.

I second that suggestion!

There may be some useful links from my Java course page in the spring, particularly to the Java library documentation.

_________________
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: Fri Oct 02, 2009 7:27 pm    Post subject: Reply with quote  Mark this post and the followings unread

Antimon wrote:
When I hack stuff I tend to treat ChucK as something that I can quickly throw something together to make sound or sequence MIDI/OSC, communicate with my monome or whatever. If I feel like doing a more amibitious project, especially one involving a GUI in some way, I tend to try to do it in Java.


(SuperCollider is capable of larger, ambitious object-oriented designs and pretty sophisticated guis too.)

_________________
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: 2067
Location: Berks County, PA
Audio files: 89

PostPosted: Fri Oct 02, 2009 8:27 pm    Post subject: Reply with quote  Mark this post and the followings unread

dewdrop_world wrote:
Antimon wrote:
When I hack stuff I tend to treat ChucK as something that I can quickly throw something together to make sound or sequence MIDI/OSC, communicate with my monome or whatever. If I feel like doing a more amibitious project, especially one involving a GUI in some way, I tend to try to do it in Java.


(SuperCollider is capable of larger, ambitious object-oriented designs and pretty sophisticated guis too.)

Hi James.

Based on what I heard of your chess-to-music sound generator in SC, I'd really like to write a Java library to talk to the SC server. Development time is the problem.

For me it would be best of both worlds -- mainstream Java with all of the libraries and the ability for ready access by mainstream student programmers, and excellent sound generation in the SC server. I've recently talked with a dedicated Chucker (who will remain anonymous) who is doing more work in Java because of the benefits of connecting to libraries and frameworks in that language.

_________________
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: Sat Oct 03, 2009 8:56 am    Post subject: Reply with quote  Mark this post and the followings unread

Acoustic Interloper wrote:
Based on what I heard of your chess-to-music sound generator in SC, I'd really like to write a Java library to talk to the SC server. Development time is the problem.


http://www.sciss.de/jcollider/

I'm no great fan of Java (too old-school, too much like C) but I can see why people use it.

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: 2067
Location: Berks County, PA
Audio files: 89

PostPosted: Sat Oct 03, 2009 11:25 pm    Post subject: Reply with quote  Mark this post and the followings unread

dewdrop_world wrote:
Acoustic Interloper wrote:
Based on what I heard of your chess-to-music sound generator in SC, I'd really like to write a Java library to talk to the SC server. Development time is the problem.


http://www.sciss.de/jcollider/

I'm no great fan of Java (too old-school, too much like C) but I can see why people use it.

James

Thanks! Yeah, I teach at the Old School Cool

_________________
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
x_x



Joined: May 05, 2008
Posts: 215
Location: mother earth
Audio files: 4

PostPosted: Sun Oct 04, 2009 12:42 pm    Post subject: Reply with quote  Mark this post and the followings unread

Talking about old school... also check out Common Lisp. It's really fancy.

Well, gotta run I have a C programming mid-term for tomorrow! Laughing
Back to top
View user's profile Send private message
Qualium



Joined: Oct 19, 2004
Posts: 33
Location: Australia
G2 patch files: 1

PostPosted: Wed Oct 07, 2009 10:31 pm    Post subject:   Reply with quote  Mark this post and the followings unread

Thanks a load for all this, everyone - very intriguing. Interestingly, messing with the coding has made me think a bit more about tricks for the NM G2.
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 1 of 1 [24 Posts]
View unread posts
View new posts in the last week
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


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