NinSheetMusic Forums

Other => Off-Topic => Topic started by: PetrifiedLasagna on June 09, 2016, 10:03:05 PM

Title: NSM Sound Utilities [April 2, 2017]
Post by: PetrifiedLasagna on June 09, 2016, 10:03:05 PM
Hello all you NSM users, have I got something special for you! Now for those of you who don't know, I am an avid programmer. Like, it's my career choice, so you would expect that I would to code until I pass out.

Anyways ::), I am in the middle of developing several utility programs to make your transcription process all the more easier. Not only that, but I am going to give it to you in pure JavaScript. Yep, absolutely no third party plugins will be required to run these applications so all you really need is a respectable browser where the developers keep it up to date with W3 standards (Firefox, Google Chrome, Safari?).

I will also have all of the code available on GitHub for anybody who wishes to contribute to the cause.

Current projects:

- Flux Capacitor (GitHub) (https://github.com/PetrifiedLasagna/Flux-Capacitor/tree/master) (Live Demo) (http://notebookinc.byethost15.com/js/flux-capacitor/)(30%-40%)
info
This program will allow you to listen to an audio file of your choosing, while allowing you to change the playback speed. The catch is that it needs to do this without modifying the original pitch of the file. I am to make this as high quality as possible, i.e. minimize audio "whooshing" at low speeds for maximum usability.

Currently, this can load a local file specified by the user which can then be played. UI elements currently have no effect so no controlling speed. :P
[close]

- Virtuoso (GitHub) (https://github.com/PetrifiedLasagna/Virtuoso) (Live Demo) (http://notebookinc.byethost15.com/js/virtuoso/virtuoso.html)(60-70%)
info
This idea is actually based on an old application that I was writing that would load a midi and then save a video file of it being played. I never finished that, but I am pretty familiar with the midi format, and it will be a lot easier to implement animating keys on this. The only thing I won't be able to do is video recording, so that part is up to the user.

This program has come a long way and has become so much more useful now, with features such as

- Load midis directly off your computer
- No connection needed once the page is loaded. Can even be downloaded to your computer
- Responsive note playback (velocity, sustain, realistic falloff and volume scaling)
- Displays the key, tempo, and sustain info
- Can start, stop, and set the time that the song will start playing at
[close]

NSMetronome (GitHub) (https://github.com/PetrifiedLasagna/NSMetronome) (Live Demo - nsmdevsite) (http://nsmdevsite.comxa.com/index.php?action=audiotools;sa=NSMetronome) (Live Demo) (http://notebookinc.byethost15.com/js/nsmetronome/) (70%-80%)
info
A very simple tool similar in functionality to all8's bpm calculator. Instead of the live demo linking to my website, I have decided to show you guys that these can be readily integrated into for easy access.
[close]

Have any ideas for a cool tool? Post in the comments below and I will try to get back to you with some blueprints (design considerations, and that stuff) as soon as possible.

All live demos are hosted on my script hosting server.
Title: Re: NSM Sound Utilities
Post by: Tobbeh99 on June 10, 2016, 03:55:14 AM
I really appreciate your efforts. But in terms of tools for arranging, I think the combination of Audacity+Audiostretch definitely is enough to arrange any kinds of songs. With Audacity you can manipulate the audio file a lot, boosting bass/treble, raising/lowering the entire file 1 or more octaves up or down, and also equalizing the song. And with Audiostretch you can slow down a song to 0%, where it just stops on that very moment, you can even go pass that to minus %, but there's really not a reason to do that.

So I don't really have any idea of anything I'd need for arranging.
Title: Re: NSM Sound Utilities
Post by: E. Gadd Industries on June 10, 2016, 10:38:47 AM
Whoa! This is cool! I would definitely use Virtuoso for when I start uploading my sheet tutorials to YouTube!
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 10, 2016, 11:11:48 AM
Quote from: Tobbeh99 on June 10, 2016, 03:55:14 AMI really appreciate your efforts. But in terms of tools for arranging, I think the combination of Audacity+Audiostretch definitely is enough to arrange any kinds of songs. With Audacity you can manipulate the audio file a lot, boosting bass/treble, raising/lowering the entire file 1 or more octaves up or down, and also equalizing the song. And with Audiostretch you can slow down a song to 0%, where it just stops on that very moment, you can even go pass that to minus %, but there's really not a reason to do that.

So I don't really have any idea of anything I'd need for arranging.

I understand what you mean. I myself use Audacity and Audiostretch, but in terms of user-friendliness, Audiostretch is definitely lacking. Just from using it, I have come up with ways that some of the quirks could have spawned. Also, with only increments of ten I have found that it is not enough for 16th/32nd notes.

Just picture me listening to the same 2-3 second clip over and over again trying to pinpoint those speed demons. I just finished the advertise theme from bomberman 64 and that is loaded with 16ths at 190 bpm!  :o

As a programmer, I always want to ensure that the things I create fulfill the users needs (NSM in this case) without forcing them to deal with bugs or poor design choices. If you told me there was something wrong with my code without telling me specifically, I would immediately start reading every line of code, and using the application in an attempt to find it.

Also, typo in OP. I meant to say "without the use of plugins."  :P
Title: Re: NSM Sound Utilities
Post by: Maelstrom on June 10, 2016, 11:38:47 AM
Quote from: PetrifiedLasagna on June 10, 2016, 11:11:48 AMAlso, typo in OP. I meant to say "without the use of plugins."  :P
Ooo. What will you be using?
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 10, 2016, 11:54:22 AM
Just some gold old-fashioned JavaScript.
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 11, 2016, 06:53:52 PM
Okay guys, first live demo is up and running. It's not pretty now, but I will be making a lot of updates now that I have the audio engine down.
Title: Re: NSM Sound Utilities
Post by: Dudeman on June 11, 2016, 07:38:19 PM
Well, I can certainly load in an audio file. This appears to be coming along nicely. I hope you're able to implement the other elements soon.
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 11, 2016, 11:57:30 PM
Just throwing this out there so I don't forget. Feel free to correct me if I have it wrong.

Do not read if you hate research papers  ;)
Begin Memo on pitch/frequency
Pitch/Frequency are a function of wavelength, therefore by maintaining pitch you are also maintaining frequency. The "easy" methods of changing the speed of sound result in a proportionally different frequency than what the original audio had. For example, doubling the sample rate will also double the frequency since the samples will be played twice as fast. Same thing if you halve the length of the audio and go over every other audio sample (although in this case there is a loss of data).

Several tests have provided insight into how a slowed down effect can be achieved. In audacity, when a short noise sample with some silence for padding can have the "change tempo" effect applied to it, with some interesting results. The sound becomes extremely choppy and it is possible to see that this sample was mixed with the surrounding silence.


Hypothesis:
Therefore, in order to slow down audio without changing frequency, for every so many steps that are taken forward you must take a proportional amount of steps back. So in order to say, halve the speed of a sample, if you parsed through 8 sample, you would then go back 4 samples, parse 8 samples and so on.

This could be similarly be achieved in a streaming fashion by taking a timer value T, and playing T through T + constant C(e.g. 48), but then only setting T to T + C * percentage P (1% - +100%). This will likely result in choppy audio at very low speeds and will probably need some tweaking.


End Memo
[close]

It is to late for me to be thinking this intensely.  :'(
Title: Re: NSM Sound Utilities
Post by: BlackDragonSlayer on June 11, 2016, 11:58:03 PM
Ooh, sounds neat! Haven't checked out the demo yet, but I'll definitely be interested in seeing the finished product!
Title: Re: NSM Sound Utilities
Post by: Maelstrom on June 12, 2016, 09:05:28 AM
This may sound like a strange request, but could eventually put in a compact vertical mode so it'd be easy to have finale open and this on the side?
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 12, 2016, 11:48:41 AM
Quote from: Maelstrom on June 12, 2016, 09:05:28 AMThis may sound like a strange request, but could eventually put in a compact vertical mode so it'd be easy to have finale open and this on the side?

This actually responds to the size of the window (or phone screen).  ;)

If anyone has an iPad, feel free to try it. It should definitely work on there, although I have heard that the first JavaScript sound that is played will be ignored, so you may have to press the play button twice.
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 13, 2016, 04:34:18 PM
Quote from: PetrifiedLasagna on June 12, 2016, 11:48:41 AMIf anyone has an iPad, feel free to try it. It should definitely work on there...

Wow, I can't believe that I actually uttered such an ignorant sentence... Although I did post at like 1-2 in the morning :P
Maybe if I add the ability to use files from the web that it will be possible to use on a tablet.

Anyways, I have another update out. Most of the UI elements that there will be in the future have been added. This includes
- File status
- Time
- Time controller

Also, all of the UI elements that are present are operational. I currently have an algorithm that can apply pitch-perfect audio slowing, but it is not the best quality. Basically what I do is every time the number of samples parsed exceeds the Constant multiplied by the speed percentage, I will go back to the first sample that was parsed. It gets the job done, but it is not the best. I will post the code snippet below, so it is easier to see what it does.
Spoiler
//c is the current channel being parsed
//i is the current sample
//nTime is equal to a constant value OR the distance from the end of the file
//controls.speed is the percentile speed (1.0 to 0.0)

if(i > 0 && (i-ioffs > nTime * controls.speed)){
  ioffs = i;
}

destinationBuff[c][i] = audioData.data[c][(i - ioffs) + offs];
[close]

The live demo has already been updated
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 14, 2016, 12:13:23 PM
I am slow close to figuring out a good algorithm to slow the audio down. I know it is just sitting in front of me right now and I don't see it.  :-\

Also, look forward to having no choppy playback in the next update since I added a scheduler.
Title: Re: NSM Sound Utilities
Post by: mikey on June 14, 2016, 12:21:20 PM
maybe now is a good time for a break.  Look at it with fresh eyes :P
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 14, 2016, 01:06:35 PM
Quote from: NocturneOfShadow on June 14, 2016, 12:21:20 PMmaybe now is a good time for a break.  Look at it with fresh eyes :P

Yeah, it has been a while since I have transcribed... or done anything else productive!
I will take a look at this again in a few days to a week and see if something comes up.
Title: Re: NSM Sound Utilities
Post by: PetrifiedLasagna on June 17, 2016, 07:29:09 PM
I have been looking around at documentation, and the Web Audio API defines all sorts of cool audio effects that work together like a synthesizer. There is even one to perform filtering which from my understanding can be used as an equalizer. I will leave the link below so you guys can check out the different nodes (each one has a description below it). Although, I know for a fact that I will not be using the delay node, or the periodic wave node.

https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API#Defining_audio_effects_filters (https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API#Defining_audio_effects_filters)

I am also going to try out an algorithm which I should have better results.
Title: Re: NSM Sound Utilities [June 19, 2016]
Post by: PetrifiedLasagna on June 19, 2016, 02:29:27 PM
Okay, I just got Virtuoso up off of the ground. Boy, did I forget that midi files can be a pain to work with! I got the loading part out of the way though. I have a little request of you guys to make sure that it responds correctly: Take whatever midi files you have and see if it loads without any errors. You can see if it had a problem by scrolling to the bottom and looking for red highlighted text. In fact, take files that are corrupt or that you modified to see if it throws an appropriate error.  ;)
Title: Re: NSM Sound Utilities [June 19, 2016]
Post by: E. Gadd Industries on June 19, 2016, 03:08:31 PM
I will definitely try it when I get back from vacation
Title: Re: NSM Sound Utilities [June 19, 2016]
Post by: PetrifiedLasagna on June 23, 2016, 09:09:23 PM
Hey everybody, while I was looking at midi documentation I found a couple of interesting alternatives that you may want to try out while I am getting the engine for virtuoso setup. I personally thought that Euphony was really cool, but that's just my inner engineer speaking :D

I did notice that both have some framerate issues (especially with Euphony), which I will do my best to avoid with virtuoso. Although, I did not try VexFlow since I was too lazy to make an account

http://qiao.github.io/euphony/#15 (http://qiao.github.io/euphony/#15) (Euphony: 3D piano)
http://galacticmilk.com/piano/ (http://galacticmilk.com/piano/) (Color Piano)
http://my.vexflow.com/ (http://my.vexflow.com/) (VexFlow)
Title: Re: NSM Sound Utilities [June 30, 2016]
Post by: PetrifiedLasagna on June 30, 2016, 04:23:12 AM
I have an update out for Virtuoso. It has really come a long way, and can now play midi files as well as graphically show which keys are being pressed. I even made a little video to showcase the application.

Although, I had a bit of a mishap when I was first setting up the engine. To put it shortly, let's just say that a full amplitude, 3000 hz (high pitched) tone with headphones on is not something you want to experience  :'(
I immediately connected all outputted notes to a gain node after that!

Title: Re: NSM Sound Utilities [June 30, 2016]
Post by: Maelstrom on June 30, 2016, 04:52:36 AM
Nice!
One problem I found:
It glitches out playbackwaise in Google Chrome when it's not in the current tab.

Edit: and there's no way to tell just by looking at it that a note is repeated instead of just held.
Title: Re: NSM Sound Utilities [June 30, 2016]
Post by: E. Gadd Industries on June 30, 2016, 03:57:36 PM
So I tried the Live Demo of Virtuoso. I loaded several different MIDI files, and pressed play, and I waited. Pressed play again. Waited some more. None of them worked. I'm using IE though. I opened up the HTML through "Inspect Element" & I saw Firefox, Safari, and a few others I forgot. Does it only work on those?
Title: Re: NSM Sound Utilities [June 30, 2016]
Post by: PetrifiedLasagna on June 30, 2016, 09:13:13 PM
Quote from: E. Gadd Industries on June 30, 2016, 03:57:36 PMSo I tried the Live Demo of Virtuoso. I loaded several different MIDI files, and pressed play, and I waited. Pressed play again. Waited some more. None of them worked. I'm using IE though. I opened up the HTML through "Inspect Element" & I saw Firefox, Safari, and a few others I forgot. Does it only work on those?

Support for anything with IE is dodgy at best. If you want to stick with that browser line, I would try Microsoft Edge although that is Windows 10 only  :-\

It does work with Edge though, although even that seems to be garbage compared to other browsers. I just had to fix some code, because it didn't like the syntax which was valid JavaScript!

Below is an image showing the support of the Web Audio API by different browsers at the time of writing (notice IE does not support).
(https://www.ninsheetmusic.org/forum/proxy.php?request=http%3A%2F%2Fi.imgur.com%2F89DWu5s.png%3F1&hash=44b53811bd218ab4e4cc5915b296450324bcdc17)
Title: Re: NSM Sound Utilities [June 30, 2016]
Post by: Onionleaf on July 01, 2016, 04:34:43 AM
This look pretty cool! It was able to play back the majority of my MIDIs that I uploaded, but would sometimes stop partway (which might have something to do with my connection). It would be nice to see some sort of status text which would say if the file has uploaded correctly or not, and if the MIDI track is in the process of being loaded/transformed/etc. Plus some of the MIDIs would result in one note being held nonstop, eventually causing the whole playback to kinda slow down and malfunction... but I'm sure you'll find fixes for everything eventually, you seem to know what you're doing. :)
Title: Re: NSM Sound Utilities [June 30, 2016]
Post by: PetrifiedLasagna on July 01, 2016, 08:49:57 AM
Quote from: Onionleaf on July 01, 2016, 04:34:43 AMThis look pretty cool! It was able to play back the majority of my MIDIs that I uploaded, but would sometimes stop partway (which might have something to do with my connection). It would be nice to see some sort of status text which would say if the file has uploaded correctly or not, and if the MIDI track is in the process of being loaded/transformed/etc.

This actually does not connect to the internet. Everything is local, so you could even run this offline if you downloaded the page and scripts. Although, I will implement some kind of message box that will appear while the midi is being processed.

Quote from: Onionleaf on July 01, 2016, 04:34:43 AMPlus some of the MIDIs would result in one note being held nonstop, eventually causing the whole playback to kinda slow down and malfunction... but I'm sure you'll find fixes for everything eventually, you seem to know what you're doing. :)

Would you like to send me the midis that are having problems? That way I can better figure out what is causing the problem. I have a hunch on what might be causing it though.
Title: Re: NSM Sound Utilities [June 30, 2016]
Post by: PetrifiedLasagna on July 09, 2016, 12:27:07 PM
Hey guys. This next update is going to be big, I just wanted to fix one thing before releasing. You are all probably aware that the sample being used is not exactly pleasant. So I wanted to ask if anyone with a piano could record a treble A note being played at an average intensity.

Why A? Well, the frequency formula I am using is based on the frequency of said note.
Any sounds will be appreciated. :)
Title: Re: NSM Sound Utilities [June 30, 2016]
Post by: E. Gadd Industries on July 25, 2016, 05:53:44 AM
Well, I just tried out Virtuoso. I put in Gourmet Race, and it started off really slowly, and as the song progressed, it sped up a little bit, but not fully. It also lagged a lot. But then again, it is Gourmet Race XD
Title: Re: NSM Sound Utilities [July 25, 2016]
Post by: PetrifiedLasagna on July 25, 2016, 01:56:29 PM
Wow, it has been a while. There is now a new update of virtuoso out for you guys to try. One of the cool things is now you no longer have to listen to the horrible sound of a square wave (when online). Of course, in order to avoid getting sued, I had to create my own sample for the sound effect and the best I could get was something along the lines of an old style electric-piano.

Special thanks to Onionleaf for providing me with some midis to help me fix some troubling bugs.

Quote from: E. Gadd Industries on July 25, 2016, 05:53:44 AMWell, I just tried out Virtuoso. I put in Gourmet Race, and it started off really slowly, and as the song progressed, it sped up a little bit, but not fully. It also lagged a lot. But then again, it is Gourmet Race XD

I am listening to this as I am typing and it is running at the appropriate speed. Whatever could have been causing that problem seems to have been fixed.

Quote from: Maelstrom on June 30, 2016, 04:52:36 AMNice!
One problem I found:
It glitches out playbackwaise in Google Chrome when it's not in the current tab.

Edit: and there's no way to tell just by looking at it that a note is repeated instead of just held.

I seem to be getting a similar issue in firefox. I am not sure what is causing, but since it is happening in both it is reasonable to assume that it has something to do with how browsers will execute scripts in the background. I will have to look into this to see if there is a solution.
Title: Re: NSM Sound Utilities [July 25, 2016]
Post by: PetrifiedLasagna on July 26, 2016, 10:35:41 AM
Just finished another update.

This one fixes a few issues with performance as well as how playback advances through the song.

Also regarding the issue where playback pauses when it is not the active tab. Browsers will pause or greatly slow down all execution of "requestAnimationFrame". I will see if there is a good way to push that to some other execution area so that playback won't pause.
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: PetrifiedLasagna on July 30, 2016, 09:20:03 PM
I have got a new tool for you guys. This is basically a bpm tool that is similar to all8, except this is already integrated into an SMForum. Checkout the live demo (along with virtuoso) to see it in action!

Special thanks to Sebastian for the awesome name ;D

NSMetronome: (Live Demo - nsmdevsite) (http://nsmdevsite.comxa.com/index.php?action=audiotools;sa=NSMetronome)
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: E. Gadd Industries on July 31, 2016, 05:09:13 AM
That looks awesome! It works great on mobile!
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: PetrifiedLasagna on August 02, 2016, 05:56:51 AM
I figured I should show you guys the latest update for virtuoso and what it is capable of, so I created another video.


I am probably going to create a thread just for people to ask to have midis formatted so they will have the correct result. It looks to me like Finale will only split parts up by each part, instead of by stave.

Also, I think I may know a way to prevent playback from pausing when the window/tab is inactive. Also also... I am thinking it's about time for me to take a break and focus on arranging again. Although if you guys happen to come across a critical (app breaking) bug, I will definitely get right on it ;)

Quote from: E. Gadd Industries on July 31, 2016, 05:09:13 AMThat looks awesome! It works great on mobile!

Thanks for testing it out on mobile! I wasn't sure if my code would work on that platform.
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: Sebastian on August 02, 2016, 08:00:30 AM
Excellent work, PL!
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: PetrifiedLasagna on August 12, 2016, 09:11:00 AM
Minor update for virtuoso. I added pedal (sustain) feedback so that it is possible to know when the sustain is being used in a song. It does not affect the outputted sound yet, but I plan on doing that when I start reworking the sound engine for more realistic and clearly discernible playback. That means studying the dynamics of string acoustics and more specifically piano... Yeah!  ;)

Here is a screen shot of what the indicator looks like (when it is off).
(https://www.ninsheetmusic.org/forum/proxy.php?request=http%3A%2F%2Fi.imgur.com%2F3lkNctd.png%3F1&hash=6c1e2cf142636d406fb8d6279ff378052a615137)

It turns on/off depending on the event received, and will even turn off at the end of a song if it is still on.
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: WaluigiTime64 on August 20, 2016, 01:17:56 PM
Just a little concern over NSMetronome. Because All8 is literally taking forever to load (it's loading right now), I decided to use NSMetronome instead. However, when I pressed the link, I ended up here:

Big Images
(https://www.ninsheetmusic.org/forum/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FNMdaZ13.png&hash=062645650839e7bef992c8c4a5bf8790508c2165)

(https://www.ninsheetmusic.org/forum/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FqEfg7rR.png&hash=6eea4354aca5d5bbdd5cf0daa26a8c3727b1ef8b)
[close]

Also the URL in the website mentions "CPU limit reached". Is there any reason why I'm sent there? I checked both links (the post introducing it and the OP), and both did the same thing.
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: PetrifiedLasagna on August 22, 2016, 04:26:52 PM
Quote from: WaluigiTime64 on August 20, 2016, 01:17:56 PMJust a little concern over NSMetronome. Because All8 is literally taking forever to load (it's loading right now), I decided to use NSMetronome instead. However, when I pressed the link, I ended up here:

Big Images
(https://www.ninsheetmusic.org/forum/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FNMdaZ13.png&hash=062645650839e7bef992c8c4a5bf8790508c2165)

(https://www.ninsheetmusic.org/forum/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FqEfg7rR.png&hash=6eea4354aca5d5bbdd5cf0daa26a8c3727b1ef8b)
[close]

Also the URL in the website mentions "CPU limit reached". Is there any reason why I'm sent there? I checked both links (the post introducing it and the OP), and both did the same thing.

hmm... yeah, I have to talk to Sebastian about what should be done since it is the service provider that is causing it. I am not sure if it is a monthly or if it is a trial that expires once so many resources have been used. I can upload the tool to my domain for the time being. I'll get that done right now.

Also, first post in almost a month! I told everyone I am liable to vanish  ;)

EDIT:
Okay, NSMetronome is once again live.
http://notebookinc.byethost15.com/js/nsmetronome/ (http://notebookinc.byethost15.com/js/nsmetronome/)
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: PetrifiedLasagna on August 25, 2016, 10:44:08 AM
Regarding midi exports for playback in virtuoso, in order to get the expected number of different channels(colors) during playback, you have to go into the "score manager" in finale/notepad and change the channels of the parts that you want to differentiate. Then you can save it as a midi.

Although, from my experience this will mess up the dynamics unless you assign a copy to each individual part. I could just be doing something wrong though.
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: E. Gadd Industries on February 11, 2017, 10:27:59 AM
Does Virtuoso work for anyone here? It's stuck in the "Initializing" screen for me.
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: PetrifiedLasagna on March 28, 2017, 07:11:09 AM
Horay, I finally came back... and with an update to virtuoso!

Here is the changelog for this version

- Added play/stop buttons
- Added time slider
- Sound playback enhanced and made more realistic
- Lots of optimizations and bug fixes
- Actually counted the number of changes and categorized them...

One thing that I am happy to say is that by changing the midi note engine I was able to get rid of that horrible popping sound that was occurring when notes we stopped. Hope you all enjoy it!  :)
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: mikey on March 28, 2017, 07:26:31 AM
Much excite!!
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: E. Gadd Industries on March 28, 2017, 09:28:53 AM
Yeyyyyyy
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: PetrifiedLasagna on March 29, 2017, 10:53:41 AM
Quote from: NocturneOfShadow on March 28, 2017, 07:26:31 AMMuch excite!!
Quote from: E. Gadd Industries on March 28, 2017, 09:28:53 AMYeyyyyyy

haha
Much excite, such Yeyyyyyy, Wow.
- Doge


I just had to write that!


This next update is brought to you by pure unadulterated math.
(https://www.ninsheetmusic.org/forum/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FsnmNH3K.png%3F1&hash=297c6c04fec0130162c5039f319b3a27c476c2b1)

And let me just say that I love it. For this update I added some pitch based volume scaling, i.e. higher notes are quieter than lower notes. This way, the lower harder to hear notes can bleed through the sharper higher pitched ones.

Also, if you are curious, the graph in the picture is the formula (purple line) that I spent a couple hours trying to figure out so that I could get this update out to all you wonderful folk. ;)
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: Dudeman on March 29, 2017, 11:42:50 AM
Sometimes I think I'm smart. And then PetrifiedLasagna posts.
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: Maelstrom on March 29, 2017, 11:56:51 AM
Ok, first of all, great job.
2 things I noticed:
#1 - Percussion tracks go straight to piano which sound really strange
#2 - If you go out of the tab for a while when it's still playing the music stops. Going back in causes hilarious results and also slowed it down permanently for me once.
Title: Re: NSM Sound Utilities [July 31, 2016]
Post by: PetrifiedLasagna on March 29, 2017, 12:45:31 PM
Quote from: Maelstrom on March 29, 2017, 11:56:51 AMOk, first of all, great job.
2 things I noticed:
#1 - Percussion tracks go straight to piano which sound really strange
#2 - If you go out of the tab for a while when it's still playing the music stops. Going back in causes hilarious results and also slowed it down permanently for me once.

#1 - I definitely want to expand the sound library in the future so that multiple instruments can be played. Drums will probably be the edge case (multiple sounds, on instrument) that will require some planning ahead so that it fits with everything else.

#2 - Yeah, that's been an issue for a while. It's the way that browsers handle inactive tabs. I am going to try and fix this ASAP; hopefully by the end of the week.
Title: Re: NSM Sound Utilities [March 30, 2017]
Post by: PetrifiedLasagna on March 30, 2017, 11:58:35 AM
new update, and new avatar (finally). Hope you enjoy both. :)

HAHAHA! I have done it. I am nearly 100% positive that I have fixed the inactive tab pausing bug. I would like to point out that this also includes leaving the window that the app is in, and it will not redraw the canvas even if it's still visible, so keep that in mind.
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: PetrifiedLasagna on April 02, 2017, 07:50:21 AM
This update to Virtuoso has once again been brought to you by the power of math. I will spare you the gory details, but let's just say that when I start using paper and a calculator I mean business.

I pretty much just tweaked the sound engine and it has made a huge difference. Not only do notes fade as expected, but chords really pop now making the listening experience that much better.

I also made a nice organ sound with a waveform creator that I made, but that has not been enabled yet. I am going to start amassing a sound library and will add a context menu so that it is possible to control more settings without taking up unnecessary space on the screen. I just can't believe that after all this time Virtuoso is so close to getting its first full release.

TL;DR

Update Virtuoso, math, almost complete.

If anyone is interested in testing themselves for college level math course I can send you the problem that I spent the past few days solving (requires knowledge of logarithms).
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: Maelstrom on April 02, 2017, 08:07:27 AM
Just curious, what's the largest amount of tracks it can handle? I tried loading in a large midi and it basically rendered it unresponsive.

Also, the lag bug when the tab is no longer open is still in for google chrome for some reason. Sorry I didn't mention this earlier.
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: Latios212 on April 02, 2017, 08:31:39 AM
Quote from: PetrifiedLasagna on April 02, 2017, 07:50:21 AMIf anyone is interested in testing themselves for college level math course I can send you the problem that I spent the past few days solving (requires knowledge of logarithms).
Did someone say math??
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: PetrifiedLasagna on April 02, 2017, 08:41:06 AM
Quote from: Maelstrom on April 02, 2017, 08:07:27 AMJust curious, what's the largest amount of tracks it can handle? I tried loading in a large midi and it basically rendered it unresponsive.

Also, the lag bug when the tab is no longer open is still in for google chrome for some reason. Sorry I didn't mention this earlier.

I was able to fix the bug in Chrome. For some reason Chrome was going like, "No! No more animation for you!" So basically, it was cutting it off before it could even setup the fallback loop.

There is no max number of tracks. Would you mind sending me the file that's giving you trouble so I can take a look at it? At what stage is it freezing for you (loading, done loading, playing, specific point in midi, etc.)?

Quote from: Latios212 on April 02, 2017, 08:31:39 AMDid someone say math??

Haha, I could PM the problem if you want.
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: Latios212 on April 02, 2017, 08:41:41 AM
Quote from: PetrifiedLasagna on April 02, 2017, 08:41:06 AMHaha, I could PM the problem if you want.
Yeah, I'd be interested in taking a look!
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: mastersuperfan on April 02, 2017, 08:59:41 AM
Mind PM'ing me too? I'd be interested in taking a look (and even if I can't solve it, I'm sure my friends could; they're a lot better at math than I am).
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: Maelstrom on April 02, 2017, 09:14:22 AM
Quote from: PetrifiedLasagna on April 02, 2017, 08:41:06 AMThere is no max number of tracks. Would you mind sending me the file that's giving you trouble so I can take a look at it? At what stage is it freezing for you (loading, done loading, playing, specific point in midi, etc.)?
It just won't play anything when I hit the play button. Unless I reload the page, that transfers over to other files also.
Note: further testing revealed that it was just for this (https://www.dropbox.com/s/ffo1dnzt3b4et6j/Unrest%20~%20Their%20Own%20Brand%20of%20Justice%20%28raw%20midi%29.mid?dl=1) file. Also, I'm not sure it deleted previously uploaded files when new ones are uploaded, because I was able to get it stuck in the processing phase after loading too many.

And the chrome bug is still there for me.
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: PetrifiedLasagna on April 02, 2017, 09:31:33 AM
Quote from: Maelstrom on April 02, 2017, 09:14:22 AMIt just won't play anything when I hit the play button. Unless I reload the page, that transfers over to other files also.
Note: further testing revealed that it was just for this (https://www.dropbox.com/s/ffo1dnzt3b4et6j/Unrest%20~%20Their%20Own%20Brand%20of%20Justice%20%28raw%20midi%29.mid?dl=1) file. Also, I'm not sure it deleted previously uploaded files when new ones are uploaded, because I was able to get it stuck in the processing phase after loading too many.

And the chrome bug is still there for me.

Thanks! Hang on, I didn't upload the change yet :P, sorry about that.

Edit: It's up now.
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: PetrifiedLasagna on April 02, 2017, 10:23:48 AM
Okay, just fixed it. This was actually an issue with the channels, since I only had 10 colors set, but there can be up to 16 channels.

Also, the maximum amount of tracks that a midi can have is quite literally 65,535. So the only thing I can do (when the mode is set to color tracks) is make it loop through the colors as it goes through multiples 16. Thanks for pointing out this issue to me Maelstrom.
Title: Re: NSM Sound Utilities [April 2, 2017]
Post by: PetrifiedLasagna on April 16, 2017, 10:52:36 AM
It's been a while since the last update. I am actually working on the site that will host all of these applications. I also want to make it so others can submit their own creations as well. Here is a screenshot of what the site looks like so far (this is offline).

(https://www.ninsheetmusic.org/forum/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FMfYZHcJ.png&hash=879520d1b533881479e0d7ced5283a30cb16739a)

Yes, I drew that lovely picture myself :D