Fantasia Feature Request

You name it!
User avatar
cuse
Developer
Posts: 366
Joined: Wed Jan 23, 2008 10:07 pm
Location: Germany

Re: Fantasia Feature Request

Post by cuse » Wed Sep 10, 2008 10:13 am

grishata wrote:And one new LSCP command for playing notes. Something like:

SEND CHANNEL MIDI_DATA <msg_type> <channel_id> <arg1> <arg2> ... <argn>

where for now msg_type would be NOTE_ON or NOTE_OFF
So:
SEND CHANNEL MIDI_DATA NOTE_ON <channel_id> <note> <velocity>
SEND CHANNEL MIDI_DATA NOTE_OFF <channel_id> <note> <velocity>

Remarks?
For a virtual one finger keyboard that's sufficient. So that's OK with me. As long as nobody comes to the idea to bind a sequencer to LS via LSCP. Because LSCP was never designed for realtime tasks.

User avatar
cuse
Developer
Posts: 366
Joined: Wed Jan 23, 2008 10:07 pm
Location: Germany

Re: Fantasia Feature Request

Post by cuse » Wed Sep 10, 2008 10:26 am

Grigor, you know the way to Rome, right? You can simply use the channelMidiListeners member of the LSCP server to access the respective VirtualMidiDevice object to send the MIDI data to the respective sampler channel.

grishata
Developer
Posts: 138
Joined: Thu Jan 24, 2008 7:21 pm
Location: Bulgaria
Contact:

Re: Fantasia Feature Request

Post by grishata » Thu Sep 11, 2008 8:01 pm

ccherrett wrote:1. Built in keyboard:
Implemented :)
A lot of things to polish and add, but the basic functions are there: playing notes, see notes sent to the respective sampler channel and of course key bindings and keyswitch bindings.
To connect the MIDI keyboard to sampler channel, just click on the respective sampler channel.
To show/hide the MIDI keyboard, choose View/MIDI keyboard. To set the key range of the piano roll, right-click on the piano roll and choose Preferences.

Note that you need to get and recompile the latest cvs versions of linuxsampler, jlscp and jsampler.

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: Fantasia Feature Request

Post by dahnielson » Thu Sep 11, 2008 8:53 pm

I've built jlscp from CVS and downloaded newer versions of substance.jar, substance-swingx.jar and swingx.jar (found in swingx-0.9.3.zip and renamed it from swingx-0.9.3.jar to swingx.jar) and put them all in lib/required/ but I'm getting errors while building Fantasia:

Code: Select all

Buildfile: build.xml

clean-fantasia:

build-manifest:

