Giter Site home page Giter Site logo

virtmus's Introduction

Summary

VirtMus (virtual music) is a free application that allows the user to display sheet music and turn pages without removing the hands (or feet) from the instrument the music is performed on. This feature is very useful during concerts and practice sessions as it allows the musician to focus on performing the music without interruption. The software also allows the users to store and organize their entire sheet music collection on a laptop, making it fully portable and available at a click of a button.

Details

See the http://virtmus.com/ website for more details and full documentation.

virtmus's People

Contributors

gburca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

codemason aphexus

virtmus's Issues

Midi support?

What about adding midi support to change pages?

A midi pedal board or even some of the newer bluetooth boards can be used(midi over bluetooth).

Simply assign a midi channel and note or program change(sense the incoming midi) to a page change.

https://docs.oracle.com/javase/tutorial/sound/overview-MIDI.html

Just add a combobox that lists all the midi devices and selects one and then listen on the midi port for changes and such. Not too much work that really helps with hands off approach. I have an FCB1010 with 10 footswitches so it would be nice to be able to use the board for multiple assignments such as home, end, page up, page down, etc.

Of course, one can use external apps that do this but it would be nice to have it all in one and it really shouldn't be that difficult to implement. In fact, I was creating a similar app but since yours is better and more complete I'll probably use yours ;)

Next page quick view

It would be nice to be able to view a single page at a time(I use a portrait view monitor(turn a monitor 90 degree's as it allows for a larger page)) but be able to see the next page in a smaller view.

The idea is this:

You are playing, come to near the end of a page, you hit a special key or page down or whatever and it shows the top of the next page on the current page. You then hit page down again and it then shows the full page.

e.g., suppose the page is split in 2 parts, the upper page and lower page

UP1
LP1

Hit the key then it becomes

UP2
LP1

then hit it again(or different key)

and it becomes

UP2
LP2

This allows a seamless transition.

Add Text

It would be nice if one can add text(best I can see is one can do lines and rectangles). Such as using chord symbols, notes, etc.

It would need to allow for font sizes and possibly super and sub scripts(e.g., A^7b9_m would be an Am7 with a b9, the ^ raises to a super script and the _ lowers down a level).

Add link to audio

It would be nice to assign audio(and possibly midi) to a song so that one can listen. In fact, it would be nice to be able to synchronize them so that one can listen to specific passages.

With the midi "issue" I mentioned, adding a play, forward measure, backward measure, next section, previous section, type of triggers would really help one learn specific passages quickly.

This is a bit of work and requires loading songs(ffmpeg can be used from the command line to parse songs if necessary) but would be worth it.

Application issue: java.lang.UnsupportedOperationException

Hello Gabriel,
first at all thank you very much for your great application.
I'm a semi professional musician an implemented your app on a raspberry pi 3 and a 22'' Monitor.
It is very usefull and works very fast since I changed my music notes from .pdf to .jpg format.

At the moment I've got an issue that appeared twice till now. The first time I fixed it by completely installing the application new (deleted the folders and making the playlists new). But in the meantime I've got about 200 songs in it (in about 10 playlists) and it would be a lot of work to do this again.

Therefore I' like to ask you for your help.

The issue is like following:

After I started the application 6 of my about 10 playlist disappeared

java.lang.UnsupportedOperationException
at org.openide.LifecycleManager.markForRestart(LifecycleManager.java:109)
at org.netbeans.core.windows.options.LafPanel$4.mouseClicked(LafPanel.java:341)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:269)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:269)
at java.awt.Component.processMouseEvent(Component.java:6538)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4534)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
[catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Thank you for your help in advance.

Regards
Konny

Some pdf's oom/noimage

When loading it, it says oom or no image, yet the pdf clearly works and is also quite small compared to others that do load.

https://files.fm/u/x5jn7jg2

One can use an external pdf to jpg such as mutool to render the pdf to png or jpg to use. This might be better as an option.

Target different display

I have 4 monitors and it would be nice if I could set virtmus to target a specific display that it always uses when in live mode. It seems to use the main monitor, which makes it useless for me because I do not use the main monitor for reading.

Not sure if java can target specific displays though.

The reason for this, mainly, is that some monitors are in another room and I have to drag the application window to those monitors, which I can't see, so it is kinda a juggle, but if live mode simply targeted them(and use the appropriate rotation) then it would just work from the get go.

Maybe this will help:

https://stackoverflow.com/questions/4627553/show-jframe-in-a-specific-screen-in-dual-monitor-configuration

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.