[UPDATE 0.3.0] Playable Instruments [BETA]

Author Topic: [UPDATE 0.3.0] Playable Instruments [BETA]  (Read 29117 times)

mount some splashes and stacks on the toms, and add some Chinas on each side, and i will be happy.

jesus dude it's supposed to be a simple drumset not neil peart's

jesus dude it's supposed to be a simple drumset not neil peart's
I was going for at least a Mike Portnoy feel haha

you should have made this compatible with .abc

Request for a sousaphone.


great job mate,
i like this add-on, and i think it's have a good potential.

its a bit annoying to write the song by hand,
and i hope in the futher there will be some gui to make it abit easyer.

anyway, i had great idea to add songs, (even if you dont know how to write them)
just convert midi files to notes.
i looked for a way, and i came across with the rttl format which is very similer to the instrument's format.
so i wrote to myself some differences between these both formats:
Quote
//////////////
//RTTL Format:
//////////////

file header:
------------
[song_name]:d=[Default duration],o=[Default octave],b=[Default bpm (beats per minute),i.e.: tempo]:

the rest of the file:
---------------------
[duration/Length]note[scale/Octave],[duration/Length]note[scale/Octave], etc...

example:
--------
fifth:d=4,o=5,b=63:8P,8G5,8G5,8G5,2D#5

Notices:
-------
quote from wikipedia:

"Dotted rhythm patterns can be formed by appending a period (".") character to the end of a duration/beat/octave element."

[duration]p = Pause

///////////////////////////////////////////
//Blockland's Instrument Mod format ('BIM' in short):
///////////////////////////////////////////

file structure:
---------------
[author name]
[phrase number to play],[phrase number to play],ect...
[phrase 0]
[phrase 1]
ect...

each phrase:
---------------------
[t:[delay-time]] [Octave]note[Length],[Octave]note[Length],ect...


Notices:
-------
1. as far as i see, there is no limition to the phrase length, and amount:
    "The maximum length for a phrase is 256 characters"
    "The maximum amount of phrases a song can have is 16"

2. song file can play with only one temp decleartion, i.e.: t:[tempo]
   in the first phrase line (phrase 0).


3. as what Electrk. told me the [t:] isn't a tempo, its just used as delay,
    meaning how fast the phrase will play, its not required if you don't care about the speed, so i'm putting it as optional function

the delay range is from: 64 to 1000, if not used, its a default of 250

/////////////////////////////////////////////
sources:

rttl format:
https://en.wikipedia.org/wiki/Ring_Tone_Transfer_Language
http://www.activexperts.com/xmstoolkit/sms/rtttl/
http://www.mobilefish.com/tutorials/rtttl/rtttl_quickguide_specification.html
http://www.smssolutions.net/tutorials/smart/rtttl/

midi to rttl converter:
http://midi.mathewvp.com/midi2RTTL.htm

BIM format:
-this thread-

i got btw midi2rttl converter (php) source files, if someone needs it.

edit: i fixed some mistakes
« Last Edit: August 17, 2015, 03:16:00 PM by Turbotime »

So is the Drum set going to be a thing or am i going to have to keep fantasizing about it?

great job mate,
i like this add-on, and i think it's have a good potential.

its a bit annoying to write the song by hand,
and i hope in the futher there will be some gui to make it abit easyer.

anyway, i had great idea to add songs, (even if you dont know how to write them)
just convert midi files to notes.
i looked for a way, and i came across with the rttl format which is very similer to the instrument's format.
so i wrote to myself some differences between these both formats:
i got btw midi2rttl converter (php) source files, if someone needs it.


Some corrections:

The tempo declaration is not required for a phrase, nor is only one tempo declaration allowed for each song, nor is it required to be in phrase 0. It's actually not even the tempo you're changing; it's the delay, which is why I'm changing it to d: in the next update. Each delay change is read individually, meaning that you could have t:64,4C,t:204,5C if you wanted to.

Some corrections:

The tempo declaration is not required for a phrase, nor is only one tempo declaration allowed for each song, nor is it required to be in phrase 0. It's actually not even the tempo you're changing; it's the delay, which is why I'm changing it to d: in the next update. Each delay change is read individually, meaning that you could have t:64,4C,t:204,5C if you wanted to.

so it still not clear to me, how you can set the tempo (if there is any) for a song?
« Last Edit: August 15, 2015, 07:55:40 PM by Turbotime »

so it still not clear to me, how you can set the tempo for a song?
(if there is any)

You can't.

You can't.
ok, i'll fix the file declaration

edit: fixed (see bolded text above)
« Last Edit: August 15, 2015, 08:32:07 PM by Turbotime »

Quote
4. due to lack in tempo, another solution might be to use the delay as tempo by delaying each note
    (or numbers of notes) as i demonstrate in these examples:

    t:100,4g_,t:100,5g,t:100,4a,t:100,4b+5d,t:100,4g,t:100,4e,t:100,5d,t:100,4g_,t:100,5d+5g_,t:100,4b_,5d+5g_

no

it changes the delay until the next delay change
you don't need to do it for every single one

I was just giving an example of being able to change delays

yea, another mistake.
i tested it this time, and checked the files.
i fixed it (hopefully) again

i know the t: isn't tempo, but i found this in the file:
Quote
//server.cs
////////////

311   if (%tempo $= "" || %tempo < 64 || %tempo > 1000)
312      %tempo = 250;
although it's act like a tempo, it's not a real tempo as you said.
« Last Edit: August 17, 2015, 10:16:34 AM by Turbotime »

here i made a bit simpler chart:
(focusing on the notation structure)
-----------------------------

RTTL
-----
[Duration]note[Octave]
-----------------------
example:  8G5

Durations:
---------
1 a full note
2 a half note
4 a quarter note
8 an eighth note
16 a sixteenth note
32 a thirty-second note

Octaves:
-------
1,2,3,4,5,6,7

Pitch:
-----
a    Note A
a#    Note A-sharp
b(or h) Note B (or Cb)
c    Note C
c#    Note C-sharp
d    Note D
d#    Note D-sharp
e    Note E
f    Note F
f#    Note F-sharp
g   Note G
g#    Note G-sharp
p    Rest or pause

now, let's do the same example with the Instrument mod:

'BIM'
-----
[Octave]note[Duration]
-----------------------
example: 5G/

Durations:
---------
- for whole (act as full note)
_ for half (act as half note)
$ for quarter (act as quarter note)
/ for eighth (acting as eighth note)
; for sixteenth (acting as sixteenth note)
;; for thirty-second (acting as thirty-second note,by combining two sixteenth)

Octaves:
-------
typically 3,4,5,6
(depends what instrument being used)
some instruments support 4,5,6

Pitch:
-----
A    Note A
AS    Note A-sharp (A#)
B    Note B
C    Note C
CS    Note C-sharp (C#)
D    Note D
DS    Note D-sharp (D#)
E    Note E
F    Note F
FS    Note F-sharp (F#)
G    Note G
GS    Note G-sharp (G#)
("For sharps you can use # or S")


edit: i added the pitches.
« Last Edit: August 17, 2015, 04:23:37 PM by Turbotime »

please add support for the rttl format
it would make this mod even more incredible