build-fantasia:
    [unjar] Expanding: /home/anders/builds/jsampler/lib/required/jlscp.jar into /home/anders/builds/jsampler/dist/build
    [unjar] Expanding: /home/anders/builds/jsampler/lib/required/juife.jar into /home/anders/builds/jsampler/dist/build
    [unjar] Expanding: /home/anders/builds/jsampler/lib/required/substance-swingx.jar into /home/anders/builds/jsampler/dist/build
    [unjar] Expanding: /home/anders/builds/jsampler/lib/required/substance.jar into /home/anders/builds/jsampler/dist/build
    [unjar] Expanding: /home/anders/builds/jsampler/lib/required/swingx.jar into /home/anders/builds/jsampler/dist/build
    [javac] Compiling 152 source files to /home/anders/builds/jsampler/dist/build
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:34: package org.jvnet.substance.api.renderers does not exist
    [javac] import org.jvnet.substance.api.renderers.SubstanceDefaultTreeCellRenderer;
    [javac]                                         ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/PixmapPane.java:31: warning: sun.swing.plaf.synth.Paint9Painter is Sun proprietary API and may be removed in a future release
    [javac] import sun.swing.plaf.synth.Paint9Painter;
    [javac]                            ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/PixmapPane.java:42: warning: sun.swing.plaf.synth.Paint9Painter is Sun proprietary API and may be removed in a future release
    [javac]     private static Paint9Painter paint9Painter = new Paint9Painter(1);
    [javac]                    ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/DevicesPane.java:37: package org.jvnet.substance.api.SubstanceConstants does not exist
    [javac] import org.jvnet.substance.api.SubstanceConstants.FocusKind;
    [javac]                                                  ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/DevicesPane.java:38: package org.jvnet.substance.shaper does not exist
    [javac] import org.jvnet.substance.shaper.ClassicButtonShaper;
    [javac]                                  ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:52: cannot find symbol
    [javac] symbol  : class SubstanceDefaultTreeCellRenderer
    [javac] location: class org.jsampler.view.fantasia.FantasiaInstrumentsDbTree
    [javac]     private class CellRenderer extends SubstanceDefaultTreeCellRenderer {
    [javac]                                        ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaListCellRenderer.java:33: package org.jvnet.substance.api.renderers does not exist
    [javac] import org.jvnet.substance.api.renderers.SubstanceDefaultListCellRenderer;
    [javac]                                         ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaListCellRenderer.java:39: cannot find symbol
    [javac] symbol: class SubstanceDefaultListCellRenderer
    [javac] public class FantasiaListCellRenderer extends SubstanceDefaultListCellRenderer {
    [javac]                                               ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/NormalChannelView.java:58: cannot find symbol
    [javac] symbol  : class SubstanceImageCreator
    [javac] location: package org.jvnet.substance.utils
    [javac] import org.jvnet.substance.utils.SubstanceImageCreator;
    [javac]                                 ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/SmallChannelView.java:51: cannot find symbol
    [javac] symbol  : class SubstanceImageCreator
    [javac] location: package org.jvnet.substance.utils
    [javac] import org.jvnet.substance.utils.SubstanceImageCreator;
    [javac]                                 ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/ViewConfig.java:38: package org.jvnet.substance.api does not exist
    [javac] import org.jvnet.substance.api.SubstanceConstants;
    [javac]                               ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:47: setCellRenderer(javax.swing.tree.TreeCellRenderer) in javax.swing.JTree cannot be applied to (org.jsampler.view.fantasia.FantasiaInstrumentsDbTree.CellRenderer)
    [javac]             setCellRenderer(renderer);
    [javac]             ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:63: cannot find symbol
    [javac] symbol  : method getTreeCellRendererComponent(javax.swing.JTree,java.lang.Object,boolean,boolean,boolean,int,boolean)
    [javac] location: class org.jsampler.view.std.JSInstrumentsDbTree
    [javac]                     super.getTreeCellRendererComponent (
    [javac]                          ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:68: cannot find symbol
    [javac] symbol  : method setIcon(javax.swing.Icon)
    [javac] location: class org.jsampler.view.fantasia.FantasiaInstrumentsDbTree.CellRenderer
    [javac]                     if(node.getInfo().getName() == "/") setIcon(getView().getRootIcon());
    [javac]                                                         ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:69: cannot find symbol
    [javac] symbol  : method setIcon(javax.swing.Icon)
    [javac] location: class org.jsampler.view.fantasia.FantasiaInstrumentsDbTree.CellRenderer
    [javac]                     else if(leaf) setIcon(getView().getInstrumentIcon());
    [javac]                                   ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:70: cannot find symbol
    [javac] symbol  : method setIcon(javax.swing.Icon)
    [javac] location: class org.jsampler.view.fantasia.FantasiaInstrumentsDbTree.CellRenderer
    [javac]                     else if(expanded) setIcon(getView().getOpenIcon());
    [javac]                                       ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:71: cannot find symbol
    [javac] symbol  : method setIcon(javax.swing.Icon)
    [javac] location: class org.jsampler.view.fantasia.FantasiaInstrumentsDbTree.CellRenderer
    [javac]                     else setIcon(getView().getClosedIcon());
    [javac]                          ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaInstrumentsDbTree.java:77: incompatible types
    [javac] found   : org.jsampler.view.fantasia.FantasiaInstrumentsDbTree.CellRenderer
    [javac] required: java.awt.Component
    [javac]                     return this;
    [javac]                            ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/PixmapPane.java:42: warning: sun.swing.plaf.synth.Paint9Painter is Sun proprietary API and may be removed in a future release
    [javac]     private static Paint9Painter paint9Painter = new Paint9Painter(1);
    [javac]                                                      ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/PixmapPane.java:77: warning: sun.swing.plaf.synth.Paint9Painter is Sun proprietary API and may be removed in a future release
    [javac]                     Paint9Painter.PaintType.PAINT9_STRETCH,
    [javac]                     ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/PixmapPane.java:78: warning: sun.swing.plaf.synth.Paint9Painter is Sun proprietary API and may be removed in a future release
    [javac]                     Paint9Painter.PAINT_ALL
    [javac]                     ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/ChannelsPane.java:252: cannot find symbol
    [javac] symbol  : method getAutoUpdate()
    [javac] location: class org.jsampler.view.fantasia.ChannelsPane.ChannelListPane
    [javac]     getAutoUpdate() { return chnList.getAutoUpdate(); }
    [javac]                                     ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/ChannelsPane.java:260: cannot find symbol
    [javac] symbol  : method setAutoUpdate(boolean)
    [javac] location: class org.jsampler.view.fantasia.ChannelsPane.ChannelListPane
    [javac]     setAutoUpdate(boolean b) { chnList.setAutoUpdate(b); }
    [javac]                                       ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/ChannelsPane.java:267: cannot find symbol
    [javac] symbol  : method updateList()
    [javac] location: class org.jsampler.view.fantasia.ChannelsPane.ChannelListPane
    [javac]     updateChannelListUI() { chnList.updateList(); }
    [javac]                                    ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/DevicesPane.java:83: cannot find symbol
    [javac] symbol  : variable FocusKind
    [javac] location: class org.jsampler.view.fantasia.DevicesPane
    [javac]                     SubstanceLookAndFeel.FOCUS_KIND, FocusKind.NONE
    [javac]                                                      ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/DevicesPane.java:87: cannot find symbol
    [javac] symbol  : class ClassicButtonShaper
    [javac] location: class org.jsampler.view.fantasia.DevicesPane
    [javac]                     SubstanceLookAndFeel.BUTTON_SHAPER_PROPERTY, new ClassicButtonShaper()
    [javac]                                                                      ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaComboBox.java:48: setRenderer(javax.swing.ListCellRenderer) in javax.swing.JComboBox cannot be applied to (org.jsampler.view.fantasia.FantasiaListCellRenderer)
    [javac]             setRenderer(new FantasiaListCellRenderer());
    [javac]             ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/FantasiaListCellRenderer.java:56: cannot find symbol
    [javac] symbol  : variable super
    [javac] location: class org.jsampler.view.fantasia.FantasiaListCellRenderer
    [javac]             return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
    [javac]                    ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/NormalChannelView.java:411: cannot find symbol
    [javac] symbol  : variable SubstanceImageCreator
    [javac] location: class org.jsampler.view.fantasia.NormalChannelView.MuteButton
    [javac]                             SubstanceImageCreator.makeTransparent(this, Res.gfxMuteOff, 0.4)
    [javac]                             ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/NormalChannelView.java:445: cannot find symbol
    [javac] symbol  : variable SubstanceImageCreator
    [javac] location: class org.jsampler.view.fantasia.NormalChannelView.SoloButton
    [javac]                             SubstanceImageCreator.makeTransparent(this, Res.gfxSoloOff, 0.4)
    [javac]                             ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/SmallChannelView.java:301: cannot find symbol
    [javac] symbol  : variable SubstanceImageCreator
    [javac] location: class org.jsampler.view.fantasia.SmallChannelView.MuteButton
    [javac]                             SubstanceImageCreator.makeTransparent(this, Res.gfxMuteSmallOff, 0.4)
    [javac]                             ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/SmallChannelView.java:335: cannot find symbol
    [javac] symbol  : variable SubstanceImageCreator
    [javac] location: class org.jsampler.view.fantasia.SmallChannelView.SoloButton
    [javac]                             SubstanceImageCreator.makeTransparent(this, Res.gfxSoloSmallOff, 0.4)
    [javac]                             ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/ViewConfig.java:56: cannot find symbol
    [javac] symbol  : variable WATERMARK_VISIBLE
    [javac] location: class org.jvnet.substance.SubstanceLookAndFeel
    [javac]                     UIManager.put(SubstanceLookAndFeel.WATERMARK_VISIBLE, Boolean.FALSE);
    [javac]                                                       ^
    [javac] /home/anders/builds/jsampler/src/org/jsampler/view/fantasia/ViewConfig.java:60: package SubstanceConstants does not exist
    [javac]                             SubstanceConstants.TabContentPaneBorderKind.SINGLE_FULL
    [javac]                                               ^
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 29 errors
    [javac] 5 warnings

BUILD FAILED
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: Fantasia Feature Request

Post by ccherrett » Thu Sep 11, 2008 9:47 pm

I get the same errors as dahnielson.

Wow! I can't wait to try this out :)
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

grishata
Developer
Posts: 138
Joined: Thu Jan 24, 2008 7:21 pm
Location: Bulgaria
Contact:

Re: Fantasia Feature Request

Post by grishata » Thu Sep 11, 2008 10:36 pm

Did you tried to copy the libraries from the latest cvs release?
Copy the lib directory from JSampler-0.8a-cvs4, rebuild and replace jlscp.jar with the latest cvs version.

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: Fantasia Feature Request

Post by dahnielson » Thu Sep 11, 2008 11:23 pm

grishata wrote:Did you tried to copy the libraries from the latest cvs release?
Copy the lib directory from JSampler-0.8a-cvs4, rebuild and replace jlscp.jar with the latest cvs version.
Aah, I remember now that's the way how it's supposed to be done. (Been using the pre-built cvs releases for so long now.)

Works now (accidentally overwrote my newer jlscp.jar in the process at first...)

Thanks!
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: Fantasia Feature Request

Post by dahnielson » Thu Sep 11, 2008 11:50 pm

grishata wrote:A lot of things to polish and add, but the basic functions are there: playing notes, see notes sent to the respective sampler channel and of course key bindings and keyswitch bindings.
To connect the MIDI keyboard to sampler channel, just click on the respective sampler channel.
To show/hide the MIDI keyboard, choose View/MIDI keyboard. To set the key range of the piano roll, right-click on the piano roll and choose Preferences.
This is brilliant and a good start!
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: Fantasia Feature Request

Post by ccherrett » Fri Sep 12, 2008 8:57 am

grishata wrote:Did you tried to copy the libraries from the latest cvs release?
Copy the lib directory from JSampler-0.8a-cvs4, rebuild and replace jlscp.jar with the latest cvs version.
OK it is working!

So next is to implement the mapped keys and keyswitches?

I am not sure if this is just the way I am setup but when I play the keyboard it is not highlighting the notes.

When playing back multiple channels you just see one channel lighting up right?

At the end of the score it leaves keys lit. I am not sure how to change that if not note off is sent.

It would be nice if you heard the the sample play when you click on the keyboard in fantasia.

Possibly you could change the mouse events so you could drag your mouse over the fantasia keyboard and not have to pass a release event to hit another note.

Very very good start. This will be an awesome edition to fantasia!
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: Fantasia Feature Request

Post by dahnielson » Fri Sep 12, 2008 9:03 am

ccherrett wrote:So next is to implement the mapped keys and keyswitches?
No, it's implemented all right. Clicking on them plays notes and make switches. You need to rebuild LinuxSampler from latest CVS and not just Fantasia to get everything to work.
ccherrett wrote:I am not sure if this is just the way I am setup but when I play the keyboard it is not highlighting the notes.
No, it only plays them, afaik.
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux

Post Reply