Official website of the SkyMonome library
The SkyMonome library v1.3 is available ! Note that you need MonomeSerial correctly configured and only Java 5.

What is the SkyMonome library ? It is addressed to Monome owners who want to easily program their unit in Java language. Based on the JavaOSC library, the SkyMonome library is a complete and evolutive API for musical and visual applications.

Concretely, you have just to import skymonome.jar (& javaosc.jar) into NetBeans, Eclipse or any other IDE, and let's go for hours and hours of fast programming !
Please find binaries, sources and complete javadoc in this zip archive : (Last update : 19th june 2010)

You can access to the online tutorial here (in construction)

You can browse the online javadoc here

NEW ! The first example of use of the SkyMonome library, "itlum", a Midi multi-sequencer : (28th november 2009)

Soon : The second example of use of the SkyMonome library, "evitidda". This is an additive-synthesis synthesizer based on the SkySynthesizer engine (another cool personal project) with 64 parallel oscillators having each other near frequencies.
19th june 2010 : Release of v1.3 with 93 source files.
    This release gives more liberty to the developper.
    Following classes have been added :
        - sky.monome.frame.BoundedFrameWindow
        - sky.monome.frame.InertiaBoundedFrameWindow
    Implementors should note that following methods have been added :
        - sky.monome.sequencer.Sequencer.getSequencerEffectTime()
        - sky.monome.sequencer.Sequencer.setSequencerEffectTime(long)
        - sky.monome.sequencer.Sequencer.getSequencerEngine()
    Please read the javadoc for other changes and adds of methods, constructors, deprecations,...
25th april 2010 : Release of v1.2.1.
    This minor release is a patch for two small bugs (including one discovered by Dane S.).
21st october 2009 : Release of v1.2 with 91 source files.
    This release offers some improvments for the developper and permits the use of Monomes larger than 8x8.
    The following class has been added :
        - sky.monome.event.button.FilteredButtonListener
    Please read the javadoc for other changes and adds of methods, constructors, deprecations,...
20th september 2009 : Release of v1.1 with 90 source files.
    This release gives a large panel of enhancements.
    Following classes and interfaces have been added :
        - sky.monome.behavior.Member
        - sky.monome.behavior.Member.Group
        - sky.monome.behavior.Pad
        - sky.monome.behavior.Pad.PadGroup
        - sky.monome.behavior.Pad.PadGroup.Lure
        - sky.monome.behavior.PassiveBehavior
        - sky.monome.behavior.PassiveBehavior.PassivityType
        - sky.monome.behavior.SequencerRadio
        - sky.monome.behavior.SequencerRadio.SequencerRadioGroup
        - sky.monome.behavior.factory.BehaviorFactory
        - sky.monome.behavior.factory.GenericBehaviorFactory
        - sky.monome.behavior.factory.MemberFactory
        - sky.monome.event.sequencer.NotePlayerListener
        - sky.monome.layer.InvertedLedStateModificationLayer
        - sky.monome.sequence.RandomOffsetSequenceIterator
        - sky.monome.sequence.RandomOffsetSequenceIterator.RandomOffsetType
        - sky.monome.sequence.RandomSequenceIterator
        - sky.monome.sequence.SwingSequenceIterator
        - sky.monome.sequence.TwiceUpwardSequenceIterator
        - sky.monome.sequence.factory.SequenceIteratorFactory
        - sky.monome.sequence.factory.GenericSequenceIteratorFactory
        - sky.monome.util.scale.MidiNote
        - sky.monome.util.scale.MidiNote.Note
        - sky.monome.util.scale.Scale
        - sky.monome.util.scale.ScaleFactory
        - sky.monome.HookAnalog (please do not use this class since it is not tested at all !)
    Implementors should note that following methods have been added :
        - sky.monome.event.sequencer.SequencerComponent.getButtonManagers() (replacing an another newly deprecated method)
        - sky.monome.event.sequencer.SequencerComponent.getButtonManager(int) (replacing an another newly deprecated method)
        - sky.monome.sequencer.Sequencer.getMaximumStepsNumberInSequence()
        - sky.monome.sequencer.Sequencer.getNotesNumberByStep()
        - sky.monome.sequencer.Sequencer.getSequenceIterator()
        - sky.monome.sequencer.Sequencer.setSequenceIterator(SequenceIterator)
    Following classes and interfaces are now parametrized :
        - sky.monome.event.button.ButtonEvent<B extends ButtonManager<B>>
        - sky.monome.event.button.ButtonListener<B extends ButtonManager<B>>
        - sky.monome.event.button.ButtonListenerWithArguments<B extends ButtonManager<B>>
        - sky.monome.event.button.ButtonManager<B extends ButtonManager<B>>
        - sky.monome.event.frame.DynamicFrame<F extends DynamicFrame<F>>
        - sky.monome.event.frame.FrameEvent<F extends DynamicFrame<F>>
        - sky.monome.event.frame.FrameListener<F extends DynamicFrame<F>>
        - sky.monome.event.frame.FrameListenerWithArguments<F extends DynamicFrame<F>>
        - sky.monome.event.sequencer.SequencerComponent<S extends SequencerComponent<S,B>,B extends ButtonManager<B>>
        - sky.monome.event.sequencer.SequencerEvent<S extends SequencerComponent<S,B>,B extends ButtonManager<B>>
        - sky.monome.event.sequencer.SequencerListener<S extends SequencerComponent<S,B>,B extends ButtonManager<B>>
        - sky.monome.event.sequencer.SequencerListenerWithArguments<S extends SequencerComponent<S,B>,B extends ButtonManager<B>>
        - sky.monome.frame.AbstractFrameWindow<T extends Frame,F extends AbstractFrameWindow<T,F>>
        - sky.monome.frame.AbstractInertiaFrameWindow<T extends Frame,F extends AbstractInertiaFrameWindow<T,F>>
        - sky.monome.frame.AbstractWindow<T extends Frame,F extends AbstractWindow<T,F>>
        - sky.monome.sequence.BackwardSequenceIterator<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequence.RandomOffsetSequenceIterator<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequence.RandomSequenceIterator<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequence.SequenceIterator<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequence.SwingSequenceIterator<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequence.TwiceUpwardSequenceIterator<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequence.UpwardAndBackwardSequenceIterator<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequence.UpwardSequenceIterator<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequencer.Sequencer<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.sequencer.SequencerEngine<S extends Sequencer<S,B>,B extends ButtonManager<B>>
        - sky.monome.FrameGroup.RefreshFrameListener<F extends DynamicFrame<F>>
25th august 2009 : Release of v1.0.1 with 71 source files.
    This minor release is a patch for a small bug.
31st july 2009 : Release of v1.0 with 71 source files.
    This is the first major release.
16th may 2009 : Real start of developments.
If you want to report a bug or to ask me something, please email me on
_p_o_s_t_m_a_s_t_e_r_@_s_k_y_m_o_n_o_m_e_._o_r_g_ (without underscores !).