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

From: Jens Gulden <mail@email-addr-hidden>
Date: Wed Jul 20 2005 - 14:09:23 EEST

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....@.|
  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-
Received on Wed Jul 20 16:15:07 2005

This archive was generated by hypermail 2.1.8 : Wed Jul 20 2005 - 16:15:08 EEST