Well, this isn't realy a feature sugestion, but it is A sugestion. i find that one of the nice things about musagi is it's flexibility in creating unique instruments and the ability to move them easely from computer to computer, so i would sugest setting up an instrument swaping site, if you're up to it, and maybe a place to swap music created in musagi. it could be nice.
now i got an idea for a feature! (though not very urgent) a musagi player, so you can play the smu files like midi. or maybe some plugin to make it possible to play on other platforms like winamp (i'm getting caried away, i know. knowing nothing about programing is bliss)
That build is from a while ago, so the very latest songs probably won't play right (or load at all). MIDI and VSTi aren't supported and they probably never will be for the player.
If you set it up to associate with .smu files it's kind of convenient. Just double-click any file(s) and it gets queued in the playlist. The app automatically adjusts volume to something reasonable (might be a bit on the low side, could use a config setting) and skips to the next song after some number of repeats if it's an ever-looping tune. Use the little taskbar icon to skip songs manually.
You also get neat icons for your song files
Instrument and song swapping would be great, but it doesn't feel relevant yet as I might change the instrument formats a bit and hence destroy lots of prior content. When the "final" release has been made I'll look into it, but ideally someone else would run such a site as I'm not that much of a web admin
First of all, let me jump on the "thanks" bandwagon and say a huge gigantic THANKS for this program! Seriously dude, it's really quite great. I would actually say it's simplicity is one of it's strengths. I guess I would like to request that stay a feature, haha. Too many music creation programs are just way too chock full of little digital nobs and obtuse interfaces that make no sense, so yeah, I'm really digging Musagi.
That said, there is one thing I'm curious about: What format exactly does it save in? Is it an entirely new format or is it derived from and/or a custom container for another? The reason I ask, is that it would be rad if I could take songs created in Musagi and play them in games and programs in their native formats as opposed to recording a WAV and then compressing as OGG or MP3. That is, if Musagi exported to MOD or XM or etc, I could load them up in my code right through fmod or sdl, and potentially have more control over their playback (esp, with fmod) and also have smaller file sizes.
I realize though that MODs, being a sequence of samples, might not work with the built-in synth instruments (unless those just create a sample as well?) and this might be a pretty big pain in the ass though, if possible at all.
The song format is fully custom and basically a selective memory dump, as are many other lazy file formats I'm sure Actually each class/section of the program (like parts, song, all instruments) has its own "save" procedure which takes care of injecting the relevant data into a common file stream.
MOD/XM export is something I've given minor thought earlier, but as you realize it's pretty much impossible to do accurately and efficiently for generalized synth sounds. One possibility would be to allow it when a song only uses swave and vsmp, since those are sample-based and similar to what you could make in a true module. It would no doubt mean a lot of work though, and isn't something I'm aiming for at the moment.
There is the native playback library though, which unfortunately isn't up to date and able to read the latest files yet. I'll have to make a proper effort at bringing it up to speed at some point, and make it easier to keep current. It basically works with any audio stream, currently hardcoded for portaudio but should be possible to make it decoupled so that you could put something like "playmu_renderbuffer(size)" in the callback of your audiostream of choice (fmod, sdl, ...).
Once upon a time, I used Cakewalk to compose Midi music. Although I think Musagi has a lot of usability advantages over cakewalk, there are some things that I miss.
Specifically, When you are clicking in the note view for a particular track, instead of just playing the note you clicked on for an instant, it would be really nice to sustain the note for as long as the mouse is down.
If you are creating notes, you should be able to click and drag and it will auto move the note you just created to whatever time/note the cursor moves to, while previewing the sound of the note you are currently landing on. This would make composing by ear way faster. I currently have to ctrl click the space just to tell if it's the right one.
When you are horizontally scrolling in the note view, please exclude the mouse from influencing the note volumes. Since you are clicking and dragging, my cursor sometimes has a tendency to dip below the slider, which causes my note volumes to get all funky when I scrub.
You should be able to hold the spacebar to scrub time on the note view. This currently works only for the main view.
Undo (even if it's just one level).
I'm trying to use Musagi to compose interactive music, which means once I write a piece, I have to chop it up into seamless chunks that I can stitch back together programatically. The export to WAV makes this kind of inconvenient because it just records whatever the application happens to be up to. I would like a way to export my song without having to load it up in a seperate WAV editor and trimming the space before the song starts. Having to do this also leads to imprecision because I have to base chop points purely off the sound rather than knowing an exact second number that I know a sequence ends. I would rather the export button automatically start playback so that the resulting WAV is easy to chop up.
It would be nice if the note view could remember a preferred aspect ratio. I find myself making every note view I open wider horizontally and shorter vertically because tracks don't typically cover a very wide range vertically, but often last longer than the default range of a few measures.
It would be nice if there was a way to start playing either the whole song, or just the current note view from the current position of the mouse cursor. I find myself moving the start of the song around a lot just for preview purposes, and there really isn't any way of getting to the end of a long track quickly in the note view. Ideally, I could have a hotkey that when I press it, it just starts from wherever my mouse is; if it's in the main view, play the song, if it's in the note view, play the track.
When a track loops, it would be really nice to be able to select the track by clicking on one of the gray loop boxes. For example, if I have one measure of drums that is repeated over the whole song, every time I add a few measures, I need to up the number of loops on the drum track which means scrubbing back all of the way to the beginning of the song to select the source track then scrubbing all the way back to where I was working.
Finally, this is a bit superficial, but it could use an awesome icon rather than the windows default.
Anyway, all that being said; I really love the program. It's a lot of fun to work with. This is really fantastic for lowering the bar to getting music into small game projects. I'm going to bring this and SFXR to the next Game Jam (www.trianglegamejam.com/) because I think a lot of people will find it useful.
MikeD: Thanks. Lots of interesting and valid suggestions there.
You should download and try the newest version. While it doesn't address any of the things you mention here, it does add some other stuff that is sure to increase productivity and smoothness of operation (like selecting and moving/deleting multiple parts at once).
Note drawing behavior: Sort of difficult, that one. I like being able to put in a note and immediately drag out its duration without having to first create it and then click again to modify it (and I like not having to listen to a long tone while doing so), but maybe that's just because I'm used to it. I'll see if it's convenient to add other variations and try them out. Maybe it would be worth creating a preference option for it.
Mouse changing note velocities while scrolling is a known (and annoying) bug, I don't know why I haven't fixed it yet Space-scrolling in the part windows should come soon, can't see why it would be any trouble to implement.
Undo... yeah, popular feature that... and potentially very troublesome to implement. I might at least try adding it for "heavy things" like deletion of parts and notes. I doubt it'll happen for general instrument settings though (since they all do their interfaces in different ways). One semi-cheaty way of doing it would be timed auto-save that dumps the song to a temporary file every N minutes and lets you revert to the latest revision in case you mess up. That could get annoying with large projects though, as they'd take non-zero time to save.
More flexible WAV export would be nice, and shouldn't be too hard to do. The most obvious thing would be to make it start at the beginning of the song and cut off right at the end (unless looped). I would still like to keep the option for "live recording" though, so you can easily get stuff other than actual composed songs (like improvised sound effects etc).
Remembering part window dimensions is also a sane idea. The default is just some random size that seemed appropriate at some point. I guess a newly created window should use whatever size you most recently had open, or perhaps some average.
Play from mouse position is an interesting proposition but not quite straight-forward. Would make life easier though, for sure.
Agreed also about selecting looped sections of parts. Although you can reduce the extreme cases by just using a handful of loops and then putting in a clone of the part, which you then proceed to loop yet another handful of times. The result is the same (only one actual note sequence being used for all of them) but you get accessible handles spread out over the length of it. In the old versions you'd Ctrl+middle click to create a clone, which you can still do. Just today though, I added the ability to do it through a right-click menu over the part icon itself, or by pressing Ctrl+D with a part selected. Loop counts are individual for each cloned instance.
Oh, and I'll look into making a groovy little icon for the thing
(that shape slasher game looks sweet btw, in all its simplicity)
That's a good point about being able to drag durations, I hadn't made that connection when I made the feature request about being able to drag notes around and preview the sound. Being able to drag on note creation to determine the duration is really convenient. I remember not being able to do that was a huge frustration I had with Cakewalk.
I wouldn't really want to loose that behavior, so maybe there is a way to get both. When you hold Ctrl to preview a note without creating it, you could use that to drag the note up and down to different pitches and be able to hold down the mouse button to maintain it.
Baron: Should be possible, at least to a limited extent. I've also considered making the midi exporter more flexible so that it stores each instrument in a separate midi track and not just as channels in a single track.
Importing midi tunes would be a great source of raw material to build/learn from though, since there's a huge amount of midi music out there. Also it would be nice for transfering music from other applications. The main problem would probably be how to split it into parts, since it wouldn't be very practical to get one huge part for each track/channel imported. I'm also not sure how the time quantization should be done.
Let met just start off by saying I'm a huge fan of Musagi. I came here because of someone linking to SFXR as a tool for sound for my games, and found Musagi to be absolutely perfect for making music!
That said, I have a few requests/suggestions:
1. I've been working on a project moving between my desktop and laptop, which run at different resolutions. When I load a project on my laptop, if I had parts that were open outside of the resolution of my laptop, I can't seem to get to them to work on them because they're outside the view area. Also, my laptop lacks a middle button, which, as far as I know is required to add new parts to the song.
2. It would be really nice if, when setting up a looping sample instrument, you could have the loop bounce back and forth between the loop points, rather than just play start to finish and loop back to start. This would make it easier to create some instruments. I know it's done with instruments in module files. Also with this... it seems like there's a "step" to the position I can place my loop points at, so I can't get as precise as I need to make a wave-based instrument loop without little pops in the sound.
3. I definitely would appreciate the MIDI import as well, maybe export too. Even if the whole song was placed in track by track 1 part per instrument, I wouldn't mind breaking it out myself from there. I think someone else had mentioned making the "record to wav" thing automatically start your song. It'd just be nice to hit one button, perhaps get prompted for options, and then just let it render your song to a file and end automatically when it reaches the end. I know that some songs automatically loop, but, at least for me, it would make more sense to just loop my song file back to the loop position in my own code. Rendering straight to OGG would save me a step for conversion too .
Anyways, I've been eagerly awaiting any sort of new release to this. Thanks so much for making it available!
PS: Is there anywhere people are submitting their own music/instruments/parts? I have a few things made, but I'd also be interested in seeing what other people have created with this.
PPS: apparently my account is disabled? I'd tried registering a long time ago, but was waiting for some sort of confirmation email.
derdragon1: I think you should be able to reset the position of a window by hiding it and then showing it again (by double-clicking the instrument name or part icon). It might only work for instruments though, can't remember. I should fix it so that out-of-view windows are automatically rearranged when a song is loaded.
In the latest version you can right-click on empty space in the song area and create a part using the popup menu. Also, any function using the middle button can be performed using Alt-LMB instead (although it doesn't seem to work for slides, no idea why).
Ping-pong loop isn't something I've considered useful, but I might add it at some point if I get bored enough. The steps in loop placement that you mention are due to the program trying to find suitable points for clean looping, so it's actually helping you there. The scale of the window is way too small for the kind of precision you'd need to manually find a perfect loop point. I guess the algorithm might fail in some instances, but usually it does a pretty good job if you move it around a bit near the candidate area (try moving the loop start point as well if you can't get a good loop).
I have no idea what's going on with the user accounts. I tried disabling the whole confirmation/authorization process but I'm not sure it worked... I doubt there are any real benefits from being a registered member anyway.
If you have made some cool material it's ok if you just email it to me and I might put up a small area on the project page where they can be downloaded (or just include it in the zip).
I think someone mentioned this before, but not quite the same as I'm thinking.
Currently, when you save a song as a wav, you use disk record, which is ok, especially if you want to play live via keyboard, or adjust knobs and such. However, I think there may be a better option for general recording.
As an option, when you press disk record, you select "Automatic" and a number of times to play the loop section. This would give you a wav file that has no silence at the beginning, or at the end, fit perfectly to your music.
I am finding, that I must open the wav in a another software, and cut the silence out from the beginning and end. It doesn't take a really long time, but it is tedious, and can lead to errors. Sometimes, maybe even a day later, I might want to adjust a parameter of an instrument, such as I notice a bit of buzz in something, that at first was fine, but aftr hearing many times, it sounds irritating. So I have to go back in, re-record in musagi, then reopen in another application, and go about trimming silence again.
Solution, us a scripted recording function. It should be easy enough to implement, so, Dr. Petter, if you could, please add this to th next release.
ash: Yeah, it's been requested before. Shouldn't be hard to do, I suppose... I'll try adding a preliminary feature which locks wav out to play state, so that when you hit play it starts recording, and when the track stops (due to you pressing stop or a non-looping song reaching the end), the recording stops. For looping songs it's a different matter, you usually want to fade them at the end or cut out a section between the first and second restart to make a seamless audio loop. Better to just ignore those cases for now and let you stop manually and then edit as you please.
Does your software support USB music keyboards? I'm hoping to get one for xmas, and I know I would definitely enjoy being able to noodle melodies into Musagi with it, rather than just using musical-keys.
Other than that, I'd like to put in a request for basic MIDI exporting. Even if the instruments are screwed, it's okay so long as I can get the music timing correct.