|
Jeremy
|
|
Post:
Jun 19th 2007 at 8:04 AM |
|
|
|
is it possible to get it because i want to change my sound bank
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 19th 2007 at 11:31 AM |
|
|
I don't think so..
tu run "tuxguitar-alsa" you need first ALSA (Advanced Linux Sound Architecture) libraries installed in your system.
but Alsa is only available for linux.. ( isn't it ? )
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 19th 2007 at 10:24 PM |
|
|
You can't.
It should however be possible to build a CoreAudio plugin and use the native instruments - there just needs someone to make it.
I think I have enough CoreAudio knowledg to make it, but not enough tuxguitar knowledge. perhaps if Julian points me in the right direction? (Basically it's easy to fill noteOn/noteOff/programChange/controlChange/picthBend stuff, there just isn't any notion of device and ports on mac)
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 19th 2007 at 10:27 PM |
|
|
|
Well my wording was bad - there are devices but for plain playback you don't need to care about them.
|
|
| Back to Top |
| |
|
Jeremy
|
|
Post:
Jun 20th 2007 at 6:10 AM |
|
|
|
sp there is no way to improve the tux guitar sound bank? and in the next version can't you just make a soundbank people use on ALSA standard?
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 20th 2007 at 10:41 AM |
|
|
Hi,
To Auria:
>It should however be possible to build a CoreAudio plugin
>and use the native instrument
yes it's possible..
everyone can take the TuxGuitar-alsa project, and override
only the native methods ( *.c )
but i can't do that because i don't have a mac
To Jeremy:
>sp there is no way to improve the tux guitar sound bank?
TuxGuitar is not a software synthesizer.. it only connect to it.
as default, because it's written in java, it uses the "Java Sound Api" .. and Java Sound Api, is who needs the "soundbank" file.
however CVS version ot tuxguitar, has better options to select a midi device.. it works better under windows, because java sound api can see native ports under windows (i didn't know that )..
i tell you this, because maybe it also can see native Mac ports (i can't know)..
>and in the next version can't you just make a soundbank
>people use on ALSA standard?
i can't understand this question. (my english not good)
Alsa is the Linux Sound library..
tuxguitar-alsa plugin, is only to connect tuxguitar with alsa.. and select a native Midi Port.
that Midi Port. (sytnhesizer) is who play the sounds..
so a tuxguitar "soundbank" is not needed.
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 20th 2007 at 8:18 PM |
|
|
[quote]
To Auria:
>It should however be possible to build a CoreAudio plugin
>and use the native instrument
yes it's possible..
everyone can take the TuxGuitar-alsa project, and override
only the native methods ( *.c )
but i can't do that because i don't have a mac
[/quote]
yes i know
My question is, I suppose the Alsa plugin deals with ports somehow, and there is no need for such concept on mac, so i'm not sure how Alsa plugin lets the user choose a port and what I should change to change this behaviour.
[quote]sp there is no way to improve the tux guitar sound bank?[/quote]
Yes there is i'm discussing it right now with Julian... But forget Alsa, Alsa is Linux. You need to either a) get a better Java soundbank b) use a CoreAudio plugin to use Quicktime instruments (the plugin does not exist but I might be able to make it)
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 20th 2007 at 9:04 PM |
|
|
>My question is, I suppose the Alsa plugin deals with ports
>somehow, and there is no need for such concept on mac
well, i don't have any idea about mac..
i can tell you only how to make an output plugin for tuxguitar (under CVS version):
it are bassically 3 java interfaces:
---------------------------------------------------
MidiPortReader: it has only 2 methods:
*listPorts: returns a list of MidiPorts
*closeAll: close all ports.. (called at the end of the app)
maybe this method should be renamed to "free"
MidiPort: it contents the port info..
*getName: a single name to show at "selection" combo
*getKey: a unique key for that port. (needed to open it later)
*open,close: don't need explication.
*out: it returns the MidiOut for that port. (previously opened)
MidiOut: here are the midi events:
sendSystemReset();
sendAllNotesOff();
sendNoteOn(int channel, int key, int velocity);
sendNoteOff(int channel, int key, int velocity);
sendProgramChange(int channel, int value);
sendControlChange(int channel, int controller, int value);
sendPitchBend(int channel, int value)
---------------------------------------------------
so.. thats all.. tuxguitar do the other.
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 20th 2007 at 9:13 PM |
|
|
i forget say:
to get plugin work.. this file should be at classpath:
META-INF/services/org.herac.tuxguitar.player.base.MidiPortReader
and the content of that file should be:
package.bla.bla.MidiPortReaderImplementation
then tuxguitar will take dynamically it at start.
remember.. all of this works only on CVS version.
|
|
| Back to Top |
| |
|
Jeremy
|
|
Post:
Jun 21st 2007 at 7:02 AM |
|
|
|
I have found the solution is to download the deluxe soundbank from java but are there 3rd party soundbanks of a higher standard that i could look into?
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 21st 2007 at 9:38 PM |
|
|
|
Ok I will try when I have time, i didn't think i needed CVS version for this
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 21st 2007 at 10:38 PM |
|
|
Okay
Can you explain me how to build the CVS sources? I have never used ants and the documentation seems to not apply to CVS sources i don't see the build propery files there are in the docs
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 22nd 2007 at 10:31 AM |
|
|
>i didn't think i needed CVS version for this
well, there are a lot of changes in CVS version..
1 of them is the combo to select a midi device at
"config -> sound"
to build it:
first type:
ant -Ddist.version=version
it'll made an TuxGuitar-[version]-src.tar.gz
it bassically makes a source package exluding non necessary files from CVS version.. and put the content of xml/* at first directory level.
then you need extract that source package,
modify "build.properties":
uncomment all at your OS settings. and comment the others.
also, see for swt.jar.. as default this is the path:
lib.swt.jar=lib/swt.jar
but that jar is not included at CVS version.. so you should download it: http://www.eclipse.org/swt
and type "ant" again.
if you select the mac settings, it will create an "tuxguitar-[version]-mac.app"
you can make a .dmg file following this:
http://www.eclipse.org/swt/macosx/
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 22nd 2007 at 9:25 PM |
|
|
So far so good =)
It now says
package org.herac.tuxguitar.player.base does not exist
I understand the plugin doesn't see the rest of TG while building - how do I do that in ant? I can't find build instructions for plugins...
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 22nd 2007 at 9:47 PM |
|
|
"org.herac.tuxguitar.player.base"
is at TuxGuitar project..
Are you building a plugin ??
if you are doing it..
you should build it also with "ant"..
but you need edit build.properties.. and set:
path.tuxguitar=here_the_path_of_tuxguitar.jar
OR
path.tuxguitar=here_the_path_of_tuxguitar src/
path.swt==here_the_path_of_swt.jar
Note, if you set the path of tuxguitar sources, swt.jar is needed.
remember, plugins and serverces. must be from CVS version.
also, i think you are tring to build tuxguitar-alsa ???
it'll fail on the try.. because it try to build native ( C ) sources.
however.. onces builded, you should move the tuxguitar-[plugin].jar to:
TuxGuitar/share/plugins
Or
TuxGuitar/share/services
(note tuxguitar-alsa, is not a plugin anymore.. it is now at services folder)
tell me.. did you try this version, already can load native devices ?? at "config -> sound" (it can't under linux.. but yes under windows)
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 22nd 2007 at 10:45 PM |
|
|
I don't get your answer - you say "Are you building a plugin ??" ... well isn't that what i'm trying to do, building a mac playback plugin?? do you mean ther eis a better way?
[quote]it'll fail on the try.. because it try to build native ( C ) sources.[/quote]
No, I modified the Alsa sources to remove Alsa code. Now i'm just trying to compile.
Now I have a "tuxguitar-coreaudio.jar" file, thanks! I put it in services folder, but how can I get tuxguitar to use it now? you said "
to get plugin work.. this file should be at classpath:
META-INF/services/org.herac.tuxguitar.player.base.MidiPortReader" but i can't find that file - do i need to create it?
[quote]
tell me.. did you try this version, already can load native devices ?? at "config -> sound" (it can't under linux.. but yes under windows)[/quote]
it only shows me "Java Sound Synthyesizer"
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 22nd 2007 at 10:45 PM |
|
|
|
Just to clarify, i am using a modification of the Alsa playback code.
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 23rd 2007 at 11:20 AM |
|
|
Ok,
you have your own plugin "tuxguitar-coreaudio.jar"..
>META-INF/services/org.herac.tuxguitar.player.base.MidiPortReader
>but i can't find that file - do i need to create it?
yes you need..
i'll try explain you (with my bad english)
TuxGuitar, has a class to load that service|plugins:
TGServiceReader.lookupProviders(Class c);
the lookupproviders method, try found all files called:
META-INF/services/[Class.getName()]
and make an Iterator with the content of the files.
on this case, the method is called as:
lookupProviders(MidiPortReader.class)
and the content of:
META-INF/services/org.herac.tuxguitar.player.base.MidiPortReader
should be the "package + classname" of the class what implements "MidiPortReader".
Note, all services included it on the jar file.. (see at build.xml of any plugin how they do that)
but you can put it at share/META-INF folder to test.
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 23rd 2007 at 12:48 PM |
|
|
Ok i think i understand.
Now when i open TuxGuitar, how can i activate the plugin?
right now the META-INF/services/org.herac.tuxguitar.player.base.MidiPortReader file contains "org.herac.tuxguitar.player.impl.midiport.coreaudio.MidiPortReaderCA"
and is inside the .jar file
is that ok?
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 23rd 2007 at 12:53 PM |
|
|
Ok i get
java.lang.UnsatisfiedLinkError: no tuxguitar-coreaudio-jni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.herac.tuxguitar.player.impl.midiport.coreaudio.JNILibraryLoader.loadLibrary(Unknown Source)
at org.herac.tuxguitar.player.impl.midiport.coreaudio.MidiReceiverJNI.(Unknown Source)
at org.herac.tuxguitar.player.impl.midiport.coreaudio.MidiPortReaderAlsa.(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at org.herac.tuxguitar.classpath.TGServiceReader$IteratorImpl.next(Unknown Source)
at org.herac.tuxguitar.player.impl.MidiPlayerImpl.listPorts(Unknown Source)
at org.herac.tuxguitar.player.impl.MidiPlayerImpl.openPort(Unknown Source)
at org.herac.tuxguitar.gui.TuxGuitar.initPlayer(Unknown Source)
at org.herac.tuxguitar.gui.TuxGuitar.initPlayer(Unknown Source)
at org.herac.tuxguitar.gui.TuxGuitar.displayGUI(Unknown Source)
at org.herac.tuxguitar.gui.TuxGuitar.main(Unknown Source)
this means my lib is not correct, i'm not sure why... Perhaps it was not a good idea to try that without JNI and ant knowledge =/
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 23rd 2007 at 12:57 PM |
|
|
Thats seems to be right..
now, copy that jar to "tuxguitar/share/services"
and run tuxguitar..
go to "Settings -> Configure" and at "sound" tag, you should see the generated midi ports at the "Midi Port" combo.
one thing... at "share/services" remove "tuxguitar-alsa.jar" if it exists because it can crash...
the other "tuxguitar-jsa.jar" (is the Java Sound Api implementation).. so you can also remove it.. if you don't want see "Java Sound Synthyesizer" port.
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 23rd 2007 at 1:15 PM |
|
|
mmm we posted at same time...
about: "java.lang.UnsatisfiedLinkError"
first.. if you get that error.. is because tuxguitar could see the service.. so thats good.
well that error, is because the plugin is trying to load a Native library "tuxguitar-coreaudio-jni" and not found it.
i'm not sure what was the maded changes.. so i aks you some things:
**Are you using native sources ( *.c or *.cpp)???
if you aren't, you should remove:
---------------------------------------------------
static{
JNILibraryLoader.loadLibrary(JNI_LIBRARY_NAME);
}
---------------------------------------------------
from MidiReceiverJNI ?? (thats the class on tuxgutar-alsa)
if the answer is yes..
did you build the native library ???
the library should be at LibraryPath, to java found it..
-Djava.library.path= (look at tuxguitar launcher script)
Or, you can do equal as tuxguitar-alsa.. it includes the native library on the jar..
and "JNILibraryLoader" load that library.
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 23rd 2007 at 4:15 PM |
|
|
My code is just a modification of the Alsa code, so it works the same way.
it produces a .jnilib that gets included inside the jar file. the biggest modification is that i changed it to C++ however the header defines it as extern "C" so it still has C linking and there shouldn't be problems
I think the error could be that the "-shared" g++ switch does not exist on OS X so I built a dynamic lib instead of a shared lib.
|
|
| Back to Top |
| |
|
hernux
|
|
Post:
Jun 23rd 2007 at 7:01 PM |
|
|
It should work as dynamic lib too.
I think you should forget about JNILibraryLoader for the moment, as this class was created having in mind the linux library.. It may not work on mac.
Instead use java framework to load the dynamic library:
----
* System.load(String filename)
Loads a code file with the specified filename from the local file system as a dynamic library.
* System.loadLibrary(String libname)
Loads the system library specified by the libname argument.
----
The first one, takes as argument the filename of the library, for instance, System.load("/home/xx/mylibrary.so") would load the library with that name.
The second one, uses the O.S. convention to load the library.. for instance, on linux System.loadLibrary("test") would load the library named /lib/libtest.so while on windows would load c:windowstest.dll ...
System.loadLibrary() looks for libraries on the java.library.path, you can set this using -Djava.library.path=xxxx on the command line (tuxguitar's launcher script sets this option).
On some systems, the folder where the library resides needs to be on LD_LIBRARY_PATH.
If none of these work properly, you should take a look at some documentation on how to do jni on mac.
cheers
Hernux
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 23rd 2007 at 9:58 PM |
|
|
Hey thanks!!!
It works! I got TuxGuitar playing with native Quicktime synthesizer =D
more work is required before it is distributable but it's a great step forward
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 23rd 2007 at 10:25 PM |
|
|
A few questions i don't get...
1) when you play a song then press stop, note off events are not thrown so the note continues to play forever. how does TG tell the player to stop all sound?
2) what is jint note? when i play using this as midi key, the played pitch is wrong... any idea why this happens?
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 24th 2007 at 10:14 AM |
|
|
Hi,
>how does TG tell the player to stop all sound?
On this order, that methods of MidiOut are called by the sequencer:
sendAllNotesOff();
sendSystemReset();
>what is jint note? when i play using this as midi key, the played pitch is wrong.
I'm not sure if i understand the question...
but however..
note there are differences of pitch value, with tuxguitar-alsa and tuxguitar-jsa:
at the method "sendPitchBend(int channel,int value)"
tuxguitar-alsa uses pitch as: ((value * 127) - 8191)
but on java sound API "value" not need be changed.
so, maybe you should see if it need be changed or not for coreaudio.
|
|
| Back to Top |
| |
|
Anonymous
|
|
Post:
Jun 24th 2007 at 12:56 PM |
|
|
@Jeremy : Sorry for hijacking your thread! there is no other java soundbank that i know of. I know there is a commercial tool to create custom ones but i don't know much more.
@Julain: ok thanks first problem fixed.
my other problem is not with pitch bend.
I will give you an example. I will use fret 0 on highest string, which is a E note and midi key 64. When I add such note, my plugin receives a request for 'note on 64' message.
Then i choose "Play". I still receive a note on 64 event, but the pitch is not E, it is much lower than that.
It seems to be a pitch bend or a controller problem, I will inverstigate.
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 24th 2007 at 3:15 PM |
|
|
Ok i found the problem : it is controllers 100 and 101 (Registered Parameter Number LSB and MSB)
I don't know what these controllers are used for, i however was able to solve pitch problems by blocking them. I'm not sure sure why the change the pitch of played notes.
Now all that remains to fix is pitch bend and we can have native playback on mac.
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 24th 2007 at 3:57 PM |
|
|
|
Ok i think i got it all working! It would be ready for a first alpha/beta(?) version to be made available, and it could be shipped along with next mac TuxGuitar version - would you like to host it along alsa plugin, or?
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
Jun 25th 2007 at 11:06 AM |
|
|
Hi,
>Ok i found the problem : it is controllers 100 and 101 .....
That controllers are needed to set pitch bends greater than 2 semitones.. (for effects: bend, slide...).
i don't know exactly what they do...
but if they aren't setted, the pitch bend don't work fine.. (a slide from 2 TO 10, make sound as "2 TO 4")...
i taked that controllers, watching "midi" files what could play that pitch bends..
i think.. you can test export a midi file with tuxguitar, and listen it on a midiplayer.. and if it works, that shouldn't be the problem.. maybe something like "value * anyNumber" can be a solution.
>would you like to host it along alsa plugin, or?
well that's your decition.. "it's your project".
ofcourse you are welcome to upload it to the CVS and it will be included on Mac version. and ofcourse you at authors section.
Or you can register it on a new project. (on this case, it will be included if license is "compat" with tuxguitar license)
let me know, by "Contact" mail..
|
|
| Back to Top |
| |
|
Jeremy
|
|
Post:
Jun 26th 2007 at 7:24 AM |
|
|
|
so is this available for download yet? if so where?
|
|
| Back to Top |
| |
|
Auria
|
|
Post:
Jun 26th 2007 at 8:34 PM |
|
|
well right now it is in CVS version (CVS version is the development one... the one with the upcoming stuff of next version)
easiest is to wait for next version to come out. or you can build it yourself. or i also have it on my computer i could send it to you (though be aware CVS versions are not necessarly stable)
|
|
| Back to Top |
| |
|
kanguru007
|
|
Post:
May 23rd 2008 at 3:14 PM |
|
|
How hard would it be to make it work with MIDI output ports so that TuxGuitar could play on external Midi synths? (or soft-synths by using MidiPatchBay)
I'm doing a soft synth for the Mac and I would like to be able to use it with TuxGuitar.
Regards
|
|
| Back to Top |
| |
|
Julian
|
|
Post:
May 23rd 2008 at 3:28 PM |
|
|
Hi, i never had a mac.. so i'm "blind" to answer this questions.
It's supposed, you have the "CoreAudio" plugin maded by Auria.
I'm not sure how to connect to an "external synths" on mac, and if CoreAudio can do this.
but however, since 1.0-rc1 "all" tuxguitar ports/sequencers are "plugins". ( if you drop the folder share/plugins of tuxguitar, it'll not sound anymore ).
So if you already have your MIDI Synth (written on Java or C/C++ ) it's very easy to make a tuxguitar plugin
You'll need just a wrapper class beetween tuxguitar and your synth..
with methods like:
sendNoteOn( ... ), sendNoteOff( ... ), sendControlChange( ... ) bla bla bla.....
|
|
| Back to Top |
| |
|
weining
|
|
| Back to Top |
| |
|
Anonymous
|
|
Post:
Apr 5th 2012 at 5:56 AM |
|
|
Coach Shoes are very pupular in
USA,but it is a little expensive,if you would like to buy the cheap coach shoes,you had better go to the
Coach Purses Outlet who sell the coach items with low
price ,you can also choose other coach items in the
Coach Outlet.
|
|
| Back to Top |
| |
|
Discount Louboutins
|
|
| Back to Top |
| |
|
Cheap Christian Louboutin
|
|
Post:
Apr 17th 2012 at 7:32 AM |
|
|
|
What should you look for when buying sexy high heels? If you work at a desk job, wear business attire all day and the extent of your walking consists of walking to the copier Cheap Christian Louboutin and back then four inch heels are perfect. One suggestion is to buy a closed toe shoe with a two and at most three inch heel that will look great with slacks Christian Louboutin Asteroid Pumps giving Christian Louboutin Booties you a polished look without the discomfort of wearing high heels all day long. Platforms add height in the sole reducing the angle your foot Cheap Louboutins rests at and makes the shoe more comfortable, like wedges and other platform type shoes. Many women mistakenly think platform shoes are only those stripper shoes that have the Christian Louboutin Sandals three, four and five inch platforms that make Louboutin Shoes Sale you look like a stripper when you wear them
|
|
| Back to Top |
| |