[linux-audio-user] [ANN] eisenkraut 0.3

Jens Gulden mail at jensgulden.de
Wed Jul 20 07:09:23 EDT 2005


Hello,

>> http://sourceforge.net/projects/eisenkraut

A sample-editor written in Java & SuperCollider is a great idea. Thanks, 
Sciss, for starting this!

I'm trying to get Eisenkraut running on Linux. These are the steps I 
have taken so far:

1) Added "libraries/NetUtil.jar" to the $CLASSPATH in Eisenkraut.sh
(otherwise a "java.lang.NoClassDefFoundError: de/sciss/net/OSCListener" 
occurs)

2) Needed to make a change in createTempFile() in IOUtil.class:
Instead of:
File tmpF = File.createTempFile( prefix, suffix, new File( 
IOUtil.getUserPrefs().get( IOUtil.KEY_TEMPDIR, null ) ) );
it's now just:
File tmpF = File.createTempFile( prefix, suffix, null );
It seems that
IOUtil.getUserPrefs().get( IOUtil.KEY_TEMPDIR, null )
returns null, which causes the constructor of java.io.File to fail. 
Luckily it is easy to work around this by just specifying 'null' as 
default directory for createTempFile(...), which causes the system's 
default temp-dir to be used.
(I wonder why this doesn't work with the value from the preferences. The 
saved preferences in ~/.java/.userPrefs/de/sciss/eisenkraut/prefs.xml 
correctly contain a 'tmpdir' value.)

3) In order to apply the above fix, I needed to recompile the project on 
my own, which in turn made it necessary to:
a) Change source file names in  de/sciss/eisenkraut/session:
__SessionChangeEvent.java to SessionChangeevent.java
__SessionChangeListener to SessionChangeListener.java
(Why are there underscores in the original filenames?)
b)Create a dummy-interface with an inner dummy-interface:
de.sciss.eisenkraut.realtime.RealtimeProducer and
de.sciss.eisenkraut.realtime.RealtimeProducer.Request.
(Sources for that are not included.)

4) A problem which is related to my specific configuration:
InetAddress.getLocalHost() seems to perform a lookup at the name-server 
to determine the current local ip-number based on the name of the host. 
But when I'm not in the office, my machine's ip number is different from 
what the hostname is associated to.
This led to the situation that the UDP packages were sent from the 
correct local ip address to a wrong/non-existent address in the outside 
network (that was returned by getLocalHost()).
One could blame either my "hand-made" multi-ip-configuration, or Sun's 
implementation of getLocalHost() for the problems that occurred from that.
But in any case it would be very useful to be able to avoid problems of 
this kind by letting the ip-part in the preferences-field "Supercollider 
OSC Socket (IP:port)" also take effect.


After solving these above issues, I am stuck. Eisenkraut now starts up 
properly and it boots the SuperCollider server upon manual request 
(Boot-button). It also loads a sample-file via File/Open..., and when 
pressing 'play' in the transport window it displays a red time-indicator 
moving above the waveform.

...But there is no sound coming out of my speakers...

My SuperCollider installation is working fine when used with the 
SC-language from inside Emacs, so I assume the problem is related to 
Eisenkraut and its interaction with the SC-server.
This is an example OSC-dump:

/usr/local/bin/scsynth -u 57110 -i 2 -o 2 -S 44100.0 -D 0
----- sending out packet -----:
[ "/notify", 1 ]
----- sending out packet -----:
[ "/notify", 1 ]
[ "/done", "/notify" ]
----- sending out packet -----:
[ "#bundle"
,
   [ "/dumpOSC", 3 ],
   [ "/d_loadDir", "/home/jgulden/sc/Eisenkraut/synthdefs" ],
   [ "/g_new", 1000, 1, 0, 1001, 1, 0 ],
   [ "/b_alloc", 0, 32768, 2 ]]
[ "/done", "/d_loadDir" ]
[ "/done", "/b_alloc" ]
----- sending out packet -----:
[ "#bundle"
,
   [ "/s_new", "eisen-volume", 1004, 1, 1001, "i_aOutBus", 0, 
"i_aInBus", 5, "volume", 1.0 ],
   [ "/s_new", "eisen-volume", 1005, 1, 1001, "i_aOutBus", 1, 
"i_aInBus", 6, "volume", 1.0 ],
   [ "/n_run", 1004, 1 ],
   [ "/n_run", 1005, 1 ],
   [ "/sync", 1 ]]
