monadgroup / axiom

A powerful realtime node-based audio synthesizer.
Other
678 stars 31 forks source link

Missing source file #1

Closed PoroCYon closed 6 years ago

PoroCYon commented 6 years ago

Hi, I wanted to try it out, but this happened when I tried using CMake to generate a Makefile:

CMake Error at CMakeLists.txt:32 (add_executable):
  Cannot find source file:

    src/widgets/node/NodeItem.cpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx

This file doesn't seem to exist in the repo. Forgot to git add it? (Happens with me, too.)

FYI, I'm on Linux-libre-hardened 4.13.13 x86_64, but that shouldn't matter.

cpdt commented 6 years ago

Hi @PoroCYon, thanks for your interest in the project! Thanks for catching that, I've added in the missing file now.

It's worth mentioning that Axiom is currently in super-early development, so there's not really anything to try out yet, nor can you necessarily expect for the main branch to actually be buildable. It's in active development, so expect things soon!

PoroCYon commented 6 years ago

Thanks! It actually builds perfectly now, even though it segfaults immediately when I try to click something:

Thread 1 "axiom" received signal SIGSEGV, Segmentation fault.
0x00007ffff5aaf496 in __strlen_sse2 () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff5aaf496 in __strlen_sse2 () from /usr/lib/libc.so.6
#1  0x00007ffff695b2ed in QCoreApplication::arguments() () from /usr/lib/libQt5Core.so.5
#2  0x00007fffef1f56c2 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#3  0x00007fffef1f5be7 in QXcbIntegration::wmClass() const () from /usr/lib/libQt5XcbQpa.so.5
#4  0x00007fffef20d4a5 in QXcbWindow::create() () from /usr/lib/libQt5XcbQpa.so.5
#5  0x00007fffef1f6d22 in QXcbIntegration::createPlatformWindow(QWindow*) const () from /usr/lib/libQt5XcbQpa.so.5
#6  0x00007ffff6ed2ece in QWindowPrivate::create(bool, unsigned long long) () from /usr/lib/libQt5Gui.so.5
#7  0x00007ffff7703d88 in QWidgetPrivate::create_sys(unsigned long long, bool, bool) ()
   from /usr/lib/libQt5Widgets.so.5
#8  0x00007ffff7704430 in QWidget::create(unsigned long long, bool, bool) () from /usr/lib/libQt5Widgets.so.5
#9  0x00007ffff771187a in QWidget::setVisible(bool) () from /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff7857312 in QMenu::popup(QPoint const&, QAction*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff786389c in ?? () from /usr/lib/libQt5Widgets.so.5
#12 0x00007ffff7865a28 in ?? () from /usr/lib/libQt5Widgets.so.5
#13 0x00007ffff78663a2 in QMenuBar::mousePressEvent(QMouseEvent*) () from /usr/lib/libQt5Widgets.so.5
#14 0x00007ffff77127bf in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#15 0x00007ffff786768c in QMenuBar::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007ffff76d1e3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#17 0x00007ffff76d9d91 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#18 0x00007ffff69571e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#19 0x00007ffff76d8d1a in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQt5Widgets.so.5
#20 0x00007ffff772d289 in ?? () from /usr/lib/libQt5Widgets.so.5
#21 0x00007ffff772f9a0 in ?? () from /usr/lib/libQt5Widgets.so.5
#22 0x00007ffff76d1e3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007ffff76d9816 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007ffff69571e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#25 0x00007ffff6ec8634 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /usr/lib/libQt5Gui.so.5
#26 0x00007ffff6eca186 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
#27 0x00007ffff6ea1bbc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQt5Gui.so.5
#28 0x00007fffef27615d in ?? () from /usr/lib/libQt5XcbQpa.so.5
#29 0x00007ffff695582b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#30 0x00007ffff695eb18 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#31 0x0000000100010ed0 in main (argc=1, argv=0x7fffffffd1f8) at src/main.cpp:8

This looks like an internal Qt error, probably my bad for using an experimental window manager.

And don't worry about me stealing it, I'm currently working on a 4k intro, and I don't think this would fit in the size limit.

cpdt commented 6 years ago

Yup, this looks like something in Qt... not something I can help with, sorry.

Don't worry, I wouldn't have open-source and MIT-licensed this project if I was worried about people 'stealing' it -- although Axiom is designed to be usable in both 4k and 64k projects (just depends on the complexity of the instruments you create), as I said above it's so early in development that literally nothing actually works yet. I'm still in the process of hammering down a good UI, haven't even started the sound engine or VST stuff yet. In the future when it's more feature-complete, feel free to use it for whatever! That's why it's open-source ๐Ÿ˜„

PoroCYon commented 6 years ago

The problem seems to have fixed itself ยฏ\_(ใƒ„)_/ยฏ, but not everything seems to react to my mouse clicks. Oh well.

Also, you broke the build :P (it's all platform- or compiler-dependent things, I think)

diff --git a/src/model/Schematic.cpp b/src/model/Schematic.cpp
index 750a714..6340d6f 100644
--- a/src/model/Schematic.cpp
+++ b/src/model/Schematic.cpp
@@ -11,7 +11,7 @@ void Schematic::setPan(QPointF pan) {
 }

 void Schematic::serialize(QDataStream &stream) const {
-    stream << pan() << m_nodes.size();
+    stream << pan() << static_cast<qint32>(m_nodes.size());
     for (const auto &node : m_nodes) {
         //node.serialize(stream);
     }

Without the static_cast, the << is ambiguous. MinGW must be doing naughty things, then. (I'm using GCC 7.2.1, fyi.)

diff --git a/src/widgets/node/NodeItem.cpp b/src/widgets/node/NodeItem.cpp
index 76c169e..ff034b9 100644
--- a/src/widgets/node/NodeItem.cpp
+++ b/src/widgets/node/NodeItem.cpp
@@ -5,8 +5,8 @@
 #include <QtWidgets/QGraphicsSceneMouseEvent>
 #include <QtWidgets/QStyleOptionGraphicsItem>

-#include "noderesizer.h"
-#include "nodeitemcontent.h"
+#include "NodeResizer.h"
+#include "NodeItemContent.h"
 #include "../schematic/SchematicCanvas.h"
 #include "src/model/Node.h"

Paths are case-sensitive on non-Windows.

cpdt commented 6 years ago

Oops! Not sure how that case insensitivity crept in there, must be old coding habits ๐Ÿ™‚

As for the <<, I don't think that should be ambiguous? m_nodes.size() is an unsigned int, there is an overload for << that accepts a quint32 (which is just a typedef for unsigned int). Works fine on GCC 7.1.0, perhaps could be a difference in Qt versions? (I'm using Qt 5.9.3) Either way, I've put a cast into 67ac15b, let me know if that fixes it for you.

Regarding reacting to mouse clicks, that's probably because most things don't have any click behaviour yet. As I said, everything's still super-early-progress, most things won't work.

PoroCYon commented 6 years ago

Oops! Not sure how that case insensitivity crept in there, must be old coding habits ๐Ÿ™‚

I'm lazy and use lowercase everywhere ใƒฝ( ๏ฝกใƒฎ๏พŸ)ใƒŽ.

As for the <<, I don't think that should be ambiguous? m_nodes.size() is an unsigned int, there is an overload for << that accepts a quint32 (which is just a typedef for unsigned int).

std::vector.size is a size_t, whose size depends on the platform. I guess you're using a 32-bit compiler? (qt5-base here is 5.10.0)

Regarding reacting to mouse clicks, that's probably because most things don't have any click behaviour yet. As I said, everything's still super-early-progress, most things won't work.

I expected that, don't worry :P. (Even though this behaviour is quite common with my broken WM, too. I usually put Vim keybindings on everything as a 'solution'...)

cpdt commented 6 years ago

Ah, good point, completely forgot it'd be a size_t... I looked at the return value in my IDE and it said unsigned int and just went with that %). But yes, it is a 32-bit compiler. I'm clearly used to doing C++ in an environment where I don't have to worry if it works on any other architectures hehe (i.e demoscene productions).

PoroCYon commented 6 years ago

I'm clearly used to doing C++ in an environment where I don't have to worry if it works on any other architectures hehe (i.e demoscene productions).

I don't have much to say in that regard, I'm "linking" stuff using gcc -S and awk...

Also, this conversation has evolved in something "real-time". Do you happen to be on IRC? I'm "PoroCYon" (what a surprise!) on most networks.

cpdt commented 6 years ago

Sure am! I only really frequent #revision on IRCnet (demoscene-related channel), as.. you guessed it.. 'cpdt' ๐Ÿ™‚

PoroCYon commented 6 years ago
diff --git a/src/widgets/schematic/SchematicPanel.cpp b/src/widgets/schematic/SchematicPanel.cpp
index 664cb9c..f539f1f 100644
--- a/src/widgets/schematic/SchematicPanel.cpp
+++ b/src/widgets/schematic/SchematicPanel.cpp
@@ -3,7 +3,7 @@
 #include "src/util.h"
 #include "src/AxiomApplication.h"
 #include "SchematicView.h"
-#include "src/model/schematic.h"
+#include "src/model/Schematic.h"

 using namespace AxiomGui;

Been naughty again? :P

cpdt commented 6 years ago

Dammit... I blame my IDE ๐Ÿ˜› Thanks for all the sanity checking though! Would you be happy if I gave you contributor rights so you can fix these kinds of things when they come up? It would definitely be helpful having someone testing everything on a unix-like OS to make sure I don't continuously fall into these traps.

PoroCYon commented 6 years ago

Sure, if you don't mind. I won't be able to check a lot, though, as I'm currently studying for the exams.

Dammit... I blame my IDE ๐Ÿ˜›

It would definitely be helpful having someone testing everything on a unix-like OS to make sure I don't continuously fall into these traps.

Install Gentoo and use Vim! :P

cpdt commented 6 years ago

Fair enough. I've sent you a collaborator invite, if you accept don't feel obliged to do anything though. And good luck with your exams!

I tried running Linux once, unfortunately it seems that many of the things I rely on tend to be Windows-only :confused: