Mercurial > hg > tony
comparison src/MainWindow.cpp @ 159:180e6af1806c
added gain knobs for Audio and Notes
author | Justin Salamon <justin.salamon@nyu.edu> |
---|---|
date | Thu, 23 Jan 2014 15:57:51 -0500 |
parents | e1a2c175a0e0 |
children | 106fdf38c6c9 |
comparison
equal
deleted
inserted
replaced
158:e1a2c175a0e0 | 159:180e6af1806c |
---|---|
210 connect(m_playSpeed, SIGNAL(valueChanged(int)), | 210 connect(m_playSpeed, SIGNAL(valueChanged(int)), |
211 this, SLOT(playSpeedChanged(int))); | 211 this, SLOT(playSpeedChanged(int))); |
212 connect(m_playSpeed, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); | 212 connect(m_playSpeed, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); |
213 connect(m_playSpeed, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); | 213 connect(m_playSpeed, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); |
214 | 214 |
215 // Gain controls | |
216 m_gainAudio = new AudioDial(frame); | |
217 m_gainAudio->setMinimum(-50); | |
218 m_gainAudio->setMaximum(50); | |
219 m_gainAudio->setValue(0); | |
220 m_gainAudio->setDefaultValue(0); | |
221 m_gainAudio->setFixedWidth(24); | |
222 m_gainAudio->setFixedHeight(24); | |
223 m_gainAudio->setNotchesVisible(true); | |
224 m_gainAudio->setPageStep(10); | |
225 m_gainAudio->setObjectName(tr("Audio Track Gain")); | |
226 m_gainAudio->setRangeMapper(new LinearRangeMapper(-50, 50, -25, 25, tr("dB"))); | |
227 m_gainAudio->setShowToolTip(true); | |
228 connect(m_gainAudio, SIGNAL(valueChanged(int)), | |
229 this, SLOT(audioGainChanged(int))); | |
230 connect(m_gainAudio, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); | |
231 connect(m_gainAudio, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); | |
232 | |
215 m_gainPitch = new AudioDial(frame); | 233 m_gainPitch = new AudioDial(frame); |
216 m_gainPitch->setMinimum(-50); | 234 m_gainPitch->setMinimum(-50); |
217 m_gainPitch->setMaximum(50); | 235 m_gainPitch->setMaximum(50); |
218 m_gainPitch->setValue(0); | 236 m_gainPitch->setValue(0); |
219 m_gainPitch->setDefaultValue(0); | 237 m_gainPitch->setDefaultValue(0); |
227 connect(m_gainPitch, SIGNAL(valueChanged(int)), | 245 connect(m_gainPitch, SIGNAL(valueChanged(int)), |
228 this, SLOT(pitchGainChanged(int))); | 246 this, SLOT(pitchGainChanged(int))); |
229 connect(m_gainPitch, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); | 247 connect(m_gainPitch, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); |
230 connect(m_gainPitch, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); | 248 connect(m_gainPitch, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); |
231 | 249 |
250 m_gainNotes = new AudioDial(frame); | |
251 m_gainNotes->setMinimum(-50); | |
252 m_gainNotes->setMaximum(50); | |
253 m_gainNotes->setValue(0); | |
254 m_gainNotes->setDefaultValue(0); | |
255 m_gainNotes->setFixedWidth(24); | |
256 m_gainNotes->setFixedHeight(24); | |
257 m_gainNotes->setNotchesVisible(true); | |
258 m_gainNotes->setPageStep(10); | |
259 m_gainNotes->setObjectName(tr("Pitch Track Gain")); | |
260 m_gainNotes->setRangeMapper(new LinearRangeMapper(-50, 50, -25, 25, tr("dB"))); | |
261 m_gainNotes->setShowToolTip(true); | |
262 connect(m_gainNotes, SIGNAL(valueChanged(int)), | |
263 this, SLOT(notesGainChanged(int))); | |
264 connect(m_gainNotes, SIGNAL(mouseEntered()), this, SLOT(mouseEnteredWidget())); | |
265 connect(m_gainNotes, SIGNAL(mouseLeft()), this, SLOT(mouseLeftWidget())); | |
266 // End of Gain controls | |
267 | |
232 layout->setSpacing(4); | 268 layout->setSpacing(4); |
233 layout->addWidget(m_overview, 0, 1); | 269 layout->addWidget(m_overview, 0, 1); |
234 layout->addWidget(scroll, 1, 1); | 270 layout->addWidget(scroll, 1, 1); |
235 | 271 |
236 layout->setColumnStretch(1, 10); | 272 layout->setColumnStretch(1, 10); |
786 m_playAudio = toolbar->addAction(il.load("speaker"), tr("Play Audio")); | 822 m_playAudio = toolbar->addAction(il.load("speaker"), tr("Play Audio")); |
787 m_playAudio->setCheckable(true); | 823 m_playAudio->setCheckable(true); |
788 connect(m_playAudio, SIGNAL(triggered()), this, SLOT(playAudioToggled())); | 824 connect(m_playAudio, SIGNAL(triggered()), this, SLOT(playAudioToggled())); |
789 connect(this, SIGNAL(canPlay(bool)), m_playAudio, SLOT(setEnabled(bool))); | 825 connect(this, SIGNAL(canPlay(bool)), m_playAudio, SLOT(setEnabled(bool))); |
790 | 826 |
827 toolbar->addWidget(m_gainAudio); | |
828 | |
791 // Pitch (f0) | 829 // Pitch (f0) |
792 QLabel *icon_pitch = new QLabel; | 830 QLabel *icon_pitch = new QLabel; |
793 icon_pitch->setFixedWidth(40); | 831 icon_pitch->setFixedWidth(40); |
794 icon_pitch->setAlignment(Qt::AlignRight | Qt::AlignVCenter); | 832 icon_pitch->setAlignment(Qt::AlignRight | Qt::AlignVCenter); |
795 icon_pitch->setPixmap(il.loadPixmap("values")); | 833 icon_pitch->setPixmap(il.loadPixmap("values")); |
821 | 859 |
822 m_playNotes = toolbar->addAction(il.load("speaker"), tr("Play Notes")); | 860 m_playNotes = toolbar->addAction(il.load("speaker"), tr("Play Notes")); |
823 m_playNotes->setCheckable(true); | 861 m_playNotes->setCheckable(true); |
824 connect(m_playNotes, SIGNAL(triggered()), this, SLOT(playNotesToggled())); | 862 connect(m_playNotes, SIGNAL(triggered()), this, SLOT(playNotesToggled())); |
825 connect(this, SIGNAL(canPlay(bool)), m_playNotes, SLOT(setEnabled(bool))); | 863 connect(this, SIGNAL(canPlay(bool)), m_playNotes, SLOT(setEnabled(bool))); |
864 | |
865 toolbar->addWidget(m_gainNotes); | |
826 | 866 |
827 // Spectrogram | 867 // Spectrogram |
828 QLabel *icon_spectrogram = new QLabel; | 868 QLabel *icon_spectrogram = new QLabel; |
829 icon_spectrogram->setFixedWidth(40); | 869 icon_spectrogram->setFixedWidth(40); |
830 icon_spectrogram->setAlignment(Qt::AlignRight | Qt::AlignVCenter); | 870 icon_spectrogram->setAlignment(Qt::AlignRight | Qt::AlignVCenter); |
1661 { | 1701 { |
1662 m_playSpeed->setValue(m_playSpeed->defaultValue()); | 1702 m_playSpeed->setValue(m_playSpeed->defaultValue()); |
1663 } | 1703 } |
1664 | 1704 |
1665 void | 1705 void |
1706 MainWindow::audioGainChanged(int position) | |
1707 { | |
1708 float level = m_gainAudio->mappedValue(); | |
1709 float gain = powf(10, level / 20.0); | |
1710 | |
1711 cerr << "gain = " << gain << " (" << position << " dB)" << endl; | |
1712 | |
1713 contextHelpChanged(tr("Audio Gain: %1 dB").arg(position)); | |
1714 | |
1715 m_analyser->setGain(Analyser::Audio, gain); | |
1716 | |
1717 updateMenuStates(); | |
1718 } | |
1719 | |
1720 void | |
1721 MainWindow::increaseAudioGain() | |
1722 { | |
1723 int value = m_gainAudio->value(); | |
1724 value = value + m_gainAudio->pageStep(); | |
1725 if (value > m_gainAudio->maximum()) value = m_gainAudio->maximum(); | |
1726 m_gainAudio->setValue(value); | |
1727 } | |
1728 | |
1729 void | |
1730 MainWindow::decreaseAudioGain() | |
1731 { | |
1732 int value = m_gainAudio->value(); | |
1733 value = value - m_gainAudio->pageStep(); | |
1734 if (value < m_gainAudio->minimum()) value = m_gainAudio->minimum(); | |
1735 m_gainAudio->setValue(value); | |
1736 } | |
1737 | |
1738 void | |
1739 MainWindow::restoreNormalAudioGain() | |
1740 { | |
1741 m_gainAudio->setValue(m_gainAudio->defaultValue()); | |
1742 } | |
1743 | |
1744 void | |
1666 MainWindow::pitchGainChanged(int position) | 1745 MainWindow::pitchGainChanged(int position) |
1667 { | 1746 { |
1668 float level = m_gainPitch->mappedValue(); | 1747 float level = m_gainPitch->mappedValue(); |
1669 float gain = powf(10, level / 20.0); | 1748 float gain = powf(10, level / 20.0); |
1670 | 1749 |
1697 | 1776 |
1698 void | 1777 void |
1699 MainWindow::restoreNormalPitchGain() | 1778 MainWindow::restoreNormalPitchGain() |
1700 { | 1779 { |
1701 m_gainPitch->setValue(m_gainPitch->defaultValue()); | 1780 m_gainPitch->setValue(m_gainPitch->defaultValue()); |
1781 } | |
1782 | |
1783 void | |
1784 MainWindow::notesGainChanged(int position) | |
1785 { | |
1786 float level = m_gainNotes->mappedValue(); | |
1787 float gain = powf(10, level / 20.0); | |
1788 | |
1789 cerr << "gain = " << gain << " (" << position << " dB)" << endl; | |
1790 | |
1791 contextHelpChanged(tr("Notes Gain: %1 dB").arg(position)); | |
1792 | |
1793 m_analyser->setGain(Analyser::Notes, gain); | |
1794 | |
1795 updateMenuStates(); | |
1796 } | |
1797 | |
1798 void | |
1799 MainWindow::increaseNotesGain() | |
1800 { | |
1801 int value = m_gainNotes->value(); | |
1802 value = value + m_gainNotes->pageStep(); | |
1803 if (value > m_gainNotes->maximum()) value = m_gainNotes->maximum(); | |
1804 m_gainNotes->setValue(value); | |
1805 } | |
1806 | |
1807 void | |
1808 MainWindow::decreaseNotesGain() | |
1809 { | |
1810 int value = m_gainNotes->value(); | |
1811 value = value - m_gainNotes->pageStep(); | |
1812 if (value < m_gainNotes->minimum()) value = m_gainNotes->minimum(); | |
1813 m_gainNotes->setValue(value); | |
1814 } | |
1815 | |
1816 void | |
1817 MainWindow::restoreNormalNotesGain() | |
1818 { | |
1819 m_gainNotes->setValue(m_gainNotes->defaultValue()); | |
1702 } | 1820 } |
1703 | 1821 |
1704 void | 1822 void |
1705 MainWindow::updateVisibleRangeDisplay(Pane *p) const | 1823 MainWindow::updateVisibleRangeDisplay(Pane *p) const |
1706 { | 1824 { |