[ "/synced", 1 ]
Using Altivec: no
SC_JackDriver: jack name is SuperCollider
SuperCollider 3 server ready..
[ "#bundle", 0,
     [ "/s_new", "eisen-volume", 1004, 1, 1001, "i_aOutBus", 0, 
"i_aInBus", 5, "volume", 1 ],
     [ "/s_new", "eisen-volume", 1005, 1, 1001, "i_aOutBus", 1, 
"i_aInBus", 6, "volume", 1 ],
     [ "/n_run", 1004, 1 ],
     [ "/n_run", 1005, 1 ],
     [ "/sync", 1 ]
]
size 276
    0   23 62 75 6e  64 6c 65 00  00 00 00 00  00 00 00 00 
|#bundle.........|
   16   00 00 00 5c  2f 73 5f 6e  65 77 00 00  2c 73 69 69 
|...\/s_new..,sii|
   32   69 73 69 73  69 73 66 00  65 69 73 65  6e 2d 76 6f 
|isisisf.eisen-vo|
   48   6c 75 6d 65  00 00 00 00  00 00 03 ec  00 00 00 01 
|lume............|
   64   00 00 03 e9  69 5f 61 4f  75 74 42 75  73 00 00 00 
|....i_aOutBus...|
   80   00 00 00 00  69 5f 61 49  6e 42 75 73  00 00 00 00 
|....i_aInBus....|
   96   00 00 00 05  76 6f 6c 75  6d 65 00 00  00 00 80 3f 
|....volume.....?|
  112   00 00 00 5c  2f 73 5f 6e  65 77 00 00  2c 73 69 69 
|...\/s_new..,sii|
  128   69 73 69 73  69 73 66 00  65 69 73 65  6e 2d 76 6f 
|isisisf.eisen-vo|
  144   6c 75 6d 65  00 00 00 00  00 00 03 ed  00 00 00 01 
|lume............|
  160   00 00 03 e9  69 5f 61 4f  75 74 42 75  73 00 00 00 
|....i_aOutBus...|
  176   00 00 00 01  69 5f 61 49  6e 42 75 73  00 00 00 00 
|....i_aInBus....|
  192   00 00 00 06  76 6f 6c 75  6d 65 00 00  00 00 80 3f 
|....volume.....?|
  208   00 00 00 14  2f 6e 5f 72  75 6e 00 00  2c 69 69 00 
|..../n_run..,ii.|
  224   00 00 03 ec  00 00 00 01  00 00 00 14  2f 6e 5f 72 
|............/n_r|
  240   75 6e 00 00  2c 69 69 00  00 00 03 ed  00 00 00 01 
|un..,ii.........|
  256   00 00 00 10  2f 73 79 6e  63 00 00 00  2c 69 00 00 
|..../sync...,i..|
  272   00 00 00 01                                          |....|

### (JENS): the next 2 lines also appear when I run SuperCollider from 
sclang within Emacs, so they seem 'normal' to me. Are they?

[assert] error: 111 (Connection refused)
[assert] where: "socket.c", "sw_socket_tcp_connect", line: 720

### (JENS): the next line is output by the time I manually connect 
SuperCollider's Jack-output to the alsa_pcm Jack-input with qjackctl:

SC_JackDriver: max output latency 0.046440

### (JENS): the following stuff appears when trying to play the sample 
(trying multiple times):

