Skip to content

Commit ccf46a1

Browse files
committed
I don't even remember what all of these changes were. All I know is they
break a lot of things and fix a few things /shrug
1 parent 4c32f59 commit ccf46a1

48 files changed

Lines changed: 539 additions & 467 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Strauss.pro

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ SOURCES += src/main.cpp\
3535
src/mainwindow.cpp\
3636
src/midiplayer.cpp\
3737
src/midimanager.cpp\
38-
src/pianoroll.cpp \
3938
src/pianorollitem.cpp \
4039
src/keyboard.cpp \
41-
src/pianorollcontainer.cpp \
40+
src/Controllers/pianorollcontainer.cpp \
41+
src/pianorollwidget.cpp \
4242
src/tabwidgetview.cpp \
4343
src/trackcontainer.cpp \
4444
src/trackdirector.cpp \
@@ -49,12 +49,12 @@ SOURCES += src/main.cpp\
4949
src/folderview.cpp \
5050
src/headercontainer.cpp \
5151
src/tracklengthview.cpp \
52-
src/controlchangecontainer.cpp \
52+
src/Controllers/controlchangecontainer.cpp \
5353
src/controlchangeoverlay.cpp \
5454
src/controlchangeitem.cpp \
5555
src/collisionitem.cpp \
5656
src/pianorollhelperview.cpp \
57-
src/plugineditorcontainer.cpp \
57+
src/Controllers/plugineditorcontainer.cpp \
5858
src/plugintrackview.cpp \
5959
src/pluginview.cpp \
6060
src/settingsdialog.cpp \
@@ -89,10 +89,10 @@ HEADERS += src/mainwindow.h\
8989
src/controlchange.h \
9090
src/midiplayer.h\
9191
src/midimanager.h\
92-
src/pianoroll.h \
9392
src/pianorollitem.h \
9493
src/keyboard.h \
95-
src/pianorollcontainer.h \
94+
src/Controllers/pianorollcontainer.h \
95+
src/pianorollwidget.h \
9696
src/tabwidgetview.h \
9797
src/trackcontainer.h \
9898
src/trackdirector.h \
@@ -103,13 +103,13 @@ HEADERS += src/mainwindow.h\
103103
src/folderview.h \
104104
src/headercontainer.h \
105105
src/tracklengthview.h \
106-
src/controlchangecontainer.h \
106+
src/Controllers/controlchangecontainer.h \
107107
src/controlchangeoverlay.h \
108108
src/controlchangeitem.h \
109109
src/collisionitem.h \
110110
src/pianorollhelperview.h \
111111
src/common.h \
112-
src/plugineditorcontainer.h \
112+
src/Controllers/plugineditorcontainer.h \
113113
src/plugintrackview.h \
114114
src/pluginview.h \
115115
src/settingsdialog.h \

Styles.qss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ VelocityView{
125125
background: rgb(96,96,96);
126126
}
127127

