Giter Site home page Giter Site logo

cueplayer's People

Contributors

dathinaios avatar madskjeldgaard 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

Watchers

 avatar  avatar  avatar  avatar  avatar

cueplayer's Issues

input/output meters

input/output meters stop working after consecutive cmd-periods (SC ver.3.12.1), this relates to GroupManagerCP.sc

Provide mechanism to start a TimeLine from a specific time offset

... I'm ending up in a situation now where I have 30 minute long timelines with no way of going to specific points in time. I was wondering if it would be possible to implement this behaviour through setting the clock, something in line with

~cuelist.clock.beats = 290;

to be able to go directly to time 290, but this doesn't work, unfortunately. The use case is to be able to start the show from a specific point in time and let it run in real time after that.

Originally posted by @kflak in #11 (comment)

Bug: Making a new cueplayer adds a new cmd period with synths

Hi

I just noticed that if you make a new cueplayer instance, another CmdPeriod callback will be registered, resulting in many copies of the input and output synths being played eventually if you keep reevaluating.

Perhaps a flag should be set once the cmd period is added for cueplayer to make sure it isn't added more than 1 time ?

Thanks ! <3

Error when timer:false is used in the gui

Triggering next cue tries to set the pause button state even when no timer is used.

^^ The preceding error dump is for ERROR: Message 'pauseButton' not understood.
RECEIVER: nil

Error when triggering cue while gui is open

Hi,

I'm getting this error when I launch a cue from a midi interface or an osc-def (TouchOsc). The cues work, but I get this error when the GUI is open:

-> a CuePlayer
ERROR: Qt: You can not use this Qt functionality in the current thread. Try scheduling on AppClock instead.
ERROR: Primitive '_QObject_SetProperty' failed.
Failed.
RECEIVER:
Instance of NumberBox {    (0x55f2d55acbe8, gc=D4, fmt=00, flg=00, set=06)
  instance variables [46]
    qObject : RawPointer 0x55f2d19f5420
    finalizer : instance of Finalizer (0x55f2d55ad018, size=2, set=1)
    virtualSlots : nil
    wasRemoved : false
    font : nil
    resize : Integer 1
    alpha : Float 1.000000   00000000 3FF00000
    decorator : nil
    layout : nil
    userCanClose : true
    deleteOnClose : true
    action : instance of Function (0x55f2d532aa68, size=2, set=2)
    mouseDownAction : nil
    mouseUpAction : nil
    mouseEnterAction : nil
    mouseLeaveAction : nil
    mouseMoveAction : nil
    mouseOverAction : nil
    mouseWheelAction : nil
    keyDownAction : nil
    keyUpAction : nil
    keyModifiersChangedAction : nil
    keyTyped : nil
    focusGainedAction : nil
    focusLostAction : nil
    dragLabel : nil
    beginDragAction : nil
    canReceiveDragHandler : nil
    receiveDragHandler : nil
    toFrontAction : nil
    endFrontAction : nil
    onClose : nil
    onResize : nil
    onMove : nil
    step : Float 0.100000   9999999A 3FB99999
    shift_scale : Float 100.000000   00000000 40590000
    ctrl_scale : Float 10.000000   00000000 40240000
    alt_scale : Float 0.100000   9999999A 3FB99999
    scroll : true
    scroll_step : Integer 1
    align : Symbol 'center'
    buttonsVisible : false
    normalColor : instance of Color (0x55f2d5331aa8, size=4, set=2)
    typingColor : instance of Color (0x55f2d5352008, size=4, set=2)
    object : nil
    setBoth : true
}
CALL STACK:
	MethodError:reportError
		arg this = <instance of PrimitiveFailedError>
	Nil:handleError
		arg this = nil
		arg error = <instance of PrimitiveFailedError>
	Thread:handleError
		arg this = <instance of Thread>
		arg error = <instance of PrimitiveFailedError>
	Object:throw
		arg this = <instance of PrimitiveFailedError>
	Object:primitiveFailed
		arg this = <instance of NumberBox>
	NumberBox:value_
		arg this = <instance of NumberBox>
		arg value = 1
	CueTriggerCP:setCurrent
		arg this = <instance of CueTriggerCP>
		arg cueNumber = 1
		arg cueObject = <instance of Function>
	CuePlayerGUI:setCurrent
		arg this = <instance of CuePlayerGUI>
		arg cuePlayer = <instance of CuePlayer>
		var currentCue = 1
	CuePlayerGUI:update
		arg this = <instance of CuePlayerGUI>
		arg theChanged = <instance of CuePlayer>
		arg message = 'current'
	< FunctionDef in Method Set:do >
		arg item = <instance of CuePlayerGUI>
	ArrayedCollection:do
		arg this = [*4]
		arg function = <instance of Function>
		var i = 3
	Set:do
		arg this = <instance of IdentitySet>
		arg function = <instance of Function>
		var i = 0
	Object:changed
		arg this = <instance of CuePlayer>
		arg what = 'current'
		arg moreArgs = [*0]
	Cues:next
		arg this = <instance of CuePlayer>
	OSCMessageDispatcher:value
		arg this = <instance of OSCMessageDispatcher>
		arg msg = [*2]
		arg time = 687.314069174
		arg addr = <instance of NetAddr>
		arg recvPort = 57120
	Main:recvOSCmessage
		arg this = <instance of Main>
		arg time = 687.314069174
		arg replyAddr = <instance of NetAddr>
		arg recvPort = 57120
		arg msg = [*2]
^^ The preceding error dump is for ERROR: Primitive '_QObject_SetProperty' failed.
Failed.
RECEIVER: a NumberBox

Example cue:

(
    ~cuelist = CuePlayer.new();
    ~cuelist.add({
        ~startingTheShow = Routine {
            "starting".postln;
        }.play;
    });

    //touchOsc as cue trigger
    OSCdef(\cue, {~cuelist.next}, "/1/cue");

    // LaunchPad as cue trigger. Can run at the same time as OSCdef...
    if(~hasLaunchPad){
        // LPButton is my own implementation of a MidiFunc
        LPButton.new(8, onFunc: {~cuelist.next});
    };

    ~cuelist.gui(
    monitorInChannels: s.options.numInputBusChannels,
    monitorOutChannels: s.options.numOutputBusChannels,
    options:(
            shortcuts:true,
            metronome: false,
        )
    ); 
)

Platform: Arch Linux 5.6.2-rt1-2-rt

Next cue only works on increments of 1

It would be very handy to be able to insert cues with float ids and have the "Next cue" button work down the list instead of having to give the cues contiguous integer identifiers. When you have a small set it is no big deal to renumber the cues, but when cue-numbers starts getting up to three digits and you have to insert just one tiny little cue in the middle five minutes before show-time it would be very good to be able to call it 20.5 instead of 21 and then manually relabel the rest of the cue list. Float cue numbers are also a very good organizational feature for knowing which cues belong together.

Feature request: A Cuelist gui widget

Hey, another feature request here: It would be amazing if there was a gui representation of all cues added to the cue player. I imagine some kind of playlist where the currently playing cue is highlighted and where the user can click one of the cues to play a specific one.

newest updates not in master branch

Hi, i'm not the best at git so maybe i'm missing something but the updates you mentioned on the SC board are not here:

https://github.com/dathinaios/CuePlayer/blob/master/Cues.sc

but I did see them in the commit history:

cdbedd0

Not sure what's wrong.

Also..random question. If I called git clone https://github.com/dathinaios/CuePlayer.git should doing that again update to the newest version? I tried and it put another cueplayer folder inside the one that already existed instead of only updating the changed parts like I expected.

A Timeline instance should be allowed in the timeline argument of .put / .add

At the moment the options are to use an Array of time/function pairs or a path to a file that returns such an Array. When the cue requires a large schedule cue errors can be difficult to track. Using a Timeline would allow for the use of its .add method instead of an Array which would make things more manageable. This should be currently possible by using a Timeline inside the normal cue function but care should be taken to pass the clock of the CuePlayer to it so that timing is synced. Better to allow it in its right place.

Keyboard shortcut only works when cue window is in focus

So, I have finally gotten around to playing around with the cueplayer, and have made a couple of interesting discoveries. One for this issue, another one for the next...
First of all: when I set largeDisplay to true and this is in focus, the spacebar keyboard shortcut doesn't work. I need to manually focus the cueplayer window to be able to use the spacebar shortcut. This is on macOS Sierra.

Keeping track of active functions, routines etc.

Hi there, I am thinking of ways to keep track of all the unholy stuff I have launched while running through a cue list, and also to be able to step through a cuelist quickly without having to clean up manually or calling .value on a bunch of nil functions that have not yet been initialized. It would also be handy to be able to hop back and forth between different cues and know that the house-keeping would be taken care of for me.

To do this I am considering writing a Cue class that would function as a wrapper for the cue-function. Each cue would also take an optional cleanup-function that could be triggered at will when skipping forward in the cuelist (which is a very common scenario for me when soundchecking for a show)... The cue would also do all the nil checks, to make sure a nil.value doesn't break the cuelist.

It seems some of this functionality is already implemented by the attachmentList in the Cues class, but it's not quite clear to me how this works. Obviously I'd prefer not to reinvent too many wheels, so if there is already a way of accomplishing what I'm looking for with the existing structure, I'd be very happy to learn more about this!

stop timeline when started from cue.put

I know that if you instantiate a timeline directly it has a method to stop it but when I use a timeline as part of a put structure I can't figure out how to stop it. What's happening is that I'm stopping a cue but the timeline keeps running and then triggers the next event on the timeline even though I stopped the cue. I would like to be able to stop the next event in the cue's timeline from happening. This is only an issue during rehearsals where starting and stopping often is needed.

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.