----- sending out packet -----:
[ "#bundle"
,
   [ "/g_freeAll", 1000 ],
   [ "/b_read", 0, "/d/wav2/Nine Inch Nails - With Teeth/10 Nine Inch 
Nails - Sunspots.wav", 4910014, 16384, 0 ],
   [ "/sync", 0 ]]
[ "/done", "/b_read" ]
[ "/synced", 0 ]
[ "#bundle", 0,
     [ "/g_freeAll", 1000 ],
     [ "/b_read", 0, "/d/wav2/Nine Inch Nails - With Teeth/10 Nine Inch 
Nails - Sunspots.wav", 4910014, 16384, 0 ],
     [ "/sync", 0 ]
]
size 168
    0   23 62 75 6e  64 6c 65 00  00 00 00 00  00 00 00 00 
|#bundle.........|
   16   00 00 00 14  2f 67 5f 66  72 65 65 41  6c 6c 00 00 
|..../g_freeAll..|
   32   2c 69 00 00  00 00 03 e8  00 00 00 68  2f 62 5f 72 
|,i.........h/b_r|
   48   65 61 64 00  2c 69 73 69  69 69 00 00  00 00 00 00 
|ead.,isiii......|
   64   2f 64 2f 77  61 76 32 2f  4e 69 6e 65  20 49 6e 63 
|/d/wav2/Nine Inc|
   80   68 20 4e 61  69 6c 73 20  2d 20 57 69  74 68 20 54   |h Nails - 
With T|
   96   65 65 74 68  2f 31 30 20  4e 69 6e 65  20 49 6e 63   |eeth/10 
Nine Inc|
  112   68 20 4e 61  69 6c 73 20  2d 20 53 75  6e 73 70 6f   |h Nails - 
Sunspo|
  128   74 73 2e 77  61 76 00 00  00 4a eb be  00 00 40 00 
|ts.wav...J.... at .|
  144   00 00 00 00  00 00 00 10  2f 73 79 6e  63 00 00 00 
|......../sync...|
  160   2c 69 00 00  00 00 00 00                             |,i......|

[ "#bundle", 0,
     [ "/s_new", "eisen-phasor", 1002, 0, 1000, "i_aInBuf", 0, "rate", 
1, "i_aPhasorBus", 4 ],
     [ "/s_new", "eisen-input2", 1003, 1, 1000, "i_aInBuf", 0, 
"i_aOutBus", 5, "i_aPhasorBus", 4, "i_interpolation", 1 ]
]
size 244
    0   23 62 75 6e  64 6c 65 00  00 00 00 00  00 00 00 00 
|#bundle.........|
   16   00 00 00 60  2f 73 5f 6e  65 77 00 00  2c 73 69 69 
|...`/s_new..,sii|
   32   69 73 69 73  66 73 69 00  65 69 73 65  6e 2d 70 68 
|isisfsi.eisen-ph|
   48   61 73 6f 72  00 00 00 00  00 00 03 ea  00 00 00 00 
|asor............|
   64   00 00 03 e8  69 5f 61 49  6e 42 75 66  00 00 00 00 
|....i_aInBuf....|
   80   00 00 00 00  72 61 74 65  00 00 00 00  00 00 80 3f 
|....rate.......?|
   96   69 5f 61 50  68 61 73 6f  72 42 75 73  00 00 00 00 
|i_aPhasorBus....|
  112   00 00 00 04  00 00 00 7c  2f 73 5f 6e  65 77 00 00 
|.......|/s_new..|
  128   2c 73 69 69  69 73 69 73  69 73 69 73  69 00 00 00 
|,siiisisisisi...|
  144   65 69 73 65  6e 2d 69 6e  70 75 74 32  00 00 00 00 
|eisen-input2....|
  160   00 00 03 eb  00 00 00 01  00 00 03 e8  69 5f 61 49 
|............i_aI|
  176   6e 42 75 66  00 00 00 00  00 00 00 00  69 5f 61 4f 
|nBuf........i_aO|
  192   75 74 42 75  73 00 00 00  00 00 00 05  69 5f 61 50 
|utBus.......i_aP|
  208   68 61 73 6f  72 42 75 73  00 00 00 00  00 00 00 04 
|hasorBus........|
  224   69 5f 69 6e  74 65 72 70  6f 6c 61 74  69 6f 6e 00 
|i_interpolation.|
  240   00 00 00 01                                          |....|

[ "#bundle", 0,
     [ "/g_freeAll", 1000 ]
]
size 40
    0   23 62 75 6e  64 6c 65 00  00 00 00 00  00 00 00 00 
|#bundle.........|
   16   00 00 00 14  2f 67 5f 66  72 65 65 41  6c 6c 00 00 
|..../g_freeAll..|
   32   2c 69 00 00  00 00 03 e8                             |,i......|


I don't see any error messages among these which could give me a hint of 
where to look next...

My versions are:
Eisenkraut 0.3.1
SuperCollider from CVS, 2005-05-29
Alsa 1.0.4rc2, Jacks 0.99.0, qjackctl 0.2.15a (all from Debian-sarge)
Sun-JDK 1.4.2_02
Kernel 2.6.6

See also a screenshot on 
http://user.cs.tu-berlin.de/~jgulden/test/eisenkraut-screenshot1.png

It would be great to have Eisenkraut working on my machine, so thanks in 
advance for help.

I hope this "herb" (Kraut) will grow and prosper well...

Jens


(See http://www.aromalife.ch//default.asp?prono=7794&nCurKat=44 for more 
on Eisenkraut and Java :-)


Item State schrieb:
> ahoi!
> 
> eisenkraut is a supercollider based sound file editor.
> it's free and cross platform. version 0.3 has been
> uploaded which (as far as i can determine) works quite
> well for standard editing sessions. people who like to
> co-develop are welcome.
> 
> http://sourceforge.net/projects/eisenkraut
> 
> 
> ciao, -sciss-



More information about the Linux-audio-user mailing list