Researching a new audio system
Converted playback to javax.sound.sampled.Clip for testing, and we have eliminated the delay. Problematically, that will also severely limit the sort of files that we can playback. Will continue to investigate.
Work notes. Wait countdown has stopped updating status cell for some reason. Regular countdown still works.
Changed the javazoom audioPlayer to the java audio Clip to test its precision.
Changed the javazoom audioPlayer to the java audio Clip to test its precision.
We're still experiencing the delay. We're now creating and starting a player thread, and creating a paused BasicPlayer, at the time that a cue is readied for play back (via the top of show button), rather than at the time it is played, but there is still around a half-second delay between executing the cue and hearing audio played back. For many types of cues, this level of imprecision is probably fine, but anything that needs to fire precisely with an action on stage won't work. Unfortunately, this...
Created readyTopOfShow() method, and calling that from the readyTopOfShowButton
Even with the PlayerThread running and playback paused, there seems to be a half second delay between pressing the "GO" button and hearing the audio playback. And now there seems to be a momentary "bump" in the audio playback level before the fadeLevel method takes over.
Now starting a playerThread as part of advanceCue() method.
Outline new procedure for playing back cues.
Tried to resume playback, but we still have the pause while the worker is created. Not sure why. Can't see basic print statements being written to console when the topOfShow button is pushed; not sure why.
Revised PlayerTread.run() method and added PlayerThread.play()
Playback errors
No activity in this department in a very long time, so closing the ticket.
Cue Notes Doesn't Re-initialize on new open
We are now selecting the first cue in the table automatically when opening a new file. This will be integrated into the next version.
Applying bug cueNotesArea bugfix to openShowFile.
Changed behavior of opening a new showfile so that the first cue is automatically selected.
The cueNotesArea portion of this bug has been addressed.
Now clearing cue notes when selecting File->New
Merging changes
2.1.0 Feature Locked
Timer Cue
Release Note updates.
Timer Cue
This is the next one on the punch list for 2.1.x features, but it's going to work a little differently than originally proposed. If a duration is specified in the cue, the timer will count DOWN from that time to 0. If no duration is specified, the timer will count UP from 0 until stopped, either by being targetted by a Stop cue, or through the Stop All button.
Command line options on start up
This feature is now incorporated into the 2.1.x branch, and will be included in the next release.
We can now open a file specified as a command line option.
Changed constructor to pass commons.cli CommandLine instance to the constructor.
Changing location in constructor where we will interrogate command line options.
Sketched out evalCommandLine() method.
Command line options on start up
This is in progress. In the current build in the 2.1.x repo, we are able to process a command line option to print an "About" screen and exit. Next we will specify one for opening a specific file on startup.
Very basic about message prints as command line argument.
added imports for command line options.
Abstracted the "About" message into a string variable, since we will be using that as our test case for command line options.
Changes to the aboutSBString variable, and the creation of a printAbout() method.
Augmented the about output using the some word wrap formatting.
Timer Cue
Command line options on start up
Command line options on start up
Multiple output support
Integrated Jack support isn't something that we can do since it's not available in Java. That said, I don't think it wuold be particularly helpful to Soundboard, since Jack is there to route audio between software applications, and Soundboard is designed to send already-edited files to main output. There are some challenges for Soundboard handling multiple output mixers, but we are looking into ways of handling that in predictable and portable ways as part of the 2.1.x development branch.
Added a tabbed pane to the preferences frame to separate file preferences and audio preferences. We're going to want that audio preferences tab someday, so we may as well build it now while we don't have many components.
For some reason, 2.0.9 release notes were not included in the release notes for this branch. Including those now.
For some reason, 2.0.9 release notes were not included in the release notes for this branch. Including those now.
Init file / recently opened.
This has been built into the 2.1.x branch and will be included in the next release.
Updated code so that the most recent file is added to the head of the list, and the corresponding menu item is added to the head of the Open Recent menu.
Added code to limit the number of recently opened files we're tracking to 10.
Corrected error that was causing the recently saved stored in the congif file to delete on opening.
Corrected error that was causing recently opened files to appear in the wrong order in the menu when opened from the file.
Now displaying recently opened files as sub menu items.
We can now open a recent file by clicking on the dymanically reacted menu item in the sub menu.
Open Recent menu item should have been a sub menu, so changed it to that.
Adding comments to better document code from last commit.
Updating release notes.
We are now able to write recently saved files to the config file.
We are now reading (properly) the paths of the recently opened files saved to the config file.
Added file menu item for "Open Recent"
Added code for writing recently opened cue files to the config file.
Added code for reading recently opened files from the config file.
Notes for where to pick up tomorrow.
The Edit->Preferences window is complete, and now works for the one editable preference that we have. Next step will be to build a list of "recently opened" files and save them to the config file.
Created preferencesFrame for the system preferences editor. Also removed a pane that seems to have been created accidentally.
Reconceiving the preferences window: when we change a value, it will automatically change the value of the class field. We will, instead of "save" and "close" options, write the newly changed values to the config file on close.
Added FileChooser() window to change default media file change button.
Soundboard Preferences field fills in from variable at initialization.
Linked Edit->Preferences to set the preferencesFrame to visible.
Put labels, fields, and control buttons in Edit System Preferences frame. We'll fill in more options as we develop them.
Edit->preferences window now can change our (currently one) system preferences, and save the changes to the init file.
Set Preferences->Cancel button to set the preferences window invisible AND corrected error that was causing the window to hang
Updating release notes: Soundboard 2.1.x will require Java 1.8.
Init file / recently opened.
This is in progress. We have the ability to create / read from a config file in an init directory. For the moment, we're only reading the default media diretcory. Next step will be to create a new window that allows us to modify parameters in the config file (the Edit-Preferences menu button has already been added to activate this). Then we can look into adding files as we open them.
Init file / recently opened.
This is in progress. We have the ability to create / read from a config file in an init directory. For the moment, we're only reading the default media diretcory. Next step will be to create a new window that allows us to modify parameters in the config file (the Edit-Preferences menu button has already been added to activate this). Then we can look into adding files as we open them.
Initializing new batch of startup variables / changing default location of tempShowFiles.
We are now able to read a config file. For the moment, the only thing we're storing and reading is the default media directory
Soundboard now creates a .soundboard directory in the user.home directory to which it will write a basic config file if one is absent.
Cleaned up initialization code in the Soundboard class.
Corrected error in the code that resulted in too much white space being added to the end of GEN-BEGIN and GEN-END guarded blocks, which prevented NetBeans from recognizing them and allowing us to edit the GUI. Then added Edit->Preferences (and a separator), laying the ground work to allow users to modify the config file directly.
Command line options on start up
Init file / recently opened.
Better file system window
Added support for JavaFX file choosers in Save As, Export Show Package, Import Show Package, and Export Cue Sheet methods. The migration to new file chooser windows is now complete, and they will be included with the next release.
Updated release notes.
Changed the export show package file chooser to a JavaFX DirectoryChooser() to get a modern looking window. .
Changed the importShowPackage() file chooser to a JavaFX DirectoryChooser() to get a modern looking window. .
Changed the File->Save As package file chooser to a JavaFX DirectoryChooser() to get a modern looking window.
Changed the Show->Export Cue Sheet file chooser to a JavaFX FileChooser() to get a modern looking window.
Init file / recently opened.
Command line options on start up
The Apache Commons CLI library is probably the best way to go for this: https://commons.apache.org/proper/commons-cli/
Better file system window
We have migrated the File->Open and the AddMediaFile dialogues to JavaFX based ones, which are more modern.
New file chooser window added for Add Media File dialogue, now using JavaFX, which gives us the option to create a window with more modern options than Swing allows for.
New file chooser window added for File->Open dialogue, now using JavaFX, which gives us the option to create a window with more modern options than Swing allows for.
Changed the handling of the cancel option for adding media files; the JavaFX FileChooser() does things differently.