Skip to Content

Drivers not compilled

7 replies [Last post]
UrbanMusic
Offline
Joined: 04/17/2010

Hello I have got hydrogen to compile svn-85 qt4 but when I launch the app it says there are no drivers compiled when I go into prefrences all drivers except null are not compiled
and I get driver not compiled in red
any help would be great took me two mnths to get svn-qt4 to compile
UrbanMusic

Edit after reply. thanks for looking :-)
I run slamd64 version 12 with qt-4.3.4 in /usr/local/Trolltech & GCC 4.1.2
I am aso using the alsa-hg alsa-driver and alsa-kernel with other alsa parts from current release jack is also svn my main audio output.
I am on another machine for the internet currently, linux box in shed/studio. I get alot of errors about strings and node not found yet when hydrogen compiles there are no errors.

DrG
Offline
Joined: 04/17/2010

That's odd. Have you made sure you have the audio devel packages installed. It depends which linux you run, but it will be something like 'alsa-devel', 'jack-devel', etc.

mauser
Offline
Joined: 03/30/2010

Hi,

you should try our newest svn-version, there was a bug with the qmake script on 64-bit systems.

Benji
Offline
Joined: 04/17/2010

I'm having the same problem - the GUI code builds (after the required "dev" packages are installed), but the audio drivers are not built. The preferences dialog says "Not compiled" for each of the drivers.

A search for

$ find -iname '*jack*'

returns several results from the doc/ and img/ directories, a few results inside .svn/ directories, and also:

./libs/hydrogen/src/IO/jack_output.o
./libs/hydrogen/src/IO/jack_output.cpp
./libs/hydrogen/include/hydrogen/IO/JackOutput.h

So jack_output.cpp *is* getting compiled, but somehow the build system isn't linking it into its proper place. Should it be part of a library, or part of the main GUI binary?

I've had these same results with both 64-bit and 32-bit versions of Kubuntu Hardy (8.04).

I'm currently in the process of trying to manually add libs/hydrogen/src/IO/jack_output.o into the right linker command, but I'd appreciate any hints.

One final question: Is this forum, the developer mailing list, or the SourceForge bug/patch tracking system considered the "best" or "preferred" way to deal with this kind of thing? (I've got a few other minor bugs to report, and probably some future patches to submit.)

|)
|)enji

Benji
Offline
Joined: 04/17/2010

Well, I'm mystified. jack_output.o is getting compiled like this:

g++ -o libs/hydrogen/src/IO/[color="green"]jack_output.o[/color] -c -pthread -Wall -g2 -ggdb -O0 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_SHARED -I. -I3rdparty/install/include -Ilibs/hydrogen/include -I/usr/include/qt4 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui libs/hydrogen/src/IO/[color="green"]jack_output.cpp[/color]

Linked into libhydrogen.a like this:

ar rc [color="green"]libhydrogen.a[/color] libs/hydrogen/src/IO/disk_writer_driver.o libs/hydrogen/src/audio_engine.o libs/hydrogen/src/IO/alsa_audio_driver.o libs/hydrogen/src/IO/transport_info.o libs/hydrogen/src/local_file_mgr.o libs/hydrogen/src/xml/tinyxmlerror.o libs/hydrogen/src/note.o libs/hydrogen/src/smf/smf_event.o libs/hydrogen/src/IO/portaudio_driver.o libs/hydrogen/src/midiMap.o libs/hydrogen/src/preferences.o libs/hydrogen/src/hydrogen.o libs/hydrogen/src/smf/smf.o libs/hydrogen/src/IO/coremidi_driver.o libs/hydrogen/src/fx/effects.o libs/hydrogen/src/sequencer/sequencer.o libs/hydrogen/src/IO/alsa_midi_driver.o libs/hydrogen/src/data_path.o libs/hydrogen/src/instrument.o libs/hydrogen/src/xml/tinystr.o libs/hydrogen/src/IO/[color="green"]jack_output.o[/color] libs/hydrogen/src/action.o libs/hydrogen/src/IO/portmidi_driver.o libs/hydrogen/src/sampler/sampler.o libs/hydrogen/src/IO/midi_input.o libs/hydrogen/src/song.o libs/hydrogen/src/sample.o libs/hydrogen/src/object.o libs/hydrogen/src/sound_library.o libs/hydrogen/src/IO/coreaudio_driver.o libs/hydrogen/src/IO/oss_driver.o libs/hydrogen/src/flac_file.o libs/hydrogen/src/fx/ladspa_fx.o libs/hydrogen/src/pattern.o libs/hydrogen/src/synth/synth.o libs/hydrogen/src/event_queue.o libs/hydrogen/src/IO/fake_driver.o libs/hydrogen/src/xml/tinyxml.o libs/hydrogen/src/IO/null_driver.o libs/hydrogen/src/adsr.o libs/hydrogen/src/xml/tinyxmlparser.o libs/hydrogen/src/playlist.o

And libhydrogen.a is getting linked into hydrogengui like this:

g++ -o [color="green"]hydrogengui[/color] -pthread gui/src/SongEditor/SongEditor.o gui/src/AboutDialog.o gui/src/SoundLibrary/SoundLibraryImportDialog.o gui/src/SoundLibrary/SoundLibraryRepositoryDialog.o gui/src/PlayerControl.o gui/src/ExportSongDialog.o gui/src/HelpBrowser.o gui/src/SplashScreen.o gui/src/HydrogenApp.o gui/src/InstrumentEditor/InstrumentEditor.o gui/src/Mixer/MixerLine.o gui/src/PatternPropertiesDialog.o gui/src/LadspaFXSelector.o gui/src/AudioEngineInfoForm.o gui/src/Mixer/Mixer.o gui/src/PreferencesDialog.o gui/src/DrumkitManager.o gui/src/InstrumentRack.o gui/src/widgets/PixmapWidget.o gui/src/main.o gui/src/widgets/DownloadWidget.o gui/src/PatternEditor/DrumPatternEditor.o gui/src/PatternEditor/PatternEditorRuler.o gui/src/PatternEditor/PatternEditorPanel.o gui/src/widgets/ClickableLabel.o gui/src/widgets/Rotary.o gui/src/MainForm.o gui/src/PatternEditor/PianoRollEditor.o gui/src/SoundLibrary/SoundLibrarySaveDialog.o gui/src/LadspaFXProperties.o gui/src/InstrumentEditor/WaveDisplay.o gui/src/PatternEditor/NotePropertiesRuler.o gui/src/PatternEditor/PatternEditorInstrumentList.o gui/src/SoundLibrary/FileBrowser.o gui/src/PatternFillDialog.o gui/src/widgets/LCDCombo.o gui/src/widgets/Button.o gui/src/SongEditor/SongEditorPanel.o gui/src/FilePreview.o gui/src/InstrumentEditor/LayerPreview.o gui/src/widgets/LCD.o gui/src/widgets/Fader.o gui/src/InstrumentEditor/InstrumentEditorPanel.o gui/src/widgets/MidiActivityWidget.o gui/src/SoundLibrary/SoundLibraryPanel.o gui/src/widgets/CpuLoadWidget.o gui/src/SongPropertiesDialog.o gui/src/SoundLibrary/SoundLibraryTree.o gui/src/PlaylistEditor/PlaylistDialog.o gui/src/SongEditor/moc_SongEditor.o gui/src/moc_AboutDialog.o gui/src/SoundLibrary/moc_SoundLibraryImportDialog.o gui/src/SoundLibrary/moc_SoundLibraryRepositoryDialog.o gui/src/moc_PlayerControl.o gui/src/moc_ExportSongDialog.o gui/src/moc_HelpBrowser.o gui/src/moc_SplashScreen.o gui/src/moc_HydrogenApp.o gui/src/InstrumentEditor/moc_InstrumentEditor.o gui/src/Mixer/moc_MixerLine.o gui/src/moc_PatternPropertiesDialog.o gui/src/moc_LadspaFXSelector.o gui/src/moc_AudioEngineInfoForm.o gui/src/Mixer/moc_Mixer.o gui/src/moc_PreferencesDialog.o gui/src/moc_DrumkitManager.o gui/src/moc_InstrumentRack.o gui/src/widgets/moc_DownloadWidget.o gui/src/PatternEditor/moc_DrumPatternEditor.o gui/src/PatternEditor/moc_PatternEditorRuler.o gui/src/PatternEditor/moc_PatternEditorPanel.o gui/src/widgets/moc_ClickableLabel.o gui/src/widgets/moc_Rotary.o gui/src/moc_MainForm.o gui/src/SoundLibrary/moc_SoundLibrarySaveDialog.o gui/src/moc_LadspaFXProperties.o gui/src/InstrumentEditor/moc_WaveDisplay.o gui/src/PatternEditor/moc_NotePropertiesRuler.o gui/src/PatternEditor/moc_PatternEditorInstrumentList.o gui/src/SoundLibrary/moc_FileBrowser.o gui/src/moc_PatternFillDialog.o gui/src/widgets/moc_LCDCombo.o gui/src/widgets/moc_Button.o gui/src/SongEditor/moc_SongEditorPanel.o gui/src/moc_FilePreview.o gui/src/InstrumentEditor/moc_LayerPreview.o gui/src/widgets/moc_LCD.o gui/src/widgets/moc_Fader.o gui/src/InstrumentEditor/moc_InstrumentEditorPanel.o gui/src/widgets/moc_MidiActivityWidget.o gui/src/SoundLibrary/moc_SoundLibraryPanel.o gui/src/widgets/moc_CpuLoadWidget.o gui/src/moc_SongPropertiesDialog.o gui/src/SoundLibrary/moc_SoundLibraryTree.o gui/src/PlaylistEditor/moc_PlaylistDialog.o -L/usr/lib -L/usr/X11R6/lib -lQtGui -laudio -lXt -lpng -lSM -lICE -lXi -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lXext -lX11 -lQtNetwork -lQtXml -lQtCore -lfontconfig -lz -lm -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl [color="green"]libhydrogen.a[/color] -lsndfile -ltar

Running "$ grep jack_output libhydrogen.a" returns "Binary file libhydrogen.a matches", and running "$ nm libhydrogen.a | grep jack" returns "jack_output.o:". Clearly, the linker seems to be doing the Right Thing with the library.

grep also finds matches for "jack" in hydrogengui, although no matches are found for "jack_output", so I suspect that the "jack" match might be related to the JACK transport GUI button. Running "nm hydrogengui | grep jack" returns only "08076a0e T _ZN13PlayerControl23jackTransportBtnClickedEP6Button".

I've got a few more leads to follow, and then I may try grabbing a copy of SVN from a few months back (maybe longer), and see whether the problem is related to any particular change in the build system.

It is, of course, also possible that this might be a compiler-specific bug. g++ version is "4.2.3 (Ubuntu 4.2.3-2ubuntu7)", and ar version is "2.18.0.20080103".

I'll continue to report, and I'd welcome any tips and/or guidance.

|)
|)enji

Benji
Offline
Joined: 04/17/2010

My latest attempt included modification of the Sconstruct file, in order to add several macro definitions to config.h:

conf.write( "#define ALSA_SUPPORT\n" )
conf.write( "#define JACK_SUPPORT\n" )
conf.write( "#define FLAC_SUPPORT\n" )
conf.write( "#define LADSPA_SUPPORT\n" )
conf.write( "#define LRDF_SUPPORT\n" )
conf.write( "#define OSS_SUPPORT\n" )

The build then dies on the command:

g++ -o gui/src/LadspaFXProperties.o -c -pthread -Wall -g2 -ggdb -O0 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -DQT_SHARED -I. -I3rdparty/install/include -Ilibs/hydrogen/include -Igui/src/UI -I/usr/include/qt4 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXml gui/src/LadspaFXProperties.cpp

With the complaint:

gui/src/LadspaFXProperties.cpp: In member function ?void LadspaFXProperties::faderChanged(Fader*)?:
gui/src/LadspaFXProperties.cpp:139: error: ?Effects? has not been declared
gui/src/LadspaFXProperties.cpp: In member function ?void LadspaFXProperties::updateControls()?:
gui/src/LadspaFXProperties.cpp:174: error: ?Effects? has not been declared
gui/src/LadspaFXProperties.cpp: In member function ?void LadspaFXProperties::selectFXBtnClicked()?:
gui/src/LadspaFXProperties.cpp:351: error: ?Effects? has not been declared
gui/src/LadspaFXProperties.cpp:365: error: ?Effects? has not been declared
gui/src/LadspaFXProperties.cpp: In member function ?void LadspaFXProperties::updateOutputControls()?:
gui/src/LadspaFXProperties.cpp:386: error: ?Effects? has not been declared
gui/src/LadspaFXProperties.cpp: In member function ?void LadspaFXProperties::activateBtnClicked()?:
gui/src/LadspaFXProperties.cpp:432: error: ?Effects? has not been declared
scons: *** [gui/src/LadspaFXProperties.o] Error 1
scons: building terminated because of errors.

I then removed all of the macro definitions except for JACK_SUPPORT. This causes it to die on the main hydrogengui link command (identical to the one I previously posted - I used "diff" to check), with the error:

gui/src/PatternEditor/PatternEditorInstrumentList.o: In function `PatternEditorInstrumentList::moveInstrumentLine(int, int)':
/home/benji/src/hydrogen/gui/src/PatternEditor/PatternEditorInstrumentList.cpp:493: undefined reference to `H2Core::Hydrogen::renameJackPorts()'
gui/src/PatternEditor/PatternEditorInstrumentList.o: In function `PatternEditorInstrumentList::dropEvent(QDropEvent*)':
/home/benji/src/hydrogen/gui/src/PatternEditor/PatternEditorInstrumentList.cpp:616: undefined reference to `H2Core::Hydrogen::renameJackPorts()'
gui/src/PatternEditor/PatternEditorInstrumentList.o: In function `InstrumentLine::functionDeleteInstrument()':
/home/benji/src/hydrogen/gui/src/PatternEditor/PatternEditorInstrumentList.cpp:392: undefined reference to `H2Core::Hydrogen::renameJackPorts()'
collect2: ld returned 1 exit status
scons: *** [hydrogengui] Error 1
scons: building terminated because of errors.

I guess I'll go try grabbing an older SVN copy, and see if I have better luck.

|)
|)enji

mauser
Offline
Joined: 03/30/2010

Hi,

hmmm, strange.. hydrogen builds flawlessly on my ubuntu studio 8.04 installation (but with "make", not "scons") ,so i don't think that there is an general error..
Have you tried "make" as well? Are you sure that you're executing "hydrogengui" when you're using scons? I'm gonna test it on my ubuntu systems later or tomorrow, hope i can help you.

It's ok to post bugreports here, but if you have smaller reports with attached patches a post to our devel-mailing list would be more appropriate.
Good luck,
mauser

Benji
Offline
Joined: 04/17/2010

Well, I ended up setting this problem aside for a few days, and playing with http://www.linuxsampler.org/ instead. Now, after an SVN update, everything seems to build without complaint (still using SCons, with which I have a bit more familiarity). Whatever the problem(s) were, they seem to be fixed now. :)

|)
|)enji