Music Sequencer / News: Recent posts

New Release - Summer 2002

Despite previous reports of this project being put to rest, a brand new Music Sequencer has hit the streets, including reverse-cued sounds, a rhythm library, and several visual and performance improvements.

Posted by Andrew Rosenfeld 2002-06-23

New Release - Summer 2001

Finally, the work done on Music Sequencer over the summer has been collected into a release. Likely this will be the final version of Music Sequencer, unless someone else wants to take the torch.

Posted by Andrew Rosenfeld 2001-10-15

5-2-2001: Physical reorganization, general polish

Added JavaDoc documentation to designer and composer.
Tested most recent revisions of designer and composer.

Added JavaDoc documentation to designer and composer.

Tried to remove empty directories in CVS and failed. (Agonizing.)
Created designer, composer, and util packages.
Checked in newly packaged code:
All other files in CVS are old, and most of them should be deleted.... read more

Posted by Toby Lael 2001-05-03

Coding Session 4-29

Wrapping up the semester. Not much functionality needed to get done. Just some odds and ends.

Checked in the 'unclick' bug fix. Worked on getting playback position synched with GUI. Got it to work after not the prettiest fixes. ComposerEngine now "suspends" and "resumes" when "stop" and "play" are pressed. Checked in this code. Added code to make color chooser pop up when adding a riff file to the palette. Checked in this code as well. Closed the two bugs fixed.... read more

Posted by Ed Sibbald 2001-04-30

Coding Session 4-25

Making great headway on Iteration 3 even though this was only our second meeting for it. Playback, estimated at 6hrs, is done in 4. Playback Position, also 6hrs, is also done in 4.

Ed and Toby:
Finished up Playback Position with observer and all. Also opened and closed a bug regarding lost selection in the Palette after a color edit. Made plans for adding unclicking. Opened two more bugs in Sourceforge (synching and unclicking).... read more

Posted by Ed Sibbald 2001-04-26

Coding Session 4-22

Worked in the middle of a Sunday for a change. IT worked out well. Colin was mysteriously absent though.

Ed and Jason:
Put row and column headers into their own classes cause they now have added functionality. This will probably change because of the problems we ran into at the end of the session. Buttons clicks on the column header now highlights the column of grid cells. Need to find out when playback position changes in ComposerEngine, because polling it would be a bad idea. Ed talked with Andrew about this and did some investigating on his own. Observer iand Observable are what we want to work with. This will start before we meet again. It's actually one of the Design Patterns. Imagine that!... read more

Posted by Ed Sibbald 2001-04-24

Iteration 3 Planning 4-18

This is going to be our last iteration, so we figured out the final stories we're going to work on to make this a great project by semester end. Here's what we came up with:

1. Playback for Composer estimated at 6 hrs.
- get first bar
- add them up for all tracks
- get second bar (if all goes well)
- add toolbar class with play/stop button
2. Tempo estimated at 1 hr.
- slider and member variable
3. Set Playback Position/Monitor Playback estimated at 6 hrs.
- need GUI elements to tell where playback is
- need way to set playback position
- need to update playback position while playing
- need variable and functions for getting and setting
4. Set Track Volume estimated at 4 hrs.
- volume slider for each track
- functionality added to playback in Engine
5. Save/Load estimated at 2 hrs.
- GUI element
- same as in RiffDesigner... read more

Posted by Ed Sibbald 2001-04-24

Coding Session 4-15

Finished up Iteration 2. Amazing! Only two groups again. It's looking awfully nice, though. Here's the breakdown:

Ed and Toby:
We made Composer look pretty. We added row and column headers to the grid, as well. Added some sparse comments to people know what's going on next iteration. Made PaletteFrame thinner and line up correctly with Composer Frame. Clicking on PaletteFrame's close window button doesn't close it. Later this week I checked in our code with a massive reorganization of our CVS files. RiffDesigner and MusicComposer directories now, not just 'code'.... read more

Posted by Ed Sibbald 2001-04-24

Coding Session 4-11

Getting very close in iteration 2. Only enough work for two groups this time. Is that a good thing?

Ed and Toby:
Finished Load Riff and Edit Riff Color. The colors in the grid now update. Most of our crazy design decisions are finalized and not too ugly. Still need to work on them.

Didn't do crap! Jumped on with Colin and Jason (see below).

Colin and Jason (and the Lazy Customer):
Got Render to WAV a lot closer. Wavs aren't coming out correcly, but they're not getting exceptions any longer.

Posted by Ed Sibbald 2001-04-24

Coding Session 4-8

Continued work on iteration 2. It's coming along nicely, though today was a step backward for one group. Here's what happened:

Ed and Toby:
We broke everything. And I mean everything. We didn't try to compile Composer even once, because we messed it up so much. We worked on getting a decent design, because we were running into a lot of problems that couldn't be fixed. Started copying RiffDesigner desgin with Engine and State. It's looking pretty good, but still very messy. Hopefully it will work.... read more

Posted by Ed Sibbald 2001-04-24

Coding Session 4-4

Keep on chugging on iteration 2 with this Wednesday's meeting. Actually had three gourps this time. Way to go us!

Ed and Toby:
Continued our mad GUI skills with Load Riff. Got it finished pretty quickly and started work on Edit Riff (or Edit Color of Riff). Ran into implementation issues when changing color and color not updating in grid. That's for next time.

System is not completely RhythmEvent based and it's sounds awesome. Started on Volume, didn't check in though. Also noted that a master volume is needed but no plans for it yet. Shouldn't be too hard, he thinks. Fixed a bug, but once again, he didn't tell me which.... read more

Posted by Ed Sibbald 2001-04-24

Coding Session 4-1

This Sunday, April 1st, we met for two hours and got very far into iteration 2. Here's the breakdown:

Ed and Toby:
Worked on finishing up Make Grid Entry story. Works for the most part, but isn't that pretty. Started work on Load Riff. We had trouble with dependancies between palette and composer frame. Starting to hammer them out.

Andrew, Colin, and Jason:
Integrated Rhythm Event into everything. In RiffState, they added gets and sets for all needed values. Fixed a random problem with the file chooser and its constructor being void. Why does java let you do that!? Anyway, they changed the tempo meter to move between 60 and 200 bpm. It looks nice. They closed some bug, but didn't really tell me which one. They also checked all their code in without my help. Yippee!

Posted by Ed Sibbald 2001-04-24

Coding Session 3-28

Started work on the second iteration. Some work was started before today off-the-clock, but not too much. Just enough to give us a good start this Wednesday.

Ed and Toby:
Started work on the Composer. Got about halfway with the first story of Make a grid entry. Lots of JFC knowledge and the book helped.

Andrew, Colin, and Jason:
Did something else. Anyone remember? I guess I didn't write it down...

Posted by Ed Sibbald 2001-04-04

Iteration 2 Planning 3-25

We all got together in Andrew's office and planned out the second iteration. We worked for two and a half hours.

We decided that the RiffEngine needs to be rebuilt this iteration. Unfortunately that will hold up development of the only three stories not accomplished in iteration 1. Volume, Play greater thatn 16th note, and Render to wav will all be pushed back until after the Engine Rebuild. We figured the Engine Rebuild would take about 16 total hours. Another task currently needed is System Tests. Now that we completely changed the running interface, tests need to be written to make sure everything works like it should. The Engine interface isn't going to be changed much in the future, so we can write these tests now and have them until the end of the semester. We figured 2 hours would be good to write the tests. Past those, we decided to plan for the second phase of the project. We will be lining up Riff Engines in a larger "Composer" interface. The important stories for the Composer are: Make grid entry, Load a riff engine, Play song. Because Load riff and Play song are dependant upon Make grid entry, we only estimated Make grid entry. The estimation was 8 hours. Aside from planning, we also checked our previous estimates. What was estimated to take a total of 29 pair hours took slightly over 50, so this iteration we are doubling our estimates. The breakdown follows:... read more

Posted by Ed Sibbald 2001-03-28

Coding Session 3-21

Everyone was back this Wednesday, March 21st. We finished iteration 1 (finally) and now our project works in other operating systems (Linux). We put in 3 and a half hours finishing everything up and our next meeting will be another planning game for iteration 2.

Andrew and Ed:
Refactored AudioData and fixed bug that was causing the right channel of a 22kHz stereo sound to be muted. Added code to project and checked it in.... read more

Posted by Ed Sibbald 2001-03-28

Coding Session 3-18

End of Spring Break and four out of five make it again. Colin is sick. Worked again for 4 hours in the nice and quiet (and empty) lab. Got major accomplishments (and major screwups), but overall the night went well. For next time: finish save/load and add tempo slider to the GUI toolbar and the corresponding functionality elsewhere.

Andrew and Ed:
Refactored to separate the GUI from the guts, worked on the GUI side of things. Changed the GUI components and remaned SequencerFrame to RiffDesignerFrame. Took out all the functionality from the GUI elements. Added conversion code (the spike) to AudioData and changed InstrumentThread accordingly. AudioData now only has one format and it is a serializeable object because we used "transient public static final". Whew. Ed also made a mockery of CVS, or himself. Screwed up some stuff, but eventually figured it out. We now have a "couple_gui_code" top-level directory that has nothing but crap in it. Yeah Ed.... read more

Posted by Ed Sibbald 2001-03-20

Coding Session 3-11

The beginning of Spring Break and four out of five were still around. We got together on Sunday and worked for 4 hours polishing up the system and getting it reqady for refactoring (still).

Added sample rate and mono->stereo conversion to the "manageable data" spike and it was pretty much production ready code. At the end of the session, merged the code with a local copy of the tree to find out if it all worked in the system. Found out that the synchronization problem is almost completely corrected with the new code. That is, not switching lines because all audio data is the same format reduces synch problems.... read more

Posted by Ed Sibbald 2001-03-20

Coding Session 3-7

Wednesday March 7th, the last full meeting before Spring Break, went well. Progress was made, and it looks as though our first iteration (scheduled to conclude in our next meeting) will be on schedule. Since Jason is the only group member that will be out of town this coming Sunday, we are having what will probably be our last meeting of Iteration One. Major refactoring is on the agenda, as well as some basic additional functionality in the Manageable Data spike. Wednesday's meeting went as thus:... read more

Posted by Ed Sibbald 2001-03-09

Coding Session 3-4

We got together on Sunday, March 4th for our fourth coding session this semester. Some good progress was accomplished:

Ed (Jason was mysteriously absent):
Added functionality to the ConversionTest spike class so it could convert from float to byte (borrowed code). Added function to modify volume of a float sample array. Tested these enhancements by playing "ding" at 5 different volume levels. Efficiency (and therefore the amount of needed optimization) has yet to be determined.... read more

Posted by Ed Sibbald 2001-03-07

Coding Session the Third

On the 28th of Feb. the Music Sequencer group got together again. While Andrew was late (proctoring a 225 test), the rest of the group struggled to find direction. We ended the night with a bit of progress, thought not up to our former efforts, unfortunately.

Jason and Ed:
Stole code from Tritonus (don't worry it's LGPL'd). Modified it to fit our format conversion needs. Added accessors to work with their functions. Once again: we are ready to test. BTW: anyone have ideas on testing this?... read more

Posted by Ed Sibbald 2001-03-02

Coding Session 2

We finally got everyone together on Feb. 25th and got down to business. The first subject, however, was a new spike. Andrew, reading his "Refactoring" book, came up with an idea to shorten our thread class a great bit by abstracting the sound data into its own class. We all thought it was a good idea and since he finished the bug fix (synchronization), we all decided he should work on it. Andrew suggested that once our current stories get finished, we should see how close or how off our initial estimates were so we can plan better in the future. Here's the break-down on everyone:... read more

Posted by Ed Sibbald 2001-02-28

First Coding Session

Last night, Feb. 21st, we had our first coding session of the second semester. Toby wasn't able to attend, but everyone else got some good work done. Here's the wrap-up:

Jason and Ed:
Wrote code to convert byte array to int array where each int is the value of one sample in the sound file. The solution thus far incorporates multi-channeled files, different sample sizes, and big/little-endianess. The code has yet to be fully tested. The next steps are: convert to floats, operate on floats, and convert back to bytes.... read more

Posted by Ed Sibbald 2001-02-22

The Planning Game

On the 18th, the played the planning game. Our customer decided on the user stories we should work on the beginning of this semester then the developers estimated them. The stories and estimations follow:

1. Volume control per grid square - 6 hrs
2. Tempo control (while playing) - 5 hrs
3. Save/load files - 12 hrs
4. Render to .wav format - 6 hrs
5. Play samples longer than 16th note - 4 hrs
6. Synchronize instruments properly - 4 hrs
7. Convert raw data to manageable form - 8 hrs... read more

Posted by Ed Sibbald 2001-02-22

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks