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 {