128-
PianoRoll{
128+
PianoRollWidget{
129129
border: 1px solid rgb(44,44,44);
130130
background: rgb(96,96,96);
131131
}

midiInter.proto

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
syntax = "proto3";
2+
3+
message MidiTrack{
4+
string name = 1;
5+
message MidiData{
6+
int32 total_dt = 1;
7+
int32 event = 2;
8+
}
9+
message Plugin{
10+
string plugin_url = 1;
11+
bytes program_bank = 2;
12+
}
13+
message CCData{
14+
int32 cc_type = 1;
15+
int32 x_value = 2;
16+
int32 y_value = 3;
17+
}
18+
Plugin master_plugin = 3;
19+
repeated Plugin child_plugin = 4;
20+
repeated MidiData midi_data = 5;
21+
repeated CCData cc_data = 6;
22+
}
23+
24+
message Application{
25+
string name = 1;
26+
int32 total_dt = 2;
27+
repeated MidiTrack midi_track = 3;
28+
int32 blockSize = 4;
29+
int32 sample_rate = 5;
30+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#include "controlchangecontainer.h"
2+
#include "pianorollcontainer.h"
3+
#include "src/mastertrack.h"
4+
#include "src/controlchangeitem.h"
5+
#include "src/mastertrack.h"
6+
#include "src/trackmidi.h"
7+
/*
8+
This class holds two views which can be switched between. // TODO, this should be handled by another container
9+
The first is the PianoRollContainer which is a collection of
10+
PianoRolls in a stackedLayout. The second is a StackedWidget of ControlChanges
11+
*/
12+
ControlChangeContainer::ControlChangeContainer(MasterTrack *masterTrack,PianoRollContainer* pianoRollContainer) : _masterTrack(masterTrack)
13+
{
14+
QVBoxLayout *layout = new QVBoxLayout;
15+
controlChange = new ControlChange(this);
16+
layout->addWidget(controlChange);
17+
setLayout(layout);
18+
}
19+
20+
21+
22+
void ControlChangeContainer::addControlChange()
23+
{
24+
// auto* cc = new ControlChange(_masterTrack->currentTrack());
25+
26+
}
27+
28+
void ControlChangeContainer::switchControlChange(int index)
29+
{
30+
currentIndex = index;
31+
controlChange->switchOverlay(index,_masterTrack->currentTrack());
32+
// sLayout->setCurrentIndex(1);
33+
// (sLayout2->addWidget(_masterTrack->currentTrack()->_controlChange));
34+
// sLayout2->setCurrentWidget(_masterTrack->currentTrack()->_controlChange);
35+
// _masterTrack->currentTrack()->_controlChange->switchOverlay(currentIndex);
36+
37+
}
38+
void ControlChangeContainer::keyPressEvent(QKeyEvent *event)
39+
{
40+
if (event->modifiers() & Qt::ControlModifier)
41+
{
42+
QWidget::keyPressEvent(event);
43+
return;
44+
}
45+
switch (event->key())
46+
{
47+
case Qt::Key_C:
48+
// switchControlChangeContainer();
49+
break;
50+
51+
default:
52+
break;
53+
}
54+
QWidget::keyPressEvent(event);
55+
}
56+
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@ class ControlChangeContainer: public QFrame
1919
ControlChangeContainer(MasterTrack* masterTrack,PianoRollContainer* pianoRollContainer);
2020
QStackedLayout *sLayout;
2121
QStackedLayout *sLayout2;
22+
MasterTrack* _masterTrack;
2223
QWidget * ccStackedHolder;
23-
void switchControlChangeContainer();
2424
void addControlChange();
2525
void switchControlChange(int index);
2626
int currentIndex = 0;
2727
private:
28-
MasterTrack* _masterTrack;
29-
// PianoRollContainer* _pianoRollContainer;
30-
ControlChange *lastControlChange;
28+
29+
ControlChange *controlChange;
3130
protected:
3231
void keyPressEvent(QKeyEvent * event);
3332
};
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
#include "pianorollcontainer.h"
2+
#include "src/mainwindow.h"
3+
#include "src/pianorollwidget.h"
4+
#include "src/keyboard.h"
5+
#include "src/velocityview.h"
6+
#include "src/tracklengthview.h"
7+
#include "src/trackmidi.h"
8+
9+
/*This class represents a collection of widgets whose uses are all linked to
10+
* one another. A Piano roll for editing MIDI, a Keyboard to for simple user
11+
* playback, and a Velocity view for editing velocities.
12+
*
13+
* */
14+
15+
PianoRollContainer::PianoRollContainer()
16+
{
17+
mainLayout = new QVBoxLayout;
18+
hLayout = new QHBoxLayout;
19+
_pianoRoll = new PianoRollWidget(this);
20+
_keyboard = new Keyboard(this);
21+
_velocityView = new VelocityView(this);
22+
_trackLengthView = new TrackLengthView(this);
23+
auto* hlayout2 = new QHBoxLayout;
24+
auto* hlayout3 = new QHBoxLayout;
25+
26+
hLayout->addWidget(_keyboard);
27+
hLayout->addWidget(_pianoRoll);
28+
hlayout2->addSpacing(_keyboard->width());
29+
hlayout2->addWidget(_velocityView);
30+
hlayout2->addSpacing(qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent));
31+
hlayout3->addSpacing(_keyboard->width());
32+
hlayout3->addWidget(_trackLengthView);
33+
hlayout3->addSpacing(qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent));
34+
35+
mainLayout->addLayout(hlayout3);
36+
mainLayout->addLayout(hLayout);
37+
mainLayout->addLayout(hlayout2);
38+
setLayout(mainLayout);
39+
40+
hLayout->setSpacing(0);
41+
hLayout->setContentsMargins(0,0,0,0);
42+
43+
}
44+
45+
void PianoRollContainer::restoreTrack(TrackMidi* midiTrack)
46+
{
47+
_currentMidiTrack = midiTrack;
48+
_pianoRoll->restoreTrack(midiTrack);
49+
_velocityView->restoreTrack(midiTrack);
50+
}
51+
52+
void PianoRollContainer::playKeyboardNote(int note, bool active)
53+
{
54+
auto velocity = (active ? 45 : 0);
55+
_currentMidiTrack->addMidiEventToPlayback(0x90,note,velocity,g_timer->currentValue());
56+
}
57+
58+
void PianoRollContainer::scaleWidgets(QMatrix matrix)
59+
{
60+
61+
_pianoRoll->setMatrix(matrix);
62+
_trackLengthView->setMatrix(matrix);
63+
_trackLengthView->setMatrix(matrix);
64+
auto m = _velocityView->matrix();
65+
m.setMatrix(matrix.m11(),m.m12(),m.m21(),m.m22(),0,0);
66+
_velocityView->setMatrix(m);
67+
68+
}
69+
70+
void PianoRollContainer::setScrollPositions(int value, Qt::Orientation axis)
71+
{
72+
if(axis == Qt::Horizontal)
73+
{
74+
_pianoRoll->horizontalScrollBar()->setValue(value);
75+
_velocityView->horizontalScrollBar()->setValue(value);
76+
_trackLengthView->horizontalScrollBar()->setValue(value);
77+
}
78+
else
79+
{
80+
_pianoRoll->verticalScrollBar()->setValue(value);
81+
_keyboard->verticalScrollBar()->setValue(value);
82+
}
83+
}
84+
85+
void PianoRollContainer::setScaleFactor(qreal scale)
86+
{
87+
pianoRoll()->scaleFactor = scale;
88+
trackLengthView()->scaleFactor = scale;
89+
trackLengthView()->viewport()->update();
90+
}
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
#include <QPainter>
1212

