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.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?
Fantasia Feature Request
Re: Fantasia Feature Request
Re: Fantasia Feature Request
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.
Re: Fantasia Feature Request
Implementedccherrett wrote:1. Built in keyboard:
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.
- dahnielson
- Moderator
- Posts: 632
- Joined: Wed Jan 23, 2008 11:25 pm
- Location: Linköping / Tranås, Sweden
- Contact:
Re: Fantasia Feature Request
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
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
Re: Fantasia Feature Request
I get the same errors as dahnielson.
Wow! I can't wait to try this out
Wow! I can't wait to try this out
Re: Fantasia Feature Request
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.
Copy the lib directory from JSampler-0.8a-cvs4, rebuild and replace jlscp.jar with the latest cvs version.
- dahnielson
- Moderator
- Posts: 632
- Joined: Wed Jan 23, 2008 11:25 pm
- Location: Linköping / Tranås, Sweden
- Contact:
Re: Fantasia Feature Request
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.)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.
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
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
- dahnielson
- Moderator
- Posts: 632
- Joined: Wed Jan 23, 2008 11:25 pm
- Location: Linköping / Tranås, Sweden
- Contact:
Re: Fantasia Feature Request
This is brilliant and a good start!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.
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
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
Re: Fantasia Feature Request
OK it is working!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.
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!
- dahnielson
- Moderator
- Posts: 632
- Joined: Wed Jan 23, 2008 11:25 pm
- Location: Linköping / Tranås, Sweden
- Contact:
Re: Fantasia Feature Request
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:So next is to implement the mapped keys and keyswitches?
No, it only plays them, afaik.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.
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
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