diff options
33 files changed, 1406 insertions, 1231 deletions
diff --git a/muse/ChangeLog b/muse/ChangeLog index 28ecf262..78bb03e8 100644 --- a/muse/ChangeLog +++ b/muse/ChangeLog @@ -1,3 +1,8 @@ +5.9 (ws) + - midi import fixes + - change german documentation encoding to utf8 + - dont assume system encoding is isoLatin1, first patches + (ubuntu and others use utf8) 4.9 (ws) - remove html documentation and replace with *pdf version @@ -23,10 +23,12 @@ BUGS limitations; looping should be implemented internally to work around this + - midi import does not work as expected + FEATURES - wave editor is completely broken - - list editor + - list editor is missing - missing time signature ruler in master editor diff --git a/muse/doc/man/de/man-de.tex b/muse/doc/man/de/man-de.tex index 3928147e..2dc3f6b3 100644 --- a/muse/doc/man/de/man-de.tex +++ b/muse/doc/man/de/man-de.tex @@ -15,7 +15,10 @@ \setupcolors[state=start] \setupbodyfont[Palatino] \language[de] -\enableregime[il1] + +% typeset in unicode (utf8) +% \enableregime[il1] +\enableregime[utf] \startuseMPgraphic{FunnyFrame} picture p; numeric o; path a, b; pair c; @@ -156,14 +159,15 @@ Dieses Dokument wurde mit \pdfTeX\ und dem Macro Paket \ConTeXt\ erstellt. \blank - \copyright 2006 Werner Schweer und Andere + \copyright 2006 Werner Schweer und Andere\par + Titelgrafik \copyright Joachim Schiele \stopstandardmakeup \completecontent -\chapter{Einführung} +\chapter{Einführung} \section{Was ist \M?} - \M\ ist ein ein ''open source'' Programm, veröffentlicht unter der GNU General + \M\ ist ein ein ''open source'' Programm, veröffentlicht unter der GNU General Public License (GPL) (siehe Anhang). \component projekte.tex diff --git a/muse/doc/man/de/miditracks.tex b/muse/doc/man/de/miditracks.tex index 7b7b8d3c..dd299ae3 100644 --- a/muse/doc/man/de/miditracks.tex +++ b/muse/doc/man/de/miditracks.tex @@ -3,41 +3,41 @@ \section{Midi Setup} \subsection{Einfaches Setup} - In einem einfachen Setup ist jeder Midi Anschluß des Rechners - jeweils mit nur einem Midi Gerät verbunden. Außerdem hat jede + In einem einfachen Setup ist jeder Midi Anschluss des Rechners + jeweils mit nur einem Midi Gerät verbunden. Außerdem hat jede Midi Spur einen eigenen Midi Kanal. - Dieses Setup ist am flexibelsten und sollte nach Möglichkeit + Dieses Setup ist am flexibelsten und sollte nach Möglichkeit immer verwendet werden. \subsection{Erweitertes Setup} - \index{mehrere Midi Spuren für einen Midi Kanal} + \index{mehrere Midi Spuren für einen Midi Kanal} Im erweiterten Setup werden mehrere Midi Spuren auf den gleichen Midi Kanal geroutet. Es ist zu beachten, das Midi Controller - natürlich immer für alle Spuren des Kanals gelten. Controller - können nicht individuell für jede Spur eingestellt werden. + natürlich immer für alle Spuren des Kanals gelten. Controller + können nicht individuell für jede Spur eingestellt werden. \subsection{Komplexes Setup} - \index{mehrere Geräte an einem Midi Anschluß} - Als komplex bezeichnen wir ein Setup, in dem an einem Midi Anschluß - mehrere Midi Geräte angeschlossen sind. - Jedes Gerät belegt einen oder mehrere der verfügbaren 16 Midi - Kanäle. Es ist darauf zu achten, das die vergebenen Kanäle nicht - überlappen. Dazu müssen die angeschlossenen Midi Geräte so - konfiguriert werden, das sie nur auf die ihnen zugewiesenen Kanäle + \index{mehrere Geräte an einem Midi Anschluß} + Als komplex bezeichnen wir ein Setup, in dem an einem Midi Anschluß + mehrere Midi Geräte angeschlossen sind. + Jedes Gerät belegt einen oder mehrere der verfügbaren 16 Midi + Kanäle. Es ist darauf zu achten, das die vergebenen Kanäle nicht + überlappen. Dazu müssen die angeschlossenen Midi Geräte so + konfiguriert werden, das sie nur auf die ihnen zugewiesenen Kanäle reagieren. Midi Meldungen, die nicht kanalgebunden sind (wie z.B. Sysex - Meldungen) können an bestimmte Geräte gesendet werden, indem - man jedem Gerät eine individuelle Geräte-Id gibt. Diese Geräte-Id - muß dann in die entsprechenden Meldungen als Zieladresse angegeben + Meldungen) können an bestimmte Geräte gesendet werden, indem + man jedem Gerät eine individuelle Geräte-Id gibt. Diese Geräte-Id + muß dann in die entsprechenden Meldungen als Zieladresse angegeben werden. Da Midi Verbindungen nur eine sehr bescheidene \index{Midi Bandbreite} - Bandbreite besitzen, sollte nach Möglichkeit das komplexe Setup + Bandbreite besitzen, sollte nach Möglichkeit das komplexe Setup vermieden werden. - \section{Midi Eingänge} + \section{Midi Eingänge} Ein Midi Eingang wird im Mixer als Strip und im Arranger als eigene Spur gezeigt. @@ -45,23 +45,23 @@ \blank[big] \Input{Alsa Port:} dies ist die Route zu einem ALSA Midi Eingangs - Port. Ein ALSA Port kann mit mehreren Midi Eingängen verbunden + Port. Ein ALSA Port kann mit mehreren Midi Eingängen verbunden werden. - \Input{Plugins:} die von ALSA gelesenen Midi Events können durch - mehrere Plugins geroutet werden. Verfügbare Plugins filtern oder - verändern die Midi Events. - \Input{Outputs:} ein Midi Eingang hat 16 Ausgänge, jeweils ein - Ausgang für jeden Midi Kanal. Jeder Midi Kanal kann individuell + \Input{Plugins:} die von ALSA gelesenen Midi Events können durch + mehrere Plugins geroutet werden. Verfügbare Plugins filtern oder + verändern die Midi Events. + \Input{Outputs:} ein Midi Eingang hat 16 Ausgänge, jeweils ein + Ausgang für jeden Midi Kanal. Jeder Midi Kanal kann individuell zu einem oder mehreren Midi Spuren geroutet werden. Midi Events, die von den Midi Spuren empfangen werden, haben keine Kanal-Information mehr. - In einem einfachen Setup werden alle Kanäle aller Midi Eingänge + In einem einfachen Setup werden alle Kanäle aller Midi Eingänge zu allen Midi Spuren geroutet. Dies ist die Standard Vorgabe. \blank[big] \section{Midi Spur} - Die Midi Spur enthält alle Midi Note On/off Events. Sie wird im + Die Midi Spur enthält alle Midi Note On/off Events. Sie wird im Mixer als Strip und im Arranger als Spur dargestellt. Die Strip Darstellung im Mixer ist nicht sehr interessant, da eine Midi Spur kaum eigene Mixer relevante Parameter besitzt. In einem @@ -74,24 +74,24 @@ \Input{Monitor:} ist der Monitor Schalter eingeschaltet, werden bei Record alle Input Events zum Ausgang weitergereicht. - Achtung: dies kann möglicherweise zu Midi Rückkopplungen - führen! + Achtung: dies kann möglicherweise zu Midi Rückkopplungen + führen! \Input{Mute:} schaltet die Spur stumm \Input{Solo:} ---nocht nicht definiert--- - \Input{Eingang:} die Spur Eingänge können zu Midi Eingängen + \Input{Eingang:} die Spur Eingänge können zu Midi Eingängen geroutet werden \Input{Ausgang:} der Spur Ausgang kann zu einem oder mehreren - Midi Kanälen geroutet werden. Midi Kanäle sind immer mit + Midi Kanälen geroutet werden. Midi Kanäle sind immer mit einem Midi Port verbunden. \blank[big] - \section{Midi Kanäle} - Midi Kanäle enthalten normalerweise alle Midi Controller Events. + \section{Midi Kanäle} + Midi Kanäle enthalten normalerweise alle Midi Controller Events. Midi Kanal Eigenschaften: @@ -102,30 +102,30 @@ \section{Midi Port} \index{Midi Port} Ein Midi Port representiert ein externes Midi - Gerät und hat folgende Eigenschaften: + Gerä und hat folgende Eigenschaften: \blank[big] \Input{Instrument:} \index{Midi Instrument} beschreibt die Eigenschaften des externen - Midi Instruments. Das Instrument kann aus einer Liste verfügbarer - Instrumentbeschreibungen ausgewählt werden. + Midi Instruments. Das Instrument kann aus einer Liste verfügbarer + Instrumentbeschreibungen ausgewählt werden. \Input{Master Volume:} \index{Midi Master Volume} ist ein Midi - Controller, der die Lautstärke für alle Channel des Midi Ports + Controller, der die Lautstärke für alle Channel des Midi Ports einstellt. - \Input{Geräte Id:} \index{Midi Geräte Id} werden mehrere Midigeräte + \Input{Geräte Id:} \index{Midi Geräte Id} werden mehrere Midigeräte an einen Midi Port - angeschlossen, so müssen alle Geräte eine eindeutige Geräte Id - besitzen. Mit dieser Id kann dann ein bestimmtes Gerät - ausgewählt werden. + angeschlossen, so müssen alle Geräte eine eindeutige Geräte Id + besitzen. Mit dieser Id kann dann ein bestimmtes Gerät + ausgewählt werden. \Input{Alsa Port:} dies ist die Route zu einem ALSA Midi Port. Ein Port Ausgang kann mit mehreren ALSA Ports verbunden werden. \blank[big] - Jeder Midi Port besitzt 16 Kanäle. + Jeder Midi Port besitzt 16 Kanäle. \section{Midi Synthesizer} diff --git a/muse/doc/man/de/projekte.tex b/muse/doc/man/de/projekte.tex index c9870cd8..5fcf8f09 100644 --- a/muse/doc/man/de/projekte.tex +++ b/muse/doc/man/de/projekte.tex @@ -3,10 +3,10 @@ \section{Projekte} Ein \M\ Projekt \index{Projekt} ist ein Ordner, der alle - Dateien des Projekts enthält. Dies sind im wesentlichen die + Dateien des Projekts enthält. Dies sind im wesentlichen die aufgenommenen Wavedateien und die Projektdatei \index{Projektdatei}. - Die Projektdatei enthält alle - Informationen über das Projekt sowie alle Midi Daten soweit + Die Projektdatei enthält alle + Informationen über das Projekt sowie alle Midi Daten soweit vorhanden. Beispiel einer Projekt Ordnerstruktur: @@ -28,33 +28,33 @@ Im oberen Beispiel ist {\tt song1} der Projektordner \index{Projektordner} und {\tt song1.med} die Projektdatei. Die {\tt *.wav} Dateien sind - Audio Aufzeichnungen und die zugehörigen {\tt *.wca} Dateien + Audio Aufzeichnungen und die zugehörigen {\tt *.wca} Dateien enthalten vorberechnete Daten zum schnellen Zeichnen der Wellenformdarstellung auf den Bildschirm. Der Standard-Projektordner \index{Standard-Projektordners} - {\tt ~/MusE/projects} kann im ''Präferenzen'' Menü eingestellt + {\tt ~/MusE/projects} kann im ''Präferenzen'' Menü eingestellt werden. - \section{Projekt auswählen} + \section{Projekt auswählen} - Nach dem Start von \M\ muß immer zunächst ein Projekt geladen oder + Nach dem Start von \M\ muß immer zunächst ein Projekt geladen oder ein neues Projekt erzeugt werden. Normalerweise wird nach dem Start von \M\ das zuletzt bearbeitete - Projekt geladen. Wer das nicht mag kann unter ''Präferenzen'' + Projekt geladen. Wer das nicht mag kann unter ''Präferenzen'' einstellen, ob beim Start ein Standardprojekt \index{Standardprojekt} - geladen oder immer zunächst nach einen Projekt gefragt werden soll. + geladen oder immer zunächst nach einen Projekt gefragt werden soll. \section{Templates} - Wird bei der Projektauswahl ein neues Projekt ausgewählt, dann - wird im nächsten Schritt ein Dialog gezeigt, in dem ein Template - aus einer Liste von verfügbaren Templates ausgewählt werden kann. - Ein Template bestimmt die Grundeinstellungen für ein neues + Wird bei der Projektauswahl ein neues Projekt ausgewählt, dann + wird im nächsten Schritt ein Dialog gezeigt, in dem ein Template + aus einer Liste von verfügbaren Templates ausgewählt werden kann. + Ein Template bestimmt die Grundeinstellungen für ein neues Projekt. Ein Template kann ein ein komplettes Projekt sein welches jedoch keine Audiodaten enthalten kann und welches in der Regel - auch keine Midi Daten enthält. + auch keine Midi Daten enthält. \M\ sucht Templates an zwei Orten: im globalen \M\ Installationspfad (Factory Presets) sowie im @@ -65,16 +65,16 @@ Es gibt keine in \M\ eingebaute Funktion zum Sichern von Projekten. Da sich aber alle Projektdaten in einem Ordner befinden, - können Standard-Tools zum Sichern verwendet werden. + können Standard-Tools zum Sichern verwendet werden. Projekte sind immer in sich komplett und enthalten keine Verweise - auf Dateien außerhalb des Projektordners. Dies gilt nicht - für Soundfonts \index{Soundfonts}, die z.B. vom Fluid-Synthesizer - Plugin verwendet - werden. Es wird empfohlen, diese Soundfonts\index{Soundfonts} + auf Dateien außerhalb des Projektordners. Dies gilt nicht + für Soundfonts \index{Soundfonts}, die z.B. vom Fluid-Synthesizer + Plugin verwendet werden. + Es wird empfohlen, diese Soundfonts\index{Soundfonts} auch als Kopie im Projektordner abzulegen. - Projekte können auf der Platte ohne Probleme verschoben werden, + Projekte können auf der Platte ohne Probleme verschoben werden, da sie keine absoluten Pfade enthalten. \section{Wavedateien und Samplerate} @@ -82,17 +82,17 @@ \index{Wavedateien}\index{Audioprojekte}\index{Midiprojekte} \index{Samplerate} MusE unterscheidet zwischen Midiprojekten und Audioprojekten. - Audioprojekte enthalten zusätzlich zu eventuell vorhandenen + Audioprojekte enthalten zusätzlich zu eventuell vorhandenen Mididaten Wavedateien. Audioprojekte sind immer mit einer bestimmten Samplerate - verbunden und können nur geladen und bearbeitet werden, wenn - die Projekt Samplerate mit der aktuellen Samplerate übereinstimmt. + verbunden und können nur geladen und bearbeitet werden, wenn + die Projekt Samplerate mit der aktuellen Samplerate übereinstimmt. Die aktuelle Samplerate wird immer vom JACK Server bestimmt und - kann von \M\ nicht verändert werden. + kann von \M\ nicht verändert werden. Werden Wavedateien mit einer anderen Samplerate als der aktuellen - importiert, so müssen sie konvertiert (resampled\index{resample}) + importiert, so müssen sie konvertiert (resampled\index{resample}) werden. diff --git a/muse/doc/man/de/struktur.tex b/muse/doc/man/de/struktur.tex index 306ddb30..6dd03e83 100644 --- a/muse/doc/man/de/struktur.tex +++ b/muse/doc/man/de/struktur.tex @@ -17,5 +17,5 @@ \section{Parts} - Midi- und Audiospuren können auf der Zeitachse in Parts unterteilt + Midi- und Audiospuren können auf der Zeitachse in Parts unterteilt werden. diff --git a/muse/doc/man/en/man-en.tex b/muse/doc/man/en/man-en.tex index ec8c9ca0..66984d7e 100644 --- a/muse/doc/man/en/man-en.tex +++ b/muse/doc/man/en/man-en.tex @@ -11,6 +11,7 @@ %\showframe %\showsetups + \usemodule[chart] \setupcolors[state=start] \setupbodyfont[Palatino] @@ -283,7 +284,7 @@ \section{File types used by \M} \Filetype{\textasciitilde/.MusE} - \M\ Configuration File (``\textasciitilde´´ refers to your home directory + \M\ Configuration File (``\textasciitilde´ refers to your home directory aka "/home/tux")\par \Filetype{\textasciitilde/.musePrj} Hidden Project File; stores list of last projects\par diff --git a/muse/muse/CMakeLists.txt b/muse/muse/CMakeLists.txt index d1a6c806..1793c33b 100644 --- a/muse/muse/CMakeLists.txt +++ b/muse/muse/CMakeLists.txt @@ -22,101 +22,130 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ) -MACRO(WRAP_CPP outfiles ) - FOREACH(it ${ARGN}) - SET(${outfiles} ${${outfiles}} ${it}.cpp) - ENDFOREACH(it) - ENDMACRO(WRAP_CPP) - -MACRO(WRAP_H outfiles ) - FOREACH(it ${ARGN}) - SET(${outfiles} ${${outfiles}} ${it}.h) - ENDFOREACH(it) - ENDMACRO(WRAP_H) - -MACRO(WRAP_UI outfiles ) - FOREACH(it ${ARGN}) - SET(${outfiles} ${${outfiles}} ${it}.ui) - ENDFOREACH(it) - ENDMACRO(WRAP_UI) - -subdirs( - ctrl midiedit widgets master driver instruments marker liste +subdirs ( + ctrl + midiedit + widgets + master + driver + instruments + marker + liste + mixer + arranger + waveedit ) -set (muse_uics - preferences - exportmididialog - configmidifile - transport - aboutbox - transpose - projectpropsdialog - projectdialog - templatedialog - mixer/routedialog - arranger/configtrack - arranger/miditrackinfo - arranger/midiportinfo - arranger/midichannelinfo +QT4_WRAP_UI (muse_ui_headers + preferences.ui + exportmididialog.ui + configmidifile.ui + transport.ui + aboutbox.ui + transpose.ui + projectpropsdialog.ui + projectdialog.ui + templatedialog.ui + importmidi.ui ) -set(muse_mocs - projectpropsdialog - projectdialog templatedialog - preferences plugingui midiplugin muse - song transport conf editor - cobject transpose track midisynti - miditrack wavetrack audiotrack audioaux audiooutput - audioinput audiogroup exportmidi - mixer/mixer - mixer/rack - mixer/midirack - mixer/routedialog - mixer/strip - mixer/astrip - mixer/mstrip - arranger/arranger - arranger/canvas - arranger/configtrack - arranger/partdrag - arranger/tllineedit - arranger/tlswidget - arranger/tlwidget - arranger/tlwlayout - arranger/trackdrag - arranger/trackinfo - waveedit/waveedit - waveedit/waveview +QT4_WRAP_CPP ( muse_moc_headers + projectpropsdialog.h + projectdialog.h + templatedialog.h + preferences.h + plugingui.h + midiplugin.h + muse.h + song.h + transport.h + conf.h + editor.h + cobject.h + transpose.h + track.h + midisynti.h + miditrack.h + wavetrack.h + audiotrack.h + audioaux.h + audiooutput.h + audioinput.h + audiogroup.h + exportmidi.h + importmidi.h ) -WRAP_H(muse_mocH ${muse_mocs}) -WRAP_CPP(muse_mocCPP ${muse_mocs}) -WRAP_UI(muse_uiUI ${muse_uics}) - -QT4_WRAP_CPP (muse_moc_headers ${muse_mocH}) -QT4_WRAP_UI (ui_headers ${muse_uiUI}) -QT4_ADD_RESOURCES (qrc_files muse.qrc) +QT4_ADD_RESOURCES (muse_qrc_files muse.qrc) add_executable ( muse - ${qrc_files} + ${muse_qrc_files} + ${muse_moc_headers} + ${muse_ui_headers} + ticksynth.cpp - vst.cpp dssihost.cpp synth.cpp plugin.cpp - mtc.cpp thread.cpp audio.cpp - audioprefetch.cpp audiowriteback.cpp globals.cpp sync.cpp - part.cpp undo.cpp songfile.cpp midi.cpp - importmidi.cpp midifile.cpp icons.cpp event.cpp - eventlist.cpp midievent.cpp waveevent.cpp mpevent.cpp - wave.cpp seqmsg.cpp + vst.cpp + dssihost.cpp + synth.cpp + plugin.cpp + mtc.cpp + thread.cpp + audio.cpp + audioprefetch.cpp + audiowriteback.cpp + globals.cpp + sync.cpp + part.cpp + undo.cpp + songfile.cpp + midi.cpp + importmidi.cpp + importmidi.h + midifile.cpp + icons.cpp + event.cpp + eventlist.cpp + midievent.cpp + waveevent.cpp + mpevent.cpp + wave.cpp + seqmsg.cpp help.cpp - midictrl.cpp fifo.cpp - midiseq.cpp helper.cpp route.cpp shortcuts.cpp ctrl.cpp - gconfig.cpp midirc.cpp midififo.cpp + midictrl.cpp + fifo.cpp + midiseq.cpp + helper.cpp + route.cpp + shortcuts.cpp + ctrl.cpp + gconfig.cpp + midirc.cpp + midififo.cpp midiport.cpp - ${muse_mocCPP} - ${muse_moc_headers} - ${ui_headers} + projectpropsdialog.cpp + projectdialog.cpp + templatedialog.cpp + preferences.cpp + plugingui.cpp + midiplugin.cpp + muse.cpp + song.cpp + transport.cpp + conf.cpp + editor.cpp + cobject.cpp + transpose.cpp + track.cpp + midisynti.cpp + miditrack.cpp + wavetrack.cpp + audiotrack.cpp + audioaux.cpp + audiooutput.cpp + audioinput.cpp + audiogroup.cpp + exportmidi.cpp ) set_target_properties( muse @@ -124,8 +153,21 @@ set_target_properties( muse ) target_link_libraries(muse - ctrl midiedit master driver instruments marker liste - al synti widgets awl + ctrl + midiedit + master + driver + instruments + marker + liste + synti + arranger + mixer + waveedit + widgets + ctrl + al + awl ${QT_LIBRARIES} ${ALSA_LIB} ${JACK_LIB} diff --git a/muse/muse/aboutbox.ui b/muse/muse/aboutbox.ui index cce92f1f..a570f6bc 100644 --- a/muse/muse/aboutbox.ui +++ b/muse/muse/aboutbox.ui @@ -1,7 +1,4 @@ <ui version="4.0" > - <author></author> - <comment></comment> - <exportmacro></exportmacro> <class>AboutBox</class> <widget class="QDialog" name="AboutBox" > <property name="geometry" > @@ -23,328 +20,532 @@ <property name="palette" > <palette> <active> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>221</red> - <green>223</green> - <blue>228</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>85</red> - <green>85</green> - <blue>85</blue> - </color> - <color> - <red>199</red> - <green>199</green> - <blue>199</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>239</red> - <green>237</green> - <blue>165</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>103</red> - <green>141</green> - <blue>178</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>238</blue> - </color> - <color> - <red>82</red> - <green>24</green> - <blue>139</blue> - </color> - <color> - <red>232</red> - <green>232</green> - <blue>232</blue> - </color> + <colorrole role="WindowText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>221</red> + <green>223</green> + <blue>228</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>85</red> + <green>85</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>199</red> + <green>199</green> + <blue>199</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>239</red> + <green>237</green> + <blue>165</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>103</red> + <green>141</green> + <blue>178</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>238</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>82</red> + <green>24</green> + <blue>139</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>232</red> + <green>232</green> + <blue>232</blue> + </color> + </brush> + </colorrole> </active> <inactive> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>221</red> - <green>223</green> - <blue>228</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>85</red> - <green>85</green> - <blue>85</blue> - </color> - <color> - <red>199</red> - <green>199</green> - <blue>199</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>239</red> - <green>237</green> - <blue>165</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>103</red> - <green>141</green> - <blue>178</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>238</blue> - </color> - <color> - <red>82</red> - <green>24</green> - <blue>139</blue> - </color> - <color> - <red>232</red> - <green>232</green> - <blue>232</blue> - </color> + <colorrole role="WindowText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>221</red> + <green>223</green> + <blue>228</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>85</red> + <green>85</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>199</red> + <green>199</green> + <blue>199</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>239</red> + <green>237</green> + <blue>165</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>103</red> + <green>141</green> + <blue>178</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>238</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>82</red> + <green>24</green> + <blue>139</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>232</red> + <green>232</green> + <blue>232</blue> + </color> + </brush> + </colorrole> </inactive> <disabled> - <color> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - <color> - <red>221</red> - <green>223</green> - <blue>228</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>85</red> - <green>85</green> - <blue>85</blue> - </color> - <color> - <red>199</red> - <green>199</green> - <blue>199</blue> - </color> - <color> - <red>199</red> - <green>199</green> - <blue>199</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>128</red> - <green>128</green> - <blue>128</blue> - </color> - <color> - <red>239</red> - <green>237</green> - <blue>165</blue> - </color> - <color> - <red>239</red> - <green>237</green> - <blue>165</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>0</blue> - </color> - <color> - <red>86</red> - <green>117</green> - <blue>148</blue> - </color> - <color> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - <color> - <red>0</red> - <green>0</green> - <blue>238</blue> - </color> - <color> - <red>82</red> - <green>24</green> - <blue>139</blue> - </color> - <color> - <red>232</red> - <green>232</green> - <blue>232</blue> - </color> + <colorrole role="WindowText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>221</red> + <green>223</green> + <blue>228</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>85</red> + <green>85</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>199</red> + <green>199</green> + <blue>199</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>199</red> + <green>199</green> + <blue>199</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>239</red> + <green>237</green> + <blue>165</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>239</red> + <green>237</green> + <blue>165</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Highlight" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>86</red> + <green>117</green> + <blue>148</blue> + </color> + </brush> + </colorrole> + <colorrole role="HighlightedText" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Link" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>0</red> + <green>0</green> + <blue>238</blue> + </color> + </brush> + </colorrole> + <colorrole role="LinkVisited" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>82</red> + <green>24</green> + <blue>139</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase" > + <brush brushstyle="SolidPattern" > + <color alpha="255" > + <red>232</red> + <green>232</green> + <blue>232</blue> + </color> + </brush> + </colorrole> </disabled> </palette> </property> <property name="windowTitle" > <string>AboutBox</string> </property> - <layout class="QVBoxLayout" > + <layout class="QGridLayout" > <property name="margin" > <number>9</number> </property> <property name="spacing" > <number>6</number> </property> - <item> - <layout class="QHBoxLayout" > - <property name="margin" > - <number>0</number> + <item row="0" column="2" > + <widget class="QLabel" name="textLabel1" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>7</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - <property name="spacing" > - <number>6</number> + <property name="text" > + <string><html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:Arial; font-size:10pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:14pt; font-weight:600;">MusE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:14pt; font-weight:600;"><span style=" font-size:10pt; font-weight:400;">Version 1.0pre1</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(C) Copyright 1999-2006 Werner Schweer and others. </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">See http://muse-sequencer.org for new versions and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">more information.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Published under the GNU Public License</p></body></html></string> </property> - <item> - <widget class="QLabel" name="museIcon" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string/> - </property> - <property name="textFormat" > - <enum>Qt::PlainText</enum> - </property> - <property name="pixmap" > - <pixmap>../../share/muse_icon_64x64.png</pixmap> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="textLabel1" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>7</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string><html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:Arial; font-size:10pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:14pt; font-weight:600;">MusE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:14pt; font-weight:600;"><span style=" font-size:10pt; font-weight:400;">Version 1.0pre1</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(C) Copyright 1999-2006 Werner Schweer and others. </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">See http://muse-sequencer.org for new versions and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">more information.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Published under the GNU Public License</p></body></html></string> - </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - </item> - </layout> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="1" > + <widget class="QLabel" name="label" > + <property name="text" > + <string/> + </property> + <property name="pixmap" > + <pixmap resource="muse.qrc" >:/xpm/muse_icon_64x64.png</pixmap> + </property> + </widget> + </item> + <item row="0" column="0" > + <widget class="QLabel" name="museIcon" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string/> + </property> + <property name="textFormat" > + <enum>Qt::PlainText</enum> + </property> + <property name="pixmap" > + <pixmap/> + </property> + </widget> </item> - <item> + <item row="1" column="0" colspan="3" > <layout class="QHBoxLayout" > <property name="margin" > <number>0</number> @@ -390,8 +591,9 @@ </layout> </widget> <layoutdefault spacing="6" margin="11" /> - <pixmapfunction></pixmapfunction> - <resources/> + <resources> + <include location="muse.qrc" /> + </resources> <connections> <connection> <sender>doneHere</sender> diff --git a/muse/muse/arranger/CMakeLists.txt b/muse/muse/arranger/CMakeLists.txt new file mode 100644 index 00000000..fbabb96c --- /dev/null +++ b/muse/muse/arranger/CMakeLists.txt @@ -0,0 +1,61 @@ +#============================================================================= +# MusE +# Linux Music Editor +# $Id:$ +# +# Copyright (C) 2002-2006 by Werner Schweer and others +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +#============================================================================= + +QT4_WRAP_CPP ( arranger_mocs + arranger.h + canvas.h + configtrack.h + partdrag.h + tllineedit.h + tlswidget.h + tlwidget.h + trackdrag.h + trackinfo.h + ) + +QT4_WRAP_UI ( arranger_ui_headers + configtrack.ui + midichannelinfo.ui + midiportinfo.ui + miditrackinfo.ui + ) + +add_library ( arranger STATIC + ${arranger_ui_headers} + ${arranger_mocs} + selectfilter.h + tlwlayout.h + trelement.h + arranger.cpp + canvas.cpp + configtrack.cpp + partdrag.cpp + tllineedit.cpp + tlswidget.cpp + tlwidget.cpp + tlwlayout.cpp + trackdrag.cpp + trackinfo.cpp + ) + +set_target_properties( arranger + PROPERTIES COMPILE_FLAGS "-include ${PROJECT_SOURCE_DIR}/all.h" + ) + diff --git a/muse/muse/audioinput.cpp b/muse/muse/audioinput.cpp index fe19d1ab..6c1f2ba9 100644 --- a/muse/muse/audioinput.cpp +++ b/muse/muse/audioinput.cpp @@ -95,7 +95,7 @@ void AudioInput::activate1() { for (int i = 0; i < channels(); ++i) { char buffer[128]; - snprintf(buffer, 128, "%s-%d", _name.toLatin1().data(), i); + snprintf(buffer, 128, "%s-%d", _name.toAscii().data(), i); if (jackPorts[i]) printf("AudioInput::activate(): already active!\n"); else @@ -159,7 +159,7 @@ void AudioInput::setName(const QString& s) for (int i = 0; i < channels(); ++i) { if (jackPorts[i]) { char buffer[128]; - snprintf(buffer, 128, "%s-%d", _name.toLatin1().data(), i); + snprintf(buffer, 128, "%s-%d", _name.toAscii().data(), i); if (jackPorts[i]) audioDriver->setPortName(jackPorts[i], buffer); } diff --git a/muse/muse/audiooutput.cpp b/muse/muse/audiooutput.cpp index b6cd4d70..ba02813a 100644 --- a/muse/muse/audiooutput.cpp +++ b/muse/muse/audiooutput.cpp @@ -114,7 +114,7 @@ void AudioOutput::setName(const QString& s) for (int i = 0; i < channels(); ++i) { if (jackPorts[i]) { char buffer[128]; - snprintf(buffer, 128, "%s-%d", _name.toLatin1().data(), i); + snprintf(buffer, 128, "%s-%d", _name.toAscii().data(), i); audioDriver->setPortName(jackPorts[i], buffer); } } @@ -128,7 +128,7 @@ void AudioOutput::activate1() { for (int i = 0; i < channels(); ++i) { char buffer[128]; - snprintf(buffer, 128, "%s-%d", _name.toLatin1().data(), i); + snprintf(buffer, 128, "%s-%d", _name.toAscii().data(), i); if (jackPorts[i]) { printf("AudioOutput::activate(): already active!\n"); } diff --git a/muse/muse/audiotrack.cpp b/muse/muse/audiotrack.cpp index 76416855..b430b87d 100644 --- a/muse/muse/audiotrack.cpp +++ b/muse/muse/audiotrack.cpp @@ -116,7 +116,7 @@ void AudioTrack::addPlugin(PluginI* plugin, int idx) float min, max; plugin->range(i, &min, &max); Ctrl* cl = getController(id); - //printf("Plugin name: %s id:%d\n",name.toLatin1().data(), id); + //printf("Plugin name: %s id:%d\n",name.toAscii().data(), id); if (cl == 0) { cl = new Ctrl(id, name); cl->setRange(min, max); @@ -275,7 +275,7 @@ void AudioTrack::readRecfile(QDomNode node) else if (tag == "format") format = e.text().toInt(); else - printf("MusE:readRecfile: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:readRecfile: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } if (QFile::exists(path)) { @@ -286,7 +286,7 @@ void AudioTrack::readRecfile(QDomNode node) recFile()->setFormat(format, channels, AL::sampleRate); if (recFile()->openWrite()) { fprintf(stderr, "create wave file(%s) failed: %s\n", - path.toLatin1().data(), recFile()->strerror().toLatin1().data()); + path.toAscii().data(), recFile()->strerror().toAscii().data()); delete _recFile; _recFile = 0; } @@ -300,7 +300,7 @@ void AudioTrack::readRecfile(QDomNode node) void AudioTrack::putFifo(int channels, unsigned long n, float** bp) { if (fifo.put(channels, n, bp, audio->pos().frame())) { - printf("AudioTrack(%s)::putFifo(): overrun\n", name().toLatin1().data()); + printf("AudioTrack(%s)::putFifo(): overrun\n", name().toAscii().data()); } } @@ -352,7 +352,7 @@ void AudioTrack::record() if (fifo.get(_channels, segmentSize, recBuffer)) { printf("AudioTrack(%s)::record():: fifo underflow\n", - name().toLatin1().data()); + name().toAscii().data()); return; } if (_recFile) { @@ -360,7 +360,7 @@ void AudioTrack::record() } else { printf("AudioTrack(%s)::record(): no recFile\n", - name().toLatin1().data()); + name().toAscii().data()); } } @@ -392,7 +392,7 @@ void AudioTrack::startRecording() _recFile->openWrite(); if (debugMsg) printf("AudioTrack::startRecording: create internal file %s\n", - _recFile->finfo()->filePath().toLatin1().data()); + _recFile->finfo()->filePath().toAscii().data()); } //--------------------------------------------------------- diff --git a/muse/muse/conf.cpp b/muse/muse/conf.cpp index e250622b..29092f0a 100644 --- a/muse/muse/conf.cpp +++ b/muse/muse/conf.cpp @@ -208,7 +208,7 @@ void readConfiguration(QDomNode node) else if (tag == "mtcoffset") { QStringList l = s.simplified().split(":", QString::SkipEmptyParts); if (l.size() != 5) { - printf("cannot convert mtcoffset <%s>n\n", s.toLatin1().data()); + printf("cannot convert mtcoffset <%s>n\n", s.toAscii().data()); } else { int h = l.at(0).toInt(); @@ -269,7 +269,7 @@ void readConfiguration(QDomNode node) DrumEdit::readConfiguration(node); else { printf("MusE:readConfiguration(): unknown tag %s\n", - e.tagName().toLatin1().data()); + e.tagName().toAscii().data()); } } } @@ -306,19 +306,19 @@ static void probeMachineSpecificConfiguration() bool readConfiguration() { if (debugMsg) - printf("readConfiguration <%s>\n", configName.toLatin1().data()); + printf("readConfiguration <%s>\n", configName.toAscii().data()); QFile qf(configName); if (!qf.open(QIODevice::ReadOnly)) { if (debugMsg || debugMode) - fprintf(stderr, "NO Config File <%s> found\n", configName.toLatin1().data()); + fprintf(stderr, "NO Config File <%s> found\n", configName.toAscii().data()); // if the config file does not exist launch probeMachineSpecificConfiguration probeMachineSpecificConfiguration(); return true; } if (debugMsg) - printf("readConfiguration <%s>\n", configName.toLatin1().data()); + printf("readConfiguration <%s>\n", configName.toAscii().data()); QDomDocument doc; int line, column; @@ -328,7 +328,7 @@ bool readConfiguration() col.setNum(column); ln.setNum(line); error = err + "\n at line: " + ln + " col: " + col; - printf("error reading med file: %s\n", error.toLatin1().data()); + printf("error reading med file: %s\n", error.toAscii().data()); return true; } QDomNode node = doc.documentElement(); @@ -344,12 +344,12 @@ bool readConfiguration() if (e.tagName() == "configuration") readConfiguration(node.firstChild()); else - printf("MusE:readConfiguration(): unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:readConfiguration(): unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } else - printf("MusE:readConfiguration() %s not supported\n", e.tagName().toLatin1().data()); + printf("MusE:readConfiguration() %s not supported\n", e.tagName().toAscii().data()); node = node.nextSibling(); } return false; @@ -364,7 +364,7 @@ void MusE::writeGlobalConfiguration() const QFile f(configName); if (!f.open(QIODevice::WriteOnly)) { printf("save configuration to <%s> failed: %s\n", - configName.toLatin1().data(), strerror(errno)); + configName.toAscii().data(), strerror(errno)); return; } Xml xml(&f); @@ -706,7 +706,7 @@ void MixerConfig::read(QDomNode node) else if (tag == "showMidiChannels") showMidiChannels = i; else - printf("MusE:MixerConfig: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:MixerConfig: unknown tag %s\n", e.tagName().toAscii().data()); } } diff --git a/muse/muse/ctrl.cpp b/muse/muse/ctrl.cpp index 12f8a2e6..4bc154e7 100644 --- a/muse/muse/ctrl.cpp +++ b/muse/muse/ctrl.cpp @@ -246,8 +246,8 @@ void Ctrl::read(QDomNode node, bool midi) int frame = sl.at(0).toInt(&ok, 0); if (!ok) { printf("Ctrl::read(1): conversion <%s><%s> to int failed\n", - vp.at(i).simplified().toLatin1().data(), - sl.at(0).toLatin1().data()); + vp.at(i).simplified().toAscii().data(), + sl.at(0).toAscii().data()); break; } CVal val; @@ -257,8 +257,8 @@ void Ctrl::read(QDomNode node, bool midi) val.f = sl.at(1).toDouble(&ok); if (!ok) { printf("Ctrl::read(2): conversion <%s><%s> failed\n", - vp.at(i).simplified().toLatin1().data(), - sl.at(1).toLatin1().data()); + vp.at(i).simplified().toAscii().data(), + sl.at(1).toAscii().data()); break; } add(frame, val); @@ -284,15 +284,15 @@ void Ctrl::write(Xml& xml) if (empty()) { if (_type & INT) - xml.tagE(s.arg(id()).arg(_name).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toLatin1().data()); + xml.tagE(s.arg(id()).arg(_name).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toAscii().data()); else - xml.tagE(s.arg(id()).arg(_name).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toLatin1().data()); + xml.tagE(s.arg(id()).arg(_name).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toAscii().data()); return; } if (_type & INT) - xml.tag(s.arg(id()).arg(_name).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toLatin1().data()); + xml.tag(s.arg(id()).arg(_name).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toAscii().data()); else - xml.tag(s.arg(id()).arg(_name).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toLatin1().data()); + xml.tag(s.arg(id()).arg(_name).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toAscii().data()); int i = 0; for (ciCtrlVal ic = begin(); ic != end(); ++ic) { @@ -310,7 +310,7 @@ void Ctrl::write(Xml& xml) fval.setNum(val.f); ttime.setNum(time); QString str=ttime + " "+ fval + ","; - xml.nput(str.toLatin1().data()); + xml.nput(str.toAscii().data()); } ++i; if (i >= 4) { diff --git a/muse/muse/dssihost.cpp b/muse/muse/dssihost.cpp index 20a726fc..906aab99 100644 --- a/muse/muse/dssihost.cpp +++ b/muse/muse/dssihost.cpp @@ -116,7 +116,7 @@ int DssiSynthIF::oscUpdate(lo_arg **argv) */ lo_send(uiTarget, uiOscConfigurePath, "ss", - DSSI_PROJECT_DIRECTORY_KEY, song->projectDirectory().toLatin1().data()); + DSSI_PROJECT_DIRECTORY_KEY, song->projectDirectory().toAscii().data()); #if 0 /* Send current bank/program (-FIX- another race...) */ @@ -161,8 +161,8 @@ int oscMessageHandler(const char* path, const char* types, lo_arg** argv, SynthI* synti = 0; for (iSynthI si = sl->begin(); si != sl->end(); ++si) { - int l = strlen((*si)->name().toLatin1().data()); - if (!strncmp(p, (*si)->name().toLatin1().data(), l)) { + int l = strlen((*si)->name().toAscii().data()); + if (!strncmp(p, (*si)->name().toAscii().data(), l)) { synti = *si; instance = (DssiSynthIF*)(synti->sif()); p += l; @@ -197,7 +197,7 @@ int oscMessageHandler(const char* path, const char* types, lo_arg** argv, static void scanDSSILib(const QFileInfo& fi) { - void* handle = dlopen(fi.filePath().toLatin1().data(), RTLD_NOW); + void* handle = dlopen(fi.filePath().toAscii().data(), RTLD_NOW); if (handle == 0) { fprintf(stderr, "dlopen(%s) failed: %s\n", fi.filePath().toAscii().data(), dlerror()); @@ -236,7 +236,7 @@ static void scanDSSILib(const QFileInfo& fi) static void scanDSSIDir(const QString& s) { if (debugMsg) - printf("scan dssi plugin dir <%s>\n", s.toLatin1().data()); + printf("scan dssi plugin dir <%s>\n", s.toAscii().data()); #ifdef __APPLE__ QDir pluginDir(s, QString("*.dylib"), QDir::Unsorted, QDir::Files); @@ -354,7 +354,7 @@ bool DssiSynthIF::init(DssiSynth* s) } if (dssi->configure) { char *rv = dssi->configure(handle, DSSI_PROJECT_DIRECTORY_KEY, - museProject.toLatin1().data()); + museProject.toAscii().data()); if (rv) fprintf(stderr, "MusE: Warning: plugin doesn't like project directory: \"%s\"\n", rv); } @@ -546,7 +546,7 @@ SynthIF* DssiSynth::createSIF(SynthI* synti) } } if (dssi == 0) { - fprintf(stderr, "cannot found DSSI synti %s\n", _name.toLatin1().data()); + fprintf(stderr, "cannot found DSSI synti %s\n", _name.toAscii().data()); dlclose(handle); handle = 0; df = 0; @@ -560,7 +560,7 @@ SynthIF* DssiSynth::createSIF(SynthI* synti) // start gui // static char oscUrl[1024]; - snprintf(oscUrl, 1024, "%s/%s", url, synti->name().toLatin1().data()); + snprintf(oscUrl, 1024, "%s/%s", url, synti->name().toAscii().data()); QString guiPath(info.path() + "/" + info.baseName()); QDir guiDir(guiPath, "*", QDir::Unsorted, QDir::Files); @@ -572,7 +572,7 @@ SynthIF* DssiSynth::createSIF(SynthI* synti) if (gui.contains('_') == 0) continue; struct stat buf; - if (stat(gui.toLatin1().data(), &buf)) { + if (stat(gui.toAscii().data(), &buf)) { perror("stat failed"); continue; } @@ -581,17 +581,17 @@ SynthIF* DssiSynth::createSIF(SynthI* synti) (buf.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) { if ((sif->guiPid = fork()) == 0) { execlp( - fi.filePath().toLatin1().data(), - fi.fileName().toLatin1().data(), + fi.filePath().toAscii().data(), + fi.fileName().toAscii().data(), oscUrl, - info.filePath().toLatin1().data(), - name().toLatin1().data(), + info.filePath().toAscii().data(), + name().toAscii().data(), "channel 1", (void*)0); fprintf(stderr, "exec %s %s %s %s failed: %s\n", - fi.filePath().toLatin1().data(), - fi.fileName().toLatin1().data(), + fi.filePath().toAscii().data(), + fi.fileName().toAscii().data(), oscUrl, - name().toLatin1().data(), + name().toAscii().data(), strerror(errno)); exit(1); } @@ -601,7 +601,7 @@ SynthIF* DssiSynth::createSIF(SynthI* synti) } else { printf("%s: no dir for dssi gui found: %s\n", - name().toLatin1().data(), guiPath.toLatin1().data()); + name().toAscii().data(), guiPath.toAscii().data()); _hasGui = false; } return sif; @@ -768,14 +768,14 @@ int DssiSynthIF::oscConfigure(lo_arg** argv) if (!strncmp(key, DSSI_RESERVED_CONFIGURE_PREFIX, strlen(DSSI_RESERVED_CONFIGURE_PREFIX))) { fprintf(stderr, "MusE: OSC: UI for plugin '%s' attempted to use reserved configure key \"%s\", ignoring\n", - synti->name().toLatin1().data(), key); + synti->name().toAscii().data(), key); return 0; } char* message = synth->dssi->configure(handle, key, value); if (message) { printf("MusE: on configure '%s' '%s', plugin '%s' returned error '%s'\n", - key, value, synti->name().toLatin1().data(), message); + key, value, synti->name().toAscii().data(), message); free(message); } diff --git a/muse/muse/esettings.cpp b/muse/muse/esettings.cpp index 9372d0c6..7d3886f0 100644 --- a/muse/muse/esettings.cpp +++ b/muse/muse/esettings.cpp @@ -38,7 +38,7 @@ void CtrlEditSettings::readStatus(QDomNode node) else if (tag == "height") height = i; else - printf("MusE:CtrlEditSettings: unknown tag: %s\n", e.tagName().toLatin1().data()); + printf("MusE:CtrlEditSettings: unknown tag: %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -77,7 +77,7 @@ void EditorSettings::readStatus(QDomNode node) else if (tag == "raster") _raster = i; else - printf("MusE:EditorSettings: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:EditorSettings: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -120,7 +120,7 @@ void GraphEditorSettings::readStatus(QDomNode node) else if (tag == "ypos") _pos.setY(i); else - printf("MusE:GraphEditorSettings: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:GraphEditorSettings: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -211,7 +211,7 @@ void ExtEditorSettings::readStatic(QDomNode node) else if (tag == "midiin") _midiin = i; else - printf("MusE:ExtEditorSettings Static: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:ExtEditorSettings Static: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -255,7 +255,7 @@ void ExtEditorSettings::readStatus(QDomNode node) _numOfCtrlEdits++; } else - printf("MusE:ExtEditorSettings: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:ExtEditorSettings: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -341,7 +341,7 @@ void DrumEditorSettings::readStatus(QDomNode node) else if (tag == "dcanvaswidth") _dcanvasWidth = i; else - printf("MusE:DrumEditorSettings: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:DrumEditorSettings: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -405,7 +405,7 @@ void DrumEditorSettings::readStatic(QDomNode node) else if (tag == "heightDefault") _heightInit = i; else - printf("MusE:DrumEditorSettings Static: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:DrumEditorSettings Static: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -487,7 +487,7 @@ void PianorollSettings::readStatus(QDomNode node) else if (tag == "pianowidth") _pianoWidth = i; else - printf("MusE:PianorollSettings: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:PianorollSettings: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -565,7 +565,7 @@ void PianorollSettings::readStatic(QDomNode node) else if (tag == "heightDefault") _heightInit = i; else - printf("MusE:PianorollSettings Static: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:PianorollSettings Static: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -712,7 +712,7 @@ void SettingsList::readStatus(QDomNode node) else if (tag == "drumeditorstatic") DrumEditorSettings::readStatic(node.firstChild()); else - printf("MusE:SettingsList: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:SettingsList: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } @@ -752,7 +752,7 @@ void SettingsList::readElem(QDomNode node) else if (tag == "id") id = i; else - printf("MusE:SettingsList element: unknown tag %s\n", e.tagName().toLatin1().data()); + printf("MusE:SettingsList element: unknown tag %s\n", e.tagName().toAscii().data()); node = node.nextSibling(); } } diff --git a/muse/muse/eventlist.cpp b/muse/muse/eventlist.cpp index 374c07ff..0ba0ee57 100644 --- a/muse/muse/eventlist.cpp +++ b/muse/muse/eventlist.cpp @@ -38,7 +38,7 @@ void EventList::read(QDomNode node, bool midi) add(e); } else - printf("EventList:read(): unknown tag %s\n", tag.toLatin1().data()); + printf("EventList:read(): unknown tag %s\n", tag.toAscii().data()); } } diff --git a/muse/muse/exportmidi.cpp b/muse/muse/exportmidi.cpp index 879482f4..d8b90e63 100644 --- a/muse/muse/exportmidi.cpp +++ b/muse/muse/exportmidi.cpp @@ -172,7 +172,7 @@ void MusE::exportMidi() //----------------------------------- if (!track->name().isEmpty()) { - const char* name = track->name().toLatin1().data(); + const char* name = track->name().toAscii().data(); int len = strlen(name); MidiEvent ev(0, ME_META, (unsigned char*)name, len+1); ev.setA(0x3); // Meta Sequence/Track Name @@ -184,7 +184,7 @@ void MusE::exportMidi() //----------------------------------- if (!track->comment().isEmpty()) { - const char* comment = track->comment().toLatin1().data(); + const char* comment = track->comment().toAscii().data(); int len = strlen(comment); MidiEvent ev(0, ME_META, (unsigned char*)comment, len+1); ev.setA(0xf); // Meta Text @@ -276,7 +276,7 @@ void MusE::exportMidi() // AL::MarkerList* ml = song->marker(); for (AL::ciMarker m = ml->begin(); m != ml->end(); ++m) { - const char* name = m->second.name().toLatin1().data(); + const char* name = m->second.name().toAscii().data(); int len = strlen(name); MidiEvent ev(m->first, ME_META, (unsigned char*)name, len); ev.setA(0x6); @@ -286,7 +286,7 @@ void MusE::exportMidi() //--------------------------------------------------- // Write Copyright // - const char* copyright = config.copyright.toLatin1().data(); + const char* copyright = config.copyright.toAscii().data(); if (copyright && *copyright) { int len = strlen(copyright); MidiEvent ev(0, ME_META, (unsigned char*)copyright, len); diff --git a/muse/muse/icons.cpp b/muse/muse/icons.cpp index fec9711d..35e2c188 100644 --- a/muse/muse/icons.cpp +++ b/muse/muse/icons.cpp @@ -122,9 +122,9 @@ #include "xpm/editpaste.xpm" #include "xpm/undoS.xpm" #include "xpm/redoS.xpm" -#include "xpm/editcutS.xpm" -#include "xpm/editcopyS.xpm" -#include "xpm/editpasteS.xpm" +// #include "xpm/editcutS.xpm" +// #include "xpm/editcopyS.xpm" +// #include "xpm/editpasteS.xpm" #include "xpm/editmute.xpm" #include "xpm/editmuteS.xpm" diff --git a/muse/muse/importmidi.cpp b/muse/muse/importmidi.cpp index b2d834fd..3afdd22f 100644 --- a/muse/muse/importmidi.cpp +++ b/muse/muse/importmidi.cpp @@ -32,6 +32,76 @@ #include "gconfig.h" #include "driver/mididev.h" #include "part.h" +#include "importmidi.h" +#include "projectdialog.h" +#include "templatedialog.h" +#include "audio.h" +#include "mixer/mixer.h" +#include "arranger/arranger.h" +#include "midictrl.h" + +//--------------------------------------------------------- +// ImportMidiDialog +//--------------------------------------------------------- + +ImportMidiDialog::ImportMidiDialog(QWidget* parent) + : QDialog(parent) + { + setupUi(this); + bg = new QButtonGroup(this); + bg->setExclusive(true); + bg->addButton(addToProject, 0); + bg->addButton(createNewProject, 1); + createNewProject->setChecked(true); + connect(selectTemplate,SIGNAL(clicked()), SLOT(selectTemplateClicked())); + connect(selectProject, SIGNAL(clicked()), SLOT(selectProjectClicked())); + } + +//--------------------------------------------------------- +// selectTemplateClicked +//--------------------------------------------------------- + +void ImportMidiDialog::selectTemplateClicked() + { + TemplateDialog templateDialog; + templateDialog.setTemplatePath(templateName->text()); + int rv = templateDialog.exec(); + if (rv == 0) + return; + templateName->setText(templateDialog.templatePath()); + } + +//--------------------------------------------------------- +// selectProjectClicked +//--------------------------------------------------------- + +void ImportMidiDialog::selectProjectClicked() + { + ProjectDialog projectDialog; + projectDialog.setProjectName(projectName->text()); + int rv = projectDialog.exec(); + if (rv == 0) + return; + projectName->setText(projectDialog.projectName()); + } + +//--------------------------------------------------------- +// setProjectName +//--------------------------------------------------------- + +void ImportMidiDialog::setProjectName(const QString& name) + { + projectName->setText(name); + } + +//--------------------------------------------------------- +// setTemplateName +//--------------------------------------------------------- + +void ImportMidiDialog::setTemplateName(const QString& name) + { + templateName->setText(name); + } //--------------------------------------------------------- // importMidi @@ -39,8 +109,7 @@ void MusE::importMidi() { - QString empty(""); - importMidi(empty); + importMidi(QString()); } void MusE::importMidi(const QString &file) @@ -62,22 +131,156 @@ void MusE::importMidi(const QString &file) else fn = file; - int n = QMessageBox::question(this, appName, - tr("Add midi file to current project?\n"), - tr("&Add to Project"), - tr("&Replace"), - tr("&Abort"), 0, 2); - - switch (n) { - case 0: - importMidi(fn, true); - song->update(-1); - break; - case 1: -//TODO loadProjectFile(fn, false, false); // replace - break; - default: + QFileInfo fi(fn); + + ImportMidiDialog mid(this); + mid.setProjectName(fi.baseName()); + mid.setTemplateName(""); + + if (mid.exec() == 0) + return; + + if (mid.doCreateNewProject()) { + QString header = tr("MusE: import midi file"); + QString path(mid.projectName->text()); + QDir pd(QDir::homePath() + "/" + config.projectPath + "/" + path); + + if (leaveProject()) return; + if (!pd.mkdir(pd.path())) { + QString s(tr("Cannot create project folder <%1>")); + QMessageBox::critical(this, header, s.arg(pd.path())); + return; + } + if (audio->isPlaying()) { + audio->msgPlay(false); + while (audio->isPlaying()) + qApp->processEvents(); + } + addProject(path); // add to history + seqStop(); + if (mixer1) + mixer1->clear(); + if (mixer2) + mixer2->clear(); +//=========================================================== + // + // close all toplevel windows + // + foreach(QWidget* w, QApplication::topLevelWidgets()) { + if (!w->isVisible()) + continue; + if (strcmp("DrumEdit", w->metaObject()->className()) == 0) + w->close(); + else if (strcmp("PianoRoll", w->metaObject()->className()) == 0) + w->close(); + else if (strcmp("MasterEdit", w->metaObject()->className()) == 0) + w->close(); + else if (strcmp("WaveEdit", w->metaObject()->className()) == 0) + w->close(); + else if (strcmp("ListEdit", w->metaObject()->className()) == 0) + w->close(); + } + emit startLoadSong(); + song->setProjectPath(path); + song->clear(false); + song->setCreated(true); + + QString s = mid.templateName->text(); + bool rv = true; + if (!s.isEmpty()) { + QFile f(s); + if (f.open(QIODevice::ReadOnly)) { + rv = song->read(&f); + f.close(); + } + else { + QString msg(tr("Cannot open template file\n%1")); + QMessageBox::critical(this, header, msg.arg(s)); + } + } + if (!rv) { + QString msg(tr("File <%1> read error")); + QMessageBox::critical(this, header, msg.arg(s)); + } + importMidi(fn, true); + + tr_id->setChecked(config.transportVisible); + bt_id->setChecked(config.bigTimeVisible); + + // + // dont emit song->update(): + song->blockSignals(true); + + showBigtime(config.bigTimeVisible); + showMixer1(config.mixer1Visible); + showMixer2(config.mixer2Visible); + if (mixer1 && config.mixer1Visible) + mixer1->setUpdateMixer(); + if (mixer2 && config.mixer2Visible) + mixer2->setUpdateMixer(); + + resize(config.geometryMain.size()); + move(config.geometryMain.topLeft()); + + if (config.transportVisible) + transport->show(); + transport->move(config.geometryTransport.topLeft()); + showTransport(config.transportVisible); + + song->blockSignals(false); + + transport->setMasterFlag(song->masterFlag()); + punchinAction->setChecked(song->punchin()); + punchoutAction->setChecked(song->punchout()); + loopAction->setChecked(song->loop()); + clipboardChanged(); // enable/disable "Paste" + song->setLen(song->len()); // emit song->lenChanged() signal + + // + // add connected channels + // + MidiChannelList* mcl = song->midiChannel(); + TrackList* tl = song->tracks(); + for (iMidiChannel i = mcl->begin(); i != mcl->end(); ++i) { + MidiChannel* mc = (MidiChannel*)*i; + if (mc->noInRoute() || song->trackExists(mc)) + continue; + tl->push_back(mc); + } + + selectionChanged(); // enable/disable "Copy" & "Paste" + arranger->endLoadSong(); + song->updatePos(); + // + // send "cur" controller values to devices + // + + for (iTrack i = tl->begin(); i != tl->end(); ++i) { + Track* track = *i; + track->blockSignals(true); + CtrlList* cl = track->controller(); + for (iCtrl ic = cl->begin(); ic != cl->end(); ++ic) { + Ctrl* ctrl = ic->second; + if (ctrl->type() & Ctrl::INT) { + CVal val; + val = ctrl->curVal(); + ctrl->setCurVal(CTRL_VAL_UNKNOWN); + song->setControllerVal(track, ctrl, val); + } + } + track->blockSignals(false); + } + setWindowTitle(QString("MusE: Song: ") + path); +//=========================================================== + + seqStart(); + audio->msgSeek(song->cPos()); + } + else { + // add to project + importMidi(fn, true); + song->update(-1); } } diff --git a/muse/muse/arranger/miditrackinfo.h b/muse/muse/importmidi.h index ba066986..b7aa1571 100644 --- a/muse/muse/arranger/miditrackinfo.h +++ b/muse/muse/importmidi.h @@ -18,30 +18,29 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. //============================================================================= -#ifndef __MIDITRACKINFO_H__ -#define __MIDITRACKINFO_H__ +#ifndef __IMPORTMIDI_H__ +#define __IMPORTMIDI_H__ - -#include "mtrackinfobase.h" - -class MidiTrack; +#include "ui_importmidi.h" //--------------------------------------------------------- -// MidiTrackInfo +// ImportMidiDialog //--------------------------------------------------------- -class MidiTrackInfo : public MidiTrackInfoBase { - Q_OBJECT - - MidiTrack* track; - int volume, pan, program; +class ImportMidiDialog : public QDialog, public Ui::ImportMidiDialogBase { + Q_OBJECT + QButtonGroup* bg; private slots: - void programChanged(); + void selectProjectClicked(); + void selectTemplateClicked(); public: - MidiTrackInfo(QWidget* parent); - void setTrack(MidiTrack* t) { track = t; } + ImportMidiDialog(QWidget*); + void setProjectName(const QString&); + void setTemplateName(const QString&); + bool doCreateNewProject() const { return bg->checkedId() == 1; } }; + #endif diff --git a/muse/muse/importmidi.ui b/muse/muse/importmidi.ui new file mode 100644 index 00000000..ccf22220 --- /dev/null +++ b/muse/muse/importmidi.ui @@ -0,0 +1,200 @@ +<ui version="4.0" > + <class>ImportMidiDialogBase</class> + <widget class="QDialog" name="ImportMidiDialogBase" > + <property name="geometry" > + <rect> + <x>0</x> + <y>0</y> + <width>312</width> + <height>185</height> + </rect> + </property> + <property name="windowTitle" > + <string>Import Midi File</string> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QRadioButton" name="addToProject" > + <property name="text" > + <string>add to current project</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="createNewProject" > + <property name="text" > + <string>create new project:</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="3" > + <widget class="QToolButton" name="selectProject" > + <property name="toolTip" > + <string>select project name</string> + </property> + <property name="text" > + <string>...</string> + </property> + <property name="icon" > + <iconset resource="muse.qrc" >:/xpm/filenew.png</iconset> + </property> + </widget> + </item> + <item row="0" column="1" > + <widget class="QLabel" name="label" > + <property name="text" > + <string>Project Name: </string> + </property> + </widget> + </item> + <item row="1" column="3" > + <widget class="QToolButton" name="selectTemplate" > + <property name="toolTip" > + <string>select template</string> + </property> + <property name="text" > + <string>...</string> + </property> + <property name="icon" > + <iconset resource="muse.qrc" >:/xpm/filenew.png</iconset> + </property> + </widget> + </item> + <item row="1" column="2" > + <widget class="QLineEdit" name="templateName" /> + </item> + <item row="0" column="0" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" > + <size> + <width>30</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="1" > + <widget class="QLabel" name="label_2" > + <property name="text" > + <string>Template:</string> + </property> + </widget> + </item> + <item row="0" column="2" > + <widget class="QLineEdit" name="projectName" /> + </item> + </layout> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>31</height> + </size> + </property> + </spacer> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>131</width> + <height>31</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="okButton" > + <property name="text" > + <string>OK</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="cancelButton" > + <property name="text" > + <string>Cancel</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <resources> + <include location="muse.qrc" /> + </resources> + <connections> + <connection> + <sender>okButton</sender> + <signal>clicked()</signal> + <receiver>ImportMidiDialogBase</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel" > + <x>278</x> + <y>253</y> + </hint> + <hint type="destinationlabel" > + <x>96</x> + <y>254</y> + </hint> + </hints> + </connection> + <connection> + <sender>cancelButton</sender> + <signal>clicked()</signal> + <receiver>ImportMidiDialogBase</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel" > + <x>369</x> + <y>253</y> + </hint> + <hint type="destinationlabel" > + <x>179</x> + <y>282</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/muse/muse/mixer/CMakeLists.txt b/muse/muse/mixer/CMakeLists.txt new file mode 100644 index 00000000..35e088cf --- /dev/null +++ b/muse/muse/mixer/CMakeLists.txt @@ -0,0 +1,49 @@ +#============================================================================= +# MusE +# Linux Music Editor +# $Id:$ +# +# Copyright (C) 2002-2006 by Werner Schweer and others +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +#============================================================================= + +QT4_WRAP_CPP ( mixer_mocs + astrip.h + midirack.h + mixer.h + mstrip.h + rack.h + routedialog.h + strip.h + ) + +QT4_WRAP_UI ( mixer_ui_headers + routedialog.ui + ) + +add_library ( mixer STATIC + ${mixer_ui_headers} + ${mixer_mocs} + astrip.cpp + midirack.cpp + mixer.cpp + mstrip.cpp + rack.cpp + routedialog.cpp + strip.cpp + ) + +set_target_properties( mixer + PROPERTIES COMPILE_FLAGS "-include ${PROJECT_SOURCE_DIR}/all.h" + ) diff --git a/muse/muse/muse.cpp b/muse/muse/muse.cpp index f359af38..c5e8a00f 100644 --- a/muse/muse/muse.cpp +++ b/muse/muse/muse.cpp @@ -1113,7 +1113,8 @@ void MusE::loadProject(const QString& path) void MusE::loadProject1(const QString& path) { - QString header(tr("MusE: new project")); + QFileInfo file(path); + QString header = tr("MusE: new project"); if (leaveProject()) return; @@ -1122,9 +1123,10 @@ void MusE::loadProject1(const QString& path) mixer1->clear(); if (mixer2) mixer2->clear(); - QString name = path.split("/").last(); + + QString name(file.fileName()); QDir pd(QDir::homePath() + "/" + config.projectPath + "/" + path); - + addProject(path); // add to history bool newProject = false; @@ -1567,7 +1569,7 @@ void MusE::startMidiTrackerEditor() startMidiTrackerEditor(pl); } -void MusE::startMidiTrackerEditor(PartList* pl) +void MusE::startMidiTrackerEditor(PartList* /*pl*/) { //MidiTrackerEditor* miditracker = new MidiTrackerEditor(pl, false); //miditracker->show(); diff --git a/muse/muse/muse.h b/muse/muse/muse.h index f680d804..987fb29e 100644 --- a/muse/muse/muse.h +++ b/muse/muse/muse.h @@ -305,6 +305,7 @@ class MusE : public QMainWindow // , public Ui::MuseBase extern MusE* muse; extern QStyle* smallStyle; +extern void addProject(const QString& name); #endif diff --git a/muse/muse/projectdialog.cpp b/muse/muse/projectdialog.cpp index b31e94ff..c85b3446 100644 --- a/muse/muse/projectdialog.cpp +++ b/muse/muse/projectdialog.cpp @@ -394,6 +394,24 @@ QString ProjectDialog::projectPath() const } //--------------------------------------------------------- +// projectName +//--------------------------------------------------------- + +QString ProjectDialog::projectName() const + { + return projectNameEntry->text(); + } + +//--------------------------------------------------------- +// setProjectName +//--------------------------------------------------------- + +void ProjectDialog::setProjectName(const QString& name) + { + projectNameEntry->setText(name); + } + +//--------------------------------------------------------- // newFolderClicked //--------------------------------------------------------- diff --git a/muse/muse/projectdialog.h b/muse/muse/projectdialog.h index 81a70be1..867ae385 100644 --- a/muse/muse/projectdialog.h +++ b/muse/muse/projectdialog.h @@ -65,6 +65,8 @@ class ProjectDialog : public QDialog, public Ui_ProjectDialogBase { public: ProjectDialog(QWidget* parent = 0); QString projectPath() const; + QString projectName() const; + void setProjectName(const QString&); }; #endif diff --git a/muse/muse/templatedialog.cpp b/muse/muse/templatedialog.cpp index ad34d2a6..0b655862 100644 --- a/muse/muse/templatedialog.cpp +++ b/muse/muse/templatedialog.cpp @@ -238,6 +238,15 @@ QString TemplateDialog::templatePath() const } //--------------------------------------------------------- +// setTemplatePath +//--------------------------------------------------------- + +void TemplateDialog::setTemplatePath(const QString&) + { + // TODO + } + +//--------------------------------------------------------- // itemDoubleClicked //--------------------------------------------------------- diff --git a/muse/muse/templatedialog.h b/muse/muse/templatedialog.h index d9fd5db9..4db03286 100644 --- a/muse/muse/templatedialog.h +++ b/muse/muse/templatedialog.h @@ -44,6 +44,7 @@ class TemplateDialog : public QDialog, public Ui_TemplateDialogBase { public: TemplateDialog(QWidget* parent = 0); QString templatePath() const; + void setTemplatePath(const QString&); }; #endif diff --git a/muse/muse/waveedit/CMakeLists.txt b/muse/muse/waveedit/CMakeLists.txt new file mode 100644 index 00000000..fac8101b --- /dev/null +++ b/muse/muse/waveedit/CMakeLists.txt @@ -0,0 +1,34 @@ +#============================================================================= +# MusE +# Linux Music Editor +# $Id:$ +# +# Copyright (C) 2002-2006 by Werner Schweer and others +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +#============================================================================= + +QT4_WRAP_CPP ( waveedit_mocs + waveedit.h + waveview.h + ) + +add_library ( waveedit STATIC + ${waveedit_mocs} + waveedit.cpp + waveview.cpp + ) + +set_target_properties( waveedit + PROPERTIES COMPILE_FLAGS "-include ${PROJECT_SOURCE_DIR}/all.h" + ) diff --git a/muse/muse/waveedit/waveedit.h b/muse/muse/waveedit/waveedit.h index 11c93cd8..073f5eee 100644 --- a/muse/muse/waveedit/waveedit.h +++ b/muse/muse/waveedit/waveedit.h @@ -20,6 +20,7 @@ namespace Awl { }; using Awl::PosLabel; + //--------------------------------------------------------- // WaveEdit //--------------------------------------------------------- diff --git a/muse/muse/widgets/mtrackinfobase.ui b/muse/muse/widgets/mtrackinfobase.ui deleted file mode 100644 index fc2eba53..00000000 --- a/muse/muse/widgets/mtrackinfobase.ui +++ /dev/null @@ -1,661 +0,0 @@ -<ui version="4.0" > - <author></author> - <comment></comment> - <exportmacro></exportmacro> - <class>MidiTrackInfoBase</class> - <widget class="QWidget" name="MidiTrackInfoBase" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>155</width> - <height>550</height> - </rect> - </property> - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>2</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize" > - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="maximumSize" > - <size> - <width>32767</width> - <height>32767</height> - </size> - </property> - <property name="windowTitle" > - <string>MusE: TrackInfo</string> - </property> - <property name="toolTip" > - <string/> - </property> - <property name="whatsThis" > - <string/> - </property> - <layout class="QGridLayout" > - <property name="margin" > - <number>0</number> - </property> - <property name="spacing" > - <number>0</number> - </property> - <item row="3" column="0" > - <widget class="QSpinBox" name="iOutputChannel" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Output Channel</string> - </property> - <property name="whatsThis" > - <string>all midi events are send to this output channel</string> - </property> - <property name="maximum" > - <number>16</number> - </property> - <property name="minimum" > - <number>1</number> - </property> - </widget> - </item> - <item row="0" column="0" colspan="2" > - <widget class="QLabel" name="TextLabel1" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="frameShape" > - <enum>QFrame::WinPanel</enum> - </property> - <property name="frameShadow" > - <enum>QFrame::Raised</enum> - </property> - <property name="lineWidth" > - <number>1</number> - </property> - <property name="midLineWidth" > - <number>0</number> - </property> - <property name="text" > - <string>Track Info</string> - </property> - <property name="alignment" > - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item row="9" column="0" > - <widget class="QSpinBox" name="iLen" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Modify Note Length</string> - </property> - <property name="suffix" > - <string>%</string> - </property> - <property name="maximum" > - <number>200</number> - </property> - <property name="minimum" > - <number>25</number> - </property> - <property name="value" > - <number>100</number> - </property> - </widget> - </item> - <item row="1" column="0" colspan="2" > - <widget class="QLineEdit" name="iName" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Track Name</string> - </property> - </widget> - </item> - <item row="2" column="0" colspan="2" > - <widget class="OutportCombo" name="iOutput" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Output Port</string> - </property> - </widget> - </item> - <item row="3" column="1" > - <widget class="QLabel" name="TextLabel2" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>OCh.</string> - </property> - <property name="margin" > - <number>2</number> - </property> - </widget> - </item> - <item row="8" column="0" > - <widget class="QSpinBox" name="iVerz" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Track Delay (ticks)</string> - </property> - <property name="specialValueText" > - <string>off</string> - </property> - <property name="maximum" > - <number>1000</number> - </property> - <property name="minimum" > - <number>-1000</number> - </property> - </widget> - </item> - <item row="10" column="0" > - <widget class="QSpinBox" name="iAnschl" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximum" > - <number>127</number> - </property> - <property name="minimum" > - <number>-127</number> - </property> - <property name="value" > - <number>0</number> - </property> - </widget> - </item> - <item row="11" column="0" > - <widget class="QSpinBox" name="iKompr" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Compress Note Velocity</string> - </property> - <property name="suffix" > - <string>%</string> - </property> - <property name="prefix" > - <string/> - </property> - <property name="maximum" > - <number>200</number> - </property> - <property name="minimum" > - <number>25</number> - </property> - <property name="value" > - <number>100</number> - </property> - </widget> - </item> - <item row="7" column="0" > - <widget class="QSpinBox" name="iTransp" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>1</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Pitch Transpose</string> - </property> - <property name="specialValueText" > - <string>off</string> - </property> - <property name="maximum" > - <number>127</number> - </property> - <property name="minimum" > - <number>-127</number> - </property> - <property name="value" > - <number>1</number> - </property> - </widget> - </item> - <item row="7" column="1" > - <widget class="QLabel" name="TextLabel9" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Transp.</string> - </property> - </widget> - </item> - <item row="8" column="1" > - <widget class="QLabel" name="TextLabel10" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Delay</string> - </property> - </widget> - </item> - <item row="11" column="1" > - <widget class="QLabel" name="TextLabel13" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Compr.</string> - </property> - </widget> - </item> - <item row="10" column="1" > - <widget class="QLabel" name="TextLabel12" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Modify Note Velocity</string> - </property> - <property name="text" > - <string>Velocity</string> - </property> - </widget> - </item> - <item row="9" column="1" > - <widget class="QLabel" name="TextLabel11" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Length</string> - </property> - </widget> - </item> - <item row="4" column="0" colspan="2" > - <widget class="QLineEdit" name="iInput" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Input Ports</string> - </property> - </widget> - </item> - <item row="5" column="1" > - <widget class="QLabel" name="TextLabel3" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>IChan.</string> - </property> - <property name="margin" > - <number>2</number> - </property> - </widget> - </item> - <item row="5" column="0" > - <widget class="QLineEdit" name="iInputChannel" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Input Channels</string> - </property> - <property name="whatsThis" > - <string>Events from all configured channels are -recorded to this track. -You can specify more than one channel for -recording: - 1 2 3 record from channel 1 2 and 3 - 1-3 same - 1-3 5 record from channel 1 2 3 and 5</string> - </property> - </widget> - </item> - <item row="12" column="0" colspan="2" > - <widget class="QLabel" name="TextLabel1_2" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>4</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="frameShape" > - <enum>QFrame::WinPanel</enum> - </property> - <property name="frameShadow" > - <enum>QFrame::Raised</enum> - </property> - <property name="lineWidth" > - <number>1</number> - </property> - <property name="midLineWidth" > - <number>1</number> - </property> - <property name="text" > - <string>Channel Info</string> - </property> - <property name="alignment" > - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item row="13" column="0" colspan="2" > - <widget class="QPushButton" name="iPatch" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Select Instrument Patch</string> - </property> - <property name="text" > - <string>???</string> - </property> - </widget> - </item> - <item row="14" column="0" colspan="2" > - <layout class="QHBoxLayout" > - <property name="margin" > - <number>0</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - </layout> - </item> - <item row="17" column="0" > - <widget class="QSpinBox" name="iProgram" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="specialValueText" > - <string>off</string> - </property> - <property name="maximum" > - <number>128</number> - </property> - <property name="minimum" > - <number>0</number> - </property> - <property name="value" > - <number>0</number> - </property> - </widget> - </item> - <item row="16" column="0" > - <widget class="QSpinBox" name="iLBank" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Bank Select LSB</string> - </property> - <property name="specialValueText" > - <string>off</string> - </property> - <property name="maximum" > - <number>128</number> - </property> - <property name="minimum" > - <number>0</number> - </property> - <property name="value" > - <number>0</number> - </property> - </widget> - </item> - <item row="15" column="0" > - <widget class="QSpinBox" name="iHBank" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Bank Select MSB</string> - </property> - <property name="specialValueText" > - <string>off</string> - </property> - <property name="maximum" > - <number>128</number> - </property> - <property name="minimum" > - <number>0</number> - </property> - <property name="value" > - <number>0</number> - </property> - </widget> - </item> - <item row="15" column="1" > - <widget class="QLabel" name="TextLabel4" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Instrument High Bank</string> - </property> - <property name="text" > - <string>H-Bank</string> - </property> - </widget> - </item> - <item row="16" column="1" > - <widget class="QLabel" name="TextLabel5" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Instrument Low Bank</string> - </property> - <property name="lineWidth" > - <number>0</number> - </property> - <property name="text" > - <string>L-Bank</string> - </property> - <property name="margin" > - <number>0</number> - </property> - <property name="indent" > - <number>2</number> - </property> - </widget> - </item> - <item row="17" column="1" > - <widget class="QLabel" name="TextLabel6" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip" > - <string>Instrument/Program/Patch</string> - </property> - <property name="text" > - <string>Progr.</string> - </property> - </widget> - </item> - <item row="20" column="0" colspan="2" > - <spacer> - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - <property name="sizeType" > - <enum>QSizePolicy::Expanding</enum> - </property> - <property name="sizeHint" > - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <layoutdefault spacing="6" margin="11" /> - <pixmapfunction></pixmapfunction> - <customwidgets> - <customwidget> - <class>OutportCombo</class> - <extends></extends> - <header>outportcombo.h</header> - <container>0</container> - <pixmap></pixmap> - </customwidget> - </customwidgets> - <tabstops> - <tabstop>iName</tabstop> - <tabstop>iOutput</tabstop> - <tabstop>iOutputChannel</tabstop> - <tabstop>iInput</tabstop> - <tabstop>iInputChannel</tabstop> - <tabstop>iTransp</tabstop> - <tabstop>iVerz</tabstop> - <tabstop>iLen</tabstop> - <tabstop>iAnschl</tabstop> - <tabstop>iKompr</tabstop> - <tabstop>iPatch</tabstop> - <tabstop>iProgram</tabstop> - </tabstops> - <resources/> - <connections/> -</ui> |