13-
class PianoRoll;
13+
class PianoRollWidget;
1414
class Keyboard;
1515
class VelocityView;
1616
class TrackLengthView;
@@ -22,16 +22,21 @@ class PianoRollContainer : public QFrame
2222
public:
2323
PianoRollContainer();
2424
void restoreTrack(TrackMidi *midiTrack);
25+
void playKeyboardNote(int note, bool active);
26+
void scaleWidgets(QMatrix matrix);
27+
void setScrollPositions(int value, Qt::Orientation axis);
28+
void setScaleFactor(qreal scale);
2529
VelocityView* velocityView() {return _velocityView;}
2630
TrackLengthView* trackLengthView(){return _trackLengthView;}
27-
PianoRoll* pianoRoll(){return _pianoRoll;}
31+
PianoRollWidget* pianoRoll(){return _pianoRoll;}
2832
Keyboard* keyboard(){return _keyboard;}
2933
private:
3034
QHBoxLayout* hLayout;
3135
QVBoxLayout* mainLayout;
32-
PianoRoll* _pianoRoll;
36+
PianoRollWidget* _pianoRoll;
3337
Keyboard* _keyboard;
3438
VelocityView* _velocityView;
39+
TrackMidi* _currentMidiTrack;
3540
TrackLengthView* _trackLengthView;
3641
};
3742

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class Vst2AudioPlugin;
1010
#include <QVBoxLayout>
1111
#include <QScrollArea>
1212
#include <src/folderview.h>
13-
#include "mastertrack.h"
13+
#include "src/mastertrack.h"
1414
class PluginEditorContainer : public QFrame
1515
{
1616
Q_OBJECT

src/audiopluginfactory.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ AudioPluginFactory::AudioPluginFactory(TrackMidi *track) : midiTrack(track)
99
std::unique_ptr<AudioPlugin> AudioPluginFactory::createAudioPlugin(QString path)
1010
{
1111
auto type = path.section('.',-1);
12-
if (type == "") return nullptr;
13-
if(type == "dll")
12+
if (type == "")
13+
return nullptr;
14+
if (type == "dll")
1415
return createVst2Plugin(path);
15-
if(type == "vst3")
16+
if (type == "vst3")
1617
return createVst3Plugin(path);
18+
1719
return nullptr;
1820
}
1921

@@ -29,7 +31,7 @@ std::unique_ptr<AudioPlugin> AudioPluginFactory::createVst2Plugin(QString path)
2931
{
3032
qDebug() << QDir::current().path();
3133
qDebug() << "Could not copy plugin";
32-
return false;
34+
return nullptr;
3335
}
3436
int last = path.lastIndexOf("/") + 1;
3537
QString pluginName = path.right(path.length() - last);

0 commit comments

Comments
 (0)