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
  Rob Adventures in Sound
Please visit the chat
 Forum index » DIY Hardware and Software » Developers' Corner
Keyboard controlled terminal MIDI sequencer
Post new topic   Reply to topic Moderators: DrJustice
Page 1 of 1 [1 Post]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
Antimon



Joined: Jan 18, 2005
Posts: 3619
Location: Sweden
Audio files: 254
G2 patch files: 95

PostPosted: Mon Sep 09, 2013 12:29 pm    Post subject: Keyboard controlled terminal MIDI sequencer Reply with quote  Mark this post and the followings unread

So got this idea stuck in my mind that I needed to do a terminal based midi sequencer frontend in node.js. Not sure how far I will go with this, but I thought I'd post the state of it now, maybe it will give someone crazy ideas if nothing else. Smile

What you see in the screenshot below are three compact, vertical piano rolls. Each displays one octave (C to the left), but you can add notes in different octaves by moving the octave selector below each piano roll. Each octave has its own colour. You can add more than one note on each line. I haven't worked out how to display a note when several of that note (in separate octaves) have been entered.

You can scroll up and down, a bit like a tracker. There is a numbering to the left of each piano roll, which counts from 11 to 88 (omitting zeroes) for every fourth row, and then starts all over again. The first digit is only show on every sixteenth row, to help with measuring bars. This will be configurable.

You can use event signals to stop a track or have it start other tracks. <c to the right of a line in the piano roll means that the track will stop and wait for some track to trigger the "c" event. >c means that the track will trigger the "c" event immediately when it reaches that row.

There is no mouse support - everything is done using the computer keyboard. You create or switch to a track using <shift>-<letter> (e.g. <shift>-c switches to the c track, or creates it if it didn't exist). You move up and down a piano roll using cursor keys or page up/down. You add notes using keys a,w,s,e,d,f,t,g,y,h,u,j (laid out like a piano keyboard). You add events by typing &lt; or &gt; followed by an event character.

What remains to be done:

Actually sending midi notes! I'm not planning to do this in my node.js program since (though I haven't really checked around) I don't expect it to have good enough timing. My plan is to make a backend in ChucK, and use its solid timing to generate MIDI, communicating with my node.js frontend using OSC. Obviously this is a huge project in itself.

Also, I haven't really implemented any kind of actually running the sequencers yet, I've focussed on the editing. Still, how hard can that be? Wink

Handling more tracks than the terminal width can manage. I'll probably add some kind of horizontal scrolling mechanism.

Hm there's probably loads more. Maybe that can do for a first version (in the utopian future where I actually finish this thing).

This currently runs in linux. I started out in Windows, but all the junk I needed to install (Visual Studio, .net crap) put me off. Node.js started out as a linux thing, and it works fine there. A big reason for this project is that I wanted to mess around with node.js, which seems to be a fine platform.


pianoroll screenshot.png
 Description:
 Filesize:  23.36 KB
 Viewed:  407 Time(s)

pianoroll screenshot.png



_________________
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
Display posts from previous:   
Post new topic   Reply to topic Moderators: DrJustice
Page 1 of 1 [1 Post]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software » Developers' Corner
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
mps board

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