Closed eviluer closed 4 years ago
Hi eviluer, unfortunately the part limit is a technical restriction imposed by MIDI, which Maestro uses to play the ABC preview. It's not something that I can change. You can still use Maestro to create songs with more than 14 parts, but you won't be able to play the preview.
Please forgive me for not understanding completely. I've seen midi files with upwards of 30 and 40 parts. What is the restrictions that prevent midi from using that many parts if I have that many parts?
From: digero notifications@github.com Sent: Monday, July 6, 2020 6:40:54 PM To: digero/maestro maestro@noreply.github.com Cc: Eviluer Kinslayer eviluer@bardsofvalinor.com; Author author@noreply.github.com Subject: Re: [digero/maestro] Number of parts (#28)
Hi eviluer, unfortunately the part limit is a technical restriction imposed by MIDI, which Maestro uses to play the ABC preview. It's not something that I can change. You can still use Maestro to create songs with more than 14 parts, but you won't be able to play the preview.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/digero/maestro/issues/28#issuecomment-654516474, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQFSTJJFUKLO4WPGDVNNWULR2JOINANCNFSM4OQQU3HQ.
Is it a track restriction or a channel restriction because I typically reuse my channels?
From: Eviluer Kinslayer eviluer@bardsofvalinor.com Sent: Tuesday, July 7, 2020 9:11:15 AM To: digero/maestro reply@reply.github.com Subject: Re: [digero/maestro] Number of parts (#28)
Please forgive me for not understanding completely. I've seen midi files with upwards of 30 and 40 parts. What is the restrictions that prevent midi from using that many parts if I have that many parts?
From: digero notifications@github.com Sent: Monday, July 6, 2020 6:40:54 PM To: digero/maestro maestro@noreply.github.com Cc: Eviluer Kinslayer eviluer@bardsofvalinor.com; Author author@noreply.github.com Subject: Re: [digero/maestro] Number of parts (#28)
Hi eviluer, unfortunately the part limit is a technical restriction imposed by MIDI, which Maestro uses to play the ABC preview. It's not something that I can change. You can still use Maestro to create songs with more than 14 parts, but you won't be able to play the preview.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/digero/maestro/issues/28#issuecomment-654516474, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQFSTJJFUKLO4WPGDVNNWULR2JOINANCNFSM4OQQU3HQ.
A MIDI sequence can have many tracks, hundreds perhaps, but the limiting factor are the 16 voice channels and how those are configured. You can assign multiple tracks to a channel. However, how the game developer implements their music systems varies from game to game. I do a lot of work with MML which is used in Mabinogi, Maple Story 2 (defunct) and ArcheAge. But just because digero uses MIDI as it basis, does not mean the game developers use it. Mabinogi renders the audio before it's played and it's play code synchronizes a audio streams. In my own implementation I render all the parts at once, then play the stream. ref: mxTune https://github.com/Aeronica/mxTune (Forge Minecraft Mod) So I have similar limitations to Digero,
It's a channel limit, not a track limit. Each part gets assigned to a separate channel so that channel can be configured to play the instrument, and so that multiple parts can play the same note at the same time. It may be possible to mix two parts onto the same channel, but that can get complicated when the two parts need to play the same note at the same time. Reusing the same channel for multiple tracks might work for hand-authored MIDI where you can be careful not to have multiple instruments overlapping on the same track, but that can't be guaranteed in Maestro.
You could submit a pull request if you want to try tackling it. The code that generates the MIDI sequence for Maestro's preview is in AbcExporter, and for ABC player it's in AbcToMidi.
https://github.com/digero/maestro/blob/master/src/com/digero/maestro/abc/AbcExporter.java https://github.com/digero/maestro/blob/master/src/com/digero/common/abctomidi/AbcToMidi.java
Thank you for the explanation. Not that it is of interest to you that I explain in more detail, but I will. When I create the song I am very careful of the amount of notes in each track to keep the note storms down. I will trim down tri tones to do this. Also, with the obvious 64 note limitation in LOTRO (including local sounds), I have to be mindful. In reference to what we are speaking about, I do heavily edit my midi files. Having a 12 man band, it can be hard to have enough tracks for each player. One method I use is to break down tri tones into single tracks. However I use the same channel for each. It produces the same sound. Well, sometimes even better since the same instrument is not playing all three notes at the same time. But that keeps the channel use down. It was intended to all be on the same channel to begin with. So no issues happen. I'm actually doing this already. So expanding it up to 17 or 24 is not an issue. Though, I do understand why it might be for someone that doesn't understand or have the skill to do what I'm doing.
I am a very new programmer to C#. I have an application that I developed with a HUGE amount of help from others. I have never programmed in Java. I have your source code but I don't think it is a good idea for me to have my own separate version as any updates you do would not be included in mine. I am beyond my knowledge of best way to do this. I would love the restrictions removed or at least an option to do so in maestro for those of us to know how to manage the midi files.
I welcome any suggestion and would help in any way that I can.
Eviluer
From: digero notifications@github.com Sent: Wednesday, July 8, 2020 12:13 AM To: digero/maestro maestro@noreply.github.com Cc: Eviluer Kinslayer eviluer@bardsofvalinor.com; Author author@noreply.github.com Subject: Re: [digero/maestro] Number of parts (#28)
It's a channel limit, not a track limit. Each part gets assigned to a separate channel so that channel can be configured to play the instrument, and so that multiple parts can play the same note at the same time. It may be possible to mix two parts onto the same channel, but that can get complicated when the two parts need to play the same note at the same time. Reusing the same channel for multiple tracks might work for hand-authored MIDI where you can be careful not to have multiple instruments overlapping on the same track, but that can't be guaranteed in Maestro.
You could submit a pull request if you want to try tackling it. The code that generates the MIDI sequence for Maestro's preview is in AbcExporter, and for ABC player it's in AbcToMidi.
https://github.com/digero/maestro/blob/master/src/com/digero/maestro/abc/AbcExporter.java https://github.com/digero/maestro/blob/master/src/com/digero/common/abctomidi/AbcToMidi.java
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/digero/maestro/issues/28#issuecomment-655289839, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQFSTJLQZMIKNYVLRJNMLGLR2P6A7ANCNFSM4OQQU3HQ.
I understand that it's possible to manually author a MIDI file where multiple tracks can share a channel without issue. But Maestro can't assume that everyone has arranged their ABC file in that way. So it either has to somehow generate a valid MIDI sequence even when there are overlapping notes on the same channel, or it has to detect that case and show an error message. It's not impossible, but it isn't something that I have time to work on right now, unfortunately.
Your best bet for a workaround for now is to split the song into two ABC files, so at least you can preview half of the parts at once. And then when you play the song in the game, you'll get to listen to the entire creation as a whole for the first time, which makes it even more exciting to get the full group together.
Our bands in LOTRO are growing in size. Some of us are expanding past the 14 part limitation. I am aware of the note limitations of LOTRO, but I also heavily edit the midi files and can change each part to single notes or only one harmony. I am currently creating 17 part songs by simply making two and combining them in the ABC. I know it is possible to do as I am doing it manually. The max band member size is the size of a raid. Could the part limitation be changed to 24 please. There are those of us who know how to make this work well. The 14 part limitation is not necessary.