GithubHelp home page GithubHelp logo

ossia / score Goto Github PK

View Code? Open in Web Editor NEW
1.4K 60.0 97.0 56.35 MB

ossia score, an interactive sequencer for the intermedia arts

Home Page: https://ossia.io

License: Other

CMake 4.30% C++ 93.67% Shell 0.79% QMake 0.01% HTML 0.05% QML 0.07% NSIS 0.05% Python 0.35% Objective-C 0.02% Objective-C++ 0.35% Batchfile 0.03% JavaScript 0.30% C 0.01% PowerShell 0.01%
osc sequencer interactive open-source art creative-coding osc-messages midi qt open-sound-control

score's Introduction

Financial Contributors on Open Collective Discord join the chat at https://gitter.im/ossia/score Downloads Version OpenHub

ossia score is a sequencer for audio-visual artists, designed to create interactive shows.

Sequence OSC, MIDI, DMX, sound, video and more, between multiple software and hardware, create interactive and intermedia scores and script with JavaScript, PureData or C++ to customize your score.

Free, open source and runs on desktop, mobile, web and embedded.

Read more on https://ossia.io, come ask questions on the forum or hang out in our Discord or Matrix room #ossia_score:gitter.im, we will be happy to help you !

Quick download links: latest official release / bleeding edge

ossia score screenshot

Running score

Releases are available for Windows, Linux (via AppImage) and Mac OS X.

  • Windows: install and run.
  • macOS: open the .dmg and drop ossia score.app in Applications.
  • Linux: make executable (right click -> permissions or chmod +x) and run the AppImage.

Build status

Platform Status
Official releases  Azure Pipelines
ArchLinux, SUSE, Fedora Linux distros
macOS (Homebrew) macOS
Windows (MSYS2, MSVC 2022) Windows
Debian (Bullseye, Bookworm) Debian
Ubuntu (Jammy 22.04, Lunar 23.04) Ubuntu
Raspberry Pi (Bullseye AArch64) RPi
WebAssembly WASM
Plug-in templates Template check

ossia score uses CppDepend to ensure consistent code quality improvements ; please check it out !

In order to build score, follow the documentation.

Contributing

When updating the score repository through the command line, don't forget to update the submodules, they change often.

cd score
git pull
git submodule update --init --recursive

Some useful and easy potential contributions are listed on the website.

There are also many fixable areas in the code :

  • TODO : for simple issues.
  • FIXME : for critical bugs / problems.
  • MOVEME : when something is not where it should be.
  • REMOVEME : when something is redundant.
  • RENAMEME : when the class does not match with the file it's in.
  • OPTIMIZEME : when an easy-to-write-but-suboptimal algorithm is used.

Finally, one can write its own score plug-ins to add custom features to the software. An example plug-in with the most common classes reimplemented is provided here.

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

score's People

Contributors

afourcadet avatar aklevy avatar aliefhooghe avatar avilleret avatar bltzr avatar borismansencal avatar cbossut avatar dave2309 avatar erkentonio avatar gitter-badger avatar jaimechao avatar jcelerier avatar jln- avatar louishlav avatar luzpaz avatar mariapcarrero avatar monkeywithacupcake avatar nvuaille avatar pach avatar probonopd avatar rblard avatar robinmontferme avatar sciss avatar simonarchipoff avatar simonjamain avatar thibaudk avatar yiids avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

score's Issues

bug sous scénario

comment reproduire :
mode "create" + "fork creation"
créer contrainte
placer sous scénario sur cette contrainte

bug -> lors de la création d'éléments dans le sous-scénario ainsi créer, le mode fork n'est pas pris en compte alors qu'affiché comme tel, il faut le reactiver

OSX click'n drag with 3 fingers doesnt work to create element

To be honnest, element is created but the command is not send to the undo/redo stack.

To see the problem (on OSX yosemite) :

  • create a state
  • try to create a constraint from this state.
    The constraint and is end state is visible but the command doesn't appear in the stack (and the undo/redo bug)

super multi curve !

créer une contrainte,
y placer une automation,
ajouter des points dans l'automation,
resizer la contrainte,
undo,
redo,
bouger les points de l'automation,
magie.....

Inspector number widgets should not respond to mouse scroll wheel

If you make e.g. an automation, and use a mouse with a scroll wheel, I believe there are some major user interaction problems with the number widgets of e.g. the min and max values:

  • IMHO these widgets should not respond to scroll wheel at all. It's much to easy to pass by them with a mouse after a recent scroll, where the scroll wheel is still moving, and suddenly I have made an undesired changed to the value without being aware of it. I tested what the behaviour is in several other applications, such as Omni applications, Pixelmator, Max 7 and several others, and none of them have numbers in inspectors etc. responding to mouse wheel.
  • Secondly, if this feature is going to be there, it is scrolling the wrong way compared to default modern OSX scroll wheel behaviour. This becomes particularly clear when using a trackpad: Double drag upwards diminish rather than increase the value.

Refreshing namespace after having dynamically changed what parameters exists leads to error

It might be that this is a bug with j.modular in Max/Jamoma rather than with i-score.

Steps to reproduce:

  1. Start Max
  2. Open j.minuit_device.maxhelp
  3. Also open j.dbap=.model.maxhelp, and give it the time needed to instantiate itself.
  4. Start i-score, and make a new Minuit device with thefault settings. So far - so good.
  5. Back in Max, in j.dbap=.model.maxhelp increase the number of sources to 2 in the smallest of the three views that the patch contains. (After having typed "2" into the number box, make sure to hit enter so that the live.number object actually outputs the number.) - If everything is done correctly, you should see two channels in the lower left view, and two yellow dots in the ambimonitor view.
  6. Back in -score, refresh the device namespace.

Result: This produce a dialog box with the following error message:

Unable to refresh the device: newDevice.
Cause: namespace empty after the update
  1. Hit the OK button.

Result: /mydbap/sources/number_of_sources has been increased to 2, but /mydbap/sources/source.2 is not being displayed.

  1. Quit -score, restart, and make a new Minuit device with default settings.

Result: Now both sources shows up.

So, somehow, either in i-score or in Max/Jamoma/Minuit there is currently an inability to deal with namespaces where it change over time what parameters exist or not.

UI + (add device) button blue colour suggests that it is always active

screen shot 2015-09-16 at 16 08 23

This is just a minor feedback on one aspect of the user interface: The fact that the "+" button in the lower left edge of the interface is blue, is to me slightly misleading. It seems to suggest that it is already active, much in the same way that one of the two documents in the attached screen shot is active. For me it would make more sense if this icon was grey, and eventually turned blue when clicked.

state machine crashes when background is selected

On 'dev' branch.

  • launch i-score.
  • click outside the main box (e.g. in the area at the bottom). The border should disappear.
  • then try to change edition mode (e.g. from select to move)
  • SEGFAULT

0 QMetaObject::activate(QObject_, int, int, void__) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Core.so.5 0x7ffff6518d66
1 ScenarioStateMachine::exitState moc_ScenarioStateMachine.cpp 230 0x7fffd84a0e8d
2 ScenarioStateMachine::changeTool ScenarioStateMachine.cpp 155 0x7fffd840b361
3 ScenarioControl::<lambda()>::operator()(void) const ScenarioControl.cpp 324 0x7fffd8423154
4 QtPrivate::FunctorCallQtPrivate::IndexesList<, QtPrivate::List<>, void, ScenarioControl::makeToolbars()::<lambda()>>::call(ScenarioControl::<lambda()>, void _) qobjectdefs_impl.h 494 0x7fffd8426d87
5 QtPrivate::FunctorScenarioControl::makeToolbars()::<lambda(), 0>::callQtPrivate::List<, void>(ScenarioControl::<lambda()> &, void , void *) qobjectdefs_impl.h 551 0x7fffd8426a1a
6 QtPrivate::QFunctorSlotObjectScenarioControl::makeToolbars()::<lambda(), 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase , QObject *, void *, bool ) qobject_impl.h 192 0x7fffd8426595
7 QMetaObject::activate(QObject
, int, int, void
*) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Core.so.5 0x7ffff65191d5
8 QAction::triggered(bool) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff73826b2
9 QAction::activate(QAction::ActionEvent) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff73844d7
10 ?? /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff748e8c5
11 QAbstractButton::mouseReleaseEvent(QMouseEvent_) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff748eb84
12 QToolButton::mouseReleaseEvent(QMouseEvent_) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff75531fa
13 QWidget::event(QEvent_) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff73cab9c
14 QToolButton::event(QEvent_) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff7554090
15 QApplicationPrivate::notify_helper(QObject_, QEvent_) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff738f2b4
16 QApplication::notify(QObject_, QEvent_) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff7392a4c
17 QCoreApplication::notifyInternal(QObject_, QEvent_) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Core.so.5 0x7ffff64e6e24
18 QApplicationPrivate::sendMouseEvent(QWidget_, QMouseEvent_, QWidget_, QWidget_, QWidget**, QPointer&, bool) /home/nicolas/Qt/5.4/gcc_64/lib/libQt5Widgets.so.5 0x7ffff7391978
...

Address validation with a tree model

It could be interesting to use the partial state of QValidator to check when an address has a correct syntax, but is not currently present in the DeviceExplorerModel f this document.

See AddressValidator.hpp

Crash when playing automation constraint

Here are the steps that led to this crash:

  1. Opened i-score
  2. Added a minuit device with standard settings, connected to max. In max I had j.minuit_device.maxhelp and dbap=.maxhelp open
  3. Made a new constraint by double-clicking in the time canvas (not sure what the middle window is called)
  4. Added an automation, connecting to /mydbap/sources/source.1/gain, and set start value to -12 and end value to 0
  5. Hit play from the play menu
  6. The automation starts out, and I can see that messages are pushed to Max, but after a while I got the crash. The crash seems to be reproducible.

https://gist.github.com/lossius/1b840fd9f69e96ec4a7a

change drag & drop icon depending on action

When I drag & drop value from namespace into my scenario I can either update a state or add a new one.
I should be very nice that the icon represent the upcomming task and change depending on what is below the mouse.

Screen flickering while playing automation

Steps to reproduce are the same as in #24

We no longer have the crash, but the automation square flickers between white and being properly drawn for the duration of the automation.

I notice similar flickering issues with Jamoma models, and i'm wondering if j.ui have the whole object redrawn whenever gain value change, rather than just redrawing a small zone in the upper right corner. But that's for Jamoma developers to look at.

2D and possibly 3D spline editor

This is a feature request.

I'm able to create automations of Jamoma parametes of type decimal. I have attempted to create automations of source positions. These are of type array and contains three decimals (x, y and z). They are set up using the position dataspace, so that they in Max can be addressed using Cartesian and Spherical coordinates interchangeably.

One of the benefits of this in Max is that if you ramp to new values using xyz, the position moves along a straight line, while if you ramp using aed coordinates, it will move along spiraling trajectories.

I'm sure that there are some design issues to be considered here, but it would be nice to be able to control positions in i-score.

crash when creating a TimeConstraint from the beginning

here is the step to reproduce it :

  • in "create" mode : create a TimeConstraint
  • in "select" mode : select the first TimeNode
  • fn + backspace to delete the first TimeNode and the following TimeConstraint
  • in "create" mode : create a TimeConstraint from the beginning
    => crash

here is the crash log :

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGTRAP)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff975f1c82 kill + 10
1 libiscore_plugin_scenario.dylib 0x00000001133b5b9f NotifyingMap::at(id_base_t<EventModel, boost::optional > const&) const + 47 (NotifyingMap.hpp:74)
2 libiscore_plugin_scenario.dylib 0x00000001133b54bf ScenarioModel::event(id_base_t<EventModel, boost::optional > const&) const + 47 (ScenarioModel.hpp:93)
3 libiscore_plugin_scenario.dylib 0x00000001133145d9 ScenarioModel::startEvent() const + 41 (ScenarioModel.hpp:114)
4 libiscore_plugin_scenario.dylib 0x0000000113311260 ScenarioCreation_FromNothing::ScenarioCreation_FromNothing(ScenarioStateMachine const&, Path const&, iscore::CommandStack&, QState_)::$13::operator()() const + 96 (ScenarioCreation_FromNothing.cpp:140)
5 libiscore_plugin_scenario.dylib 0x00000001133111dc QtPrivate::FunctorCallQtPrivate::IndexesList<, QtPrivate::List<>, void, ScenarioCreation_FromNothing::ScenarioCreation_FromNothing(ScenarioStateMachine const&, Path const&, iscore::CommandStack&, QState
)::$13>::call(ScenarioCreation_FromNothing::ScenarioCreation_FromNothing(ScenarioStateMachine const&, Path const&, iscore::CommandStack&, QState)::$13, void) + 28 (qobjectdefs_impl.h:495)
6 libiscore_plugin_scenario.dylib 0x00000001133111ac ZN9QtPrivate7FunctorIZN28ScenarioCreation_FromNothingC1ERK20ScenarioStateMachineRK4PathI13ScenarioModelERN6iscore12CommandStackEP6QStateE4$13Li0EE4callINS_4ListIJEEEvEEvRSF_PvPSL + 44 (qobjectdefs_impl.h:553)
7 libiscore_plugin_scenario.dylib 0x0000000113311128 QtPrivate::QFunctorSlotObject<ScenarioCreation_FromNothing::ScenarioCreation_FromNothing(ScenarioStateMachine const&, Path const&, iscore::CommandStack&, QState
)::$13, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase, QObject_, void__, bool_) + 152 (qobject_impl.h:193)
8 org.qt-project.QtCore 0x000000010bee0792 QMetaObject::activate(QObject_, int, int, void__) + 1986
9 org.qt-project.QtCore 0x000000010bf2d2d6 QAbstractStatePrivate::emitEntered() + 22
10 org.qt-project.QtCore 0x000000010bf17a92 QStateMachinePrivate::enterStates(QEvent_, QList<QAbstractState
> const&, QList<QAbstractState*> const&, QSet<QAbstractState*> const&, QHash<QAbstractState*, QList >&, QList<QAbstractAnimation*> const&) + 754
11 org.qt-project.QtCore 0x000000010bf15957 QStateMachinePrivate::microstep(QEvent_, QList<QAbstractTransition_> const&, CalculationCache_) + 503
12 org.qt-project.QtCore 0x000000010bf1edd3 QStateMachinePrivate::q_process() + 931
13 org.qt-project.QtCore 0x000000010bf22ed1 QStateMachine::qt_static_metacall(QObject
, QMetaObject::Call, int, void*) + 993
14 org.qt-project.QtCore 0x000000010bed9753 QObject::event(QEvent
) + 755
15 org.qt-project.QtCore 0x000000010bf22262 QStateMachine::event(QEvent_) + 242
16 org.qt-project.QtWidgets 0x000000010b0586fb QApplicationPrivate::notify_helper(QObject_, QEvent_) + 251
17 org.qt-project.QtWidgets 0x000000010b05bade QApplication::notify(QObject_, QEvent_) + 8318
18 org.qt-project.QtCore 0x000000010beb0e8b QCoreApplicationPrivate::sendPostedEvents(QObject_, int, QThreadData_) + 971
19 libqcocoa.dylib 0x000000010edbd08e QCocoaEventDispatcherPrivate::processPostedEvents() + 190
20 libqcocoa.dylib 0x000000010edbd911 QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void_) + 33
21 com.apple.CoreFoundation 0x00007fff8efd9a01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION
+ 17
22 com.apple.CoreFoundation 0x00007fff8efcbb8d __CFRunLoopDoSources0 + 269
23 com.apple.CoreFoundation 0x00007fff8efcb1bf __CFRunLoopRun + 927
24 com.apple.CoreFoundation 0x00007fff8efcabd8 CFRunLoopRunSpecific + 296
25 com.apple.HIToolbox 0x00007fff9553b56f RunCurrentEventLoopInMode + 235
26 com.apple.HIToolbox 0x00007fff9553b2ea ReceiveNextEventCommon + 431
27 com.apple.HIToolbox 0x00007fff9553b12b _BlockUntilNextEventMatchingListInModeWithFilter + 71
28 com.apple.AppKit 0x00007fff8d5b88ab _DPSNextEvent + 978
29 com.apple.AppKit 0x00007fff8d5b7e58 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346
30 com.apple.AppKit 0x00007fff8d5adaf3 -[NSApplication run] + 594
31 libqcocoa.dylib 0x000000010edbc7fd QCocoaEventDispatcher::processEvents(QFlagsQEventLoop::ProcessEventsFlag) + 2189
32 org.qt-project.QtCore 0x000000010bead8cd QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) + 381
33 org.qt-project.QtCore 0x000000010beb078a QCoreApplication::exec() + 346
34 i-score 0x000000010adc7ee1 iscore::Application::exec() + 17 (Application.hpp:38)
35 i-score 0x000000010adc7e70 main + 80 (main.cpp:37)
36 libdyld.dylib 0x00007fff925c45c9 start + 1

i-score can't co-exist with Jamoma 0.5.7

It seems that if Jamoma 0.5.7 is installed on the computer, i-score starts looking for jamoma-related lib files in the wrong place, and crash.

Jamoma 0.5.7 installs header files, libraries and extensions into /usr/local/jamoma

Minuit device is not released properly

Steps to reproduce:

  1. Start Max and open j.minuit_device.maxhelp
  2. Start i-score
  3. Create a new device with default settings, connecting to Max
  4. Make a second i-score (from File > New). leave it empty for the time being.
  5. Close the first document, saving or not doesn't matter
  6. Try to set up a new device in the second (and still open) document with default settings.

Result: you get a warning that this device exists already.

Crash on drop of device in device explorer

0   QListData::size qlist.h 92  0x7ffff7b62b8c  
1   QList<Node *>::indexOf  qlist.h 897 0x7fffe39f1dcd  
2   Node::indexOfChild  Node.cpp    105 0x7fffe39ef92c  
3   Path::Path  NodePath.cpp    28  0x7fffe39f2e85  
4   DeviceExplorerModel::dropMimeData   DeviceExplorerModel.cpp 1213    0x7fffe39df878  
5   QAbstractProxyModel::dropMimeData(QMimeData const *, Qt::DropAction, int, int, QModelIndex const&)          0x7ffff664ff2a  
6   QAbstractItemView::dropEvent(QDropEvent *)          0x7ffff75da54c  
7   QWidget::event(QEvent *)            0x7ffff73be708  
8   QFrame::event(QEvent *)         0x7ffff74bc13e  
9   QAbstractItemView::viewportEvent(QEvent *)          0x7ffff75e731b  
10  QTreeView::viewportEvent(QEvent *)          0x7ffff7627c50  
11  QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject *, QEvent *)         0x7ffff66a07d4  
12  QApplicationPrivate::notify_helper(QObject *, QEvent *)         0x7ffff737b3bc  
13  QApplication::notify(QObject *, QEvent *)           0x7ffff7380a89  
14  QCoreApplication::notifyInternal(QObject *, QEvent *)           0x7ffff66a09eb  
15  ??          0x7ffff73d855c  
16  ??          0x7ffff73d905b  
17  QApplicationPrivate::notify_helper(QObject *, QEvent *)         0x7ffff737b3dc  
18  QApplication::notify(QObject *, QEvent *)           0x7ffff7380820  
19  QCoreApplication::notifyInternal(QObject *, QEvent *)           0x7ffff66a09eb  
... <plus>              

stateMachine crash after changing fullView

Way to reproduce :

  • create a constraint
    ( - add a scenario in it )
  • put it in fullview
  • try to change edition tool

info :

0 QMetaObject::activate(QObject *, int, int, void * *) 0x7ffff650ed66
1 ScenarioStateMachine::exitState moc_ScenarioStateMachine.cpp 241 0x7fffd849c5f5
2 ScenarioStateMachine::changeTool ScenarioStateMachine.cpp 168 0x7fffd83fd757
3 ToolMenuActions::ToolMenuActions(iscore::ToplevelMenuElement, ScenarioControl *)::{lambda()#2}::operator()() const ToolMenuActions.cpp 46 0x7fffd840c5d2
4 QtPrivate::FunctorCallQtPrivate::IndexesList<, QtPrivate::List<>, void, ToolMenuActions::ToolMenuActions(iscore::ToplevelMenuElement, ScenarioControl *)::<lambda()>>::call(ToolMenuActions::<lambda()>, void * *) qobjectdefs_impl.h 494 0x7fffd840e820
5 QtPrivate::Functor<ToolMenuActions::ToolMenuActions(iscore::ToplevelMenuElement, ScenarioControl *)::<lambda()>, 0>::callQtPrivate::List<, void>(ToolMenuActions::<lambda()> &, void *, void * *) qobjectdefs_impl.h 551 0x7fffd840e6d8
6 QtPrivate::QFunctorSlotObject<ToolMenuActions::ToolMenuActions(iscore::ToplevelMenuElement, ScenarioControl *)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void * *, bool *) qobject_impl.h 192 0x7fffd840e323
7 QMetaObject::activate(QObject *, int, int, void * *) 0x7ffff650f1d5
8 QAction::triggered(bool) 0x7ffff73786b2
9 QAction::activate(QAction::ActionEvent) 0x7ffff737a4d7
10 QAction::event(QEvent *) 0x7ffff737a7bf
11 QApplicationPrivate::notify_helper(QObject *, QEvent *) 0x7ffff73852b4
12 QApplication::notify(QObject *, QEvent *) 0x7ffff7388c86
13 QCoreApplication::notifyInternal(QObject *, QEvent *) 0x7ffff64dce24
14 QShortcutMap::dispatchEvent(QKeyEvent *) 0x7ffff5b5ef01
15 QShortcutMap::tryShortcutEvent(QObject *, QKeyEvent *) 0x7ffff5b5fe7e
16 QApplication::notify(QObject *, QEvent *) 0x7ffff7388ce3
17 QCoreApplication::notifyInternal(QObject *, QEvent *) 0x7ffff64dce24
18 QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent *) 0x7ffff5b2e01a
19 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent *) 0x7ffff5b36a15
...

OSC device creation crashes

here is the crash log

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libiscore_plugin_deviceexplorer.dylib 0x00000001127f2a74 QList<DeviceInterface*>::append(DeviceInterface* const&) + 20
1 libiscore_plugin_deviceexplorer.dylib 0x00000001127f2890 DeviceList::addDevice(DeviceInterface_) + 32
2 libiscore_plugin_deviceexplorer.dylib 0x00000001127f2344 AddDevice::redo() + 148
3 libiscore_lib_base.dylib 0x000000010a57f938 iscore::CommandStack::redoAndPush(iscore::SerializableCommand_) + 40 (CommandStack.cpp:66)
4 libiscore_plugin_deviceexplorer.dylib 0x0000000112830ecd SendStrategy::Simple::send(iscore::CommandStack&, iscore::SerializableCommand_) + 29
5 libiscore_plugin_deviceexplorer.dylib 0x0000000112830d48 CommandDispatcherSendStrategy::Simple::submitCommand(iscore::SerializableCommand_) + 40
6 libiscore_plugin_deviceexplorer.dylib 0x000000011282fabf DeviceExplorerWidget::addDevice() + 463
7 libiscore_plugin_deviceexplorer.dylib 0x00000001128447a0 DeviceExplorerWidget::qt_static_metacall(QObject_, QMetaObject::Call, int, void__) + 224
8 org.qt-project.QtCore 0x000000010b5b17d2 QMetaObject::activate(QObject_, int, int, void**) + 2994
9 org.qt-project.QtWidgets 0x000000010a6e6f1f QAction::activate(QAction::ActionEvent) + 271
10 org.qt-project.QtWidgets 0x000000010a8587a2 QMenuPrivate::activateCausedStack(QList<QPointer > const&, QAction_, QAction::ActionEvent, bool) + 82
11 org.qt-project.QtWidgets 0x000000010a856d12 QMenuPrivate::activateAction(QAction_, QAction::ActionEvent, bool) + 610
12 org.qt-project.QtWidgets 0x000000010a72f24c QWidget::event(QEvent_) + 1628
13 org.qt-project.QtWidgets 0x000000010a85ccc6 QMenu::event(QEvent_) + 950
14 org.qt-project.QtWidgets 0x000000010a6efddb QApplicationPrivate::notify_helper(QObject_, QEvent_) + 251
15 org.qt-project.QtWidgets 0x000000010a6f363d QApplication::notify(QObject_, QEvent_) + 9485
16 org.qt-project.QtCore 0x000000010b57eda3 QCoreApplication::notifyInternal(QObject_, QEvent_) + 115
17 org.qt-project.QtWidgets 0x000000010a6f075b QApplicationPrivate::sendMouseEvent(QWidget_, QMouseEvent_, QWidget_, QWidget_, QWidget**, QPointer&, bool) + 987
18 org.qt-project.QtWidgets 0x000000010a74a6c3 QWidgetWindow::handleMouseEvent(QMouseEvent_) + 2275
19 org.qt-project.QtWidgets 0x000000010a7494df QWidgetWindow::event(QEvent_) + 111
20 org.qt-project.QtWidgets 0x000000010a6efddb QApplicationPrivate::notify_helper(QObject_, QEvent_) + 251
21 org.qt-project.QtWidgets 0x000000010a6f30f8 QApplication::notify(QObject_, QEvent_) + 8136
22 org.qt-project.QtCore 0x000000010b57eda3 QCoreApplication::notifyInternal(QObject_, QEvent_) + 115
23 org.qt-project.QtGui 0x000000010adaac73 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent_) + 2163
24 org.qt-project.QtGui 0x000000010ada9b13 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent_) + 131
25 org.qt-project.QtGui 0x000000010ad9744a QWindowSystemInterface::sendWindowSystemEvents(QFlagsQEventLoop::ProcessEventsFlag) + 346
26 libqcocoa.dylib 0x000000010e2ae4d1 QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void_) + 33
27 com.apple.CoreFoundation 0x00007fff8b9e7681 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
28 com.apple.CoreFoundation 0x00007fff8b9d980d CFRunLoopDoSources0 + 269
29 com.apple.CoreFoundation 0x00007fff8b9d8e3f CFRunLoopRun + 927
30 com.apple.CoreFoundation 0x00007fff8b9d8858 CFRunLoopRunSpecific + 296
31 com.apple.HIToolbox 0x00007fff900b9aef RunCurrentEventLoopInMode + 235
32 com.apple.HIToolbox 0x00007fff900b976e ReceiveNextEventCommon + 179
33 com.apple.HIToolbox 0x00007fff900b96ab BlockUntilNextEventMatchingListInModeWithFilter + 71
34 com.apple.AppKit 0x00007fff88c55f81 DPSNextEvent + 964
35 com.apple.AppKit 0x00007fff88c55730 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
36 com.apple.AppKit 0x00007fff88c49593 -[NSApplication run] + 594
37 libqcocoa.dylib 0x000000010e2ad3bd QCocoaEventDispatcher::processEvents(QFlagsQEventLoop::ProcessEventsFlag) + 2189
38 org.qt-project.QtCore 0x000000010b57c39d QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) + 381
39 org.qt-project.QtWidgets 0x000000010a85b33f QMenu::exec(QPoint const&, QAction
) + 111
40 org.qt-project.QtWidgets 0x000000010a869adf QPushButtonPrivate::q_popupPressed() + 383
41 org.qt-project.QtCore 0x000000010b5b17d2 QMetaObject::activate(QObject
, int, int, void
) + 2994
42 org.qt-project.QtWidgets 0x000000010a7d485d QAbstractButtonPrivate::emitPressed() + 45
43 org.qt-project.QtWidgets 0x000000010a7d5491 QAbstractButton::mousePressEvent(QMouseEvent
) + 337
44 org.qt-project.QtWidgets 0x000000010a72f237 QWidget::event(QEvent
) + 1607
45 org.qt-project.QtWidgets 0x000000010a7d5313 QAbstractButton::event(QEvent
) + 179
46 org.qt-project.QtWidgets 0x000000010a6efddb QApplicationPrivate::notify_helper(QObject_, QEvent_) + 251
47 org.qt-project.QtWidgets 0x000000010a6f363d QApplication::notify(QObject_, QEvent_) + 9485
48 org.qt-project.QtCore 0x000000010b57eda3 QCoreApplication::notifyInternal(QObject_, QEvent_) + 115
49 org.qt-project.QtWidgets 0x000000010a6f075b QApplicationPrivate::sendMouseEvent(QWidget_, QMouseEvent_, QWidget_, QWidget_, QWidget*, QPointer&, bool) + 987
50 org.qt-project.QtWidgets 0x000000010a74a2a1 QWidgetWindow::handleMouseEvent(QMouseEvent
) + 1217
51 org.qt-project.QtWidgets 0x000000010a7494df QWidgetWindow::event(QEvent_) + 111
52 org.qt-project.QtWidgets 0x000000010a6efddb QApplicationPrivate::notify_helper(QObject_, QEvent_) + 251
53 org.qt-project.QtWidgets 0x000000010a6f30f8 QApplication::notify(QObject_, QEvent_) + 8136
54 org.qt-project.QtCore 0x000000010b57eda3 QCoreApplication::notifyInternal(QObject_, QEvent_) + 115
55 org.qt-project.QtGui 0x000000010adaac73 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent_) + 2163
56 org.qt-project.QtGui 0x000000010ada9b13 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent_) + 131
57 org.qt-project.QtGui 0x000000010ad9744a QWindowSystemInterface::sendWindowSystemEvents(QFlagsQEventLoop::ProcessEventsFlag) + 346
58 libqcocoa.dylib 0x000000010e2ae4d1 QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void_) + 33
59 com.apple.CoreFoundation 0x00007fff8b9e7681 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
60 com.apple.CoreFoundation 0x00007fff8b9d980d __CFRunLoopDoSources0 + 269
61 com.apple.CoreFoundation 0x00007fff8b9d8e3f __CFRunLoopRun + 927
62 com.apple.CoreFoundation 0x00007fff8b9d8858 CFRunLoopRunSpecific + 296
63 com.apple.HIToolbox 0x00007fff900b9aef RunCurrentEventLoopInMode + 235
64 com.apple.HIToolbox 0x00007fff900b976e ReceiveNextEventCommon + 179
65 com.apple.HIToolbox 0x00007fff900b96ab _BlockUntilNextEventMatchingListInModeWithFilter + 71
66 com.apple.AppKit 0x00007fff88c55f81 _DPSNextEvent + 964
67 com.apple.AppKit 0x00007fff88c55730 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
68 com.apple.AppKit 0x00007fff88c49593 -[NSApplication run] + 594
69 libqcocoa.dylib 0x000000010e2ad3bd QCocoaEventDispatcher::processEvents(QFlagsQEventLoop::ProcessEventsFlag) + 2189
70 org.qt-project.QtCore 0x000000010b57c39d QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) + 381
71 org.qt-project.QtCore 0x000000010b57f37a QCoreApplication::exec() + 346
72 i-score 0x000000010a51a641 iscore::Application::exec() + 17 (Application.hpp:35)
73 i-score 0x000000010a51a5d0 main + 80 (main.cpp:51)
74 libdyld.dylib 0x00007fff852695c9 start + 1

Thousand separator in trigger and conditions

If you create a condition for a condition or a trigger with a value superior to 999, i-score adds a comma separator, which is understand as a decimal.
So if I create a trigger with expression :

movie:/pict.1/dim/x < 1000    

i-score transforms it to

movie:/pict.1/dim/x < 1,000    

I close my project and re-open it, the expression is now :

movie:/pict.1/dim/x < 1    

State at time = 0 is not triggered

Steps to reproduce:

  1. Start Max and j.minuit_device.maxhelp
  2. Tweek bitdepth and sample_ration settings in the mydegrade model.
  3. Start i-score and make a new constraint.
  4. From the inspector at the left side, choose the bitdepth and sample_ration parameters and drag them over start of the constraint, so that we get an initial state that is displayed as a larger white circle.
  5. In max, tweek bitdepth and sample_ration to some other settings, and back in i-score drag this over the end of the constraint, so that we get a second state there.
  6. Extend the constraint with yet another point, tweek settings i Max yet again, and drag in. Make sure that the settings of this third state differs from the first (and the second)

i-score should now look like this:

screen shot 2015-09-11 at 18 45 10

1. Start playback in i-score and observe Max.

Result: The 2nd and 3rd states gets triggered as expected, but with the first one nothing happens.

Automation does not respect custom min and max values

Steps to reproduce are the same as in #12 with a few additions:

Add the following to dbap=-model-maxhelp:


----------begin_max5_patcher----------
342.3ociREsbBCBD7YxWACOmpIQMN1ekNcbHgSEmDHCPrwww+8BGIVssSqOD
H2xd2srGWRHrJ8.XYzWouQIjKIDBBE.HiwDVKentgaQZrcMZUeKKMdj+Wcuq
Ab3gEinV24F.YOwSJvPc0wWx2LAFyzctChBvylxp3p8L56iT53t5CR09sFn1
EYsYY9rrTZ9pkgsUYg0hhYY2xwqIoZRR42Jjg2BNvrET7pn5xFOam1zxwpWF
.tljDVReRCQAe3uVS2IGLfUhcblWxf7DPm2dVTw6ly6ER878bo52cuEOk6U7
mtG98LtW9Bbqbw+Xe2YHHCViT88GLXaB3O5RVcuodRbSZm9UiDf0IUbmTqtm
zlGHcPJDf59okPZCCPzRx9g73ccm.icrlnT7iqiZSHbcJFJUwPrhLCbRNwuD
Q3Fuq47VVuINGFJWxhopEfQ0KGsFemul7IvAsNr0
-----------end_max5_patcher-----------

Modify the start and end values of /mydbap/audiogain in the i-score automation inspector as shown here:

screen shot 2015-09-16 at 16 31 28

Expected result: When playing, gain value during the automation should start from -16 dB and end at +7 dB.

Observed result: The automation starts at -96 dB and ends at +12 dB.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.