fbpx


The MIDI Forum

New

Note off

  Saturday, 24 September 2022
  28 Replies
  9.2K Visits
17
Votes
Undo
  Subscribe
I'm sending NOTE ON to a device (acoustic bass). The bass sounds and decays. After a second I send the next NOTE ON command, while the first note is still decaying.
So the second note interferes with the first one. Do I have to send a NOTE OFF with exactly the note to put off. Then I would have to keep in mind the last played note. Or is there a command "ALL NOTES OFF"?
6 months ago
·
#17924
0
Votes
Undo
According to the Dream SAM2695 manual, the SAM2695 has a serial port and a parallel port. In its default mode (the "serial mode"), you can send MIDI messages to the serial port which the SAM2695 synthesizer will interpret to generate sounds. It's also possible to send some special device control messages to the parallel port. However, it seems like the board you are using is this GM Mini Module (German manual), which leaves the Dream SAM2695 parallel port unconnected, so the only thing you are able to use is the serial port. (The SAM2695 also has a "parallel mode", but it's not available to you since you can't use the parallel port.)


In the Dream SAM2695 manual:

• Pages 15 to 18 are all describing Non-Registered Parameter Number (NRPN) messages. (The overview table on pages 15 and 16 shows all the commands at a glance. The following tables and descriptions on pages 16 to 18 give more details.)

• Pages 19 to 25 describe device control messages for the SAM2695's parallel port. (The overview table on pages 19 and 20 shows all the commands at a glance. The following tables and descriptions on pages 20 to 25 give more details.)

• Pages 26 to 29 show the various MIDI messages the device understands.


Be aware that in MIDI, NRPN messages are sent using a special pattern of Control Change messages. For the Dream SAM2695, be aware that all of the NRPN functions from pages 15 to 18 correspond to the following row on page 27 of the MIDI message table:

MIDI MESSAGEHEX CODEDESCRIPTIONCOMPATIBILITY
NRPN 37xxhBnh 63h 37h 62h xx 06h vvSpecial Synthesis features controls (see §2-1)DREAM

where n is 0 to F for MIDI Channel 1 to 16.

For the parallel port device control messages, notice that the overview table on pages 19 and 20 has a column called "Compatible NPRN/Sysex". Since you don't have access to the parallel port, if you want to do something shown in this section of the manual, you should send one of the corresponding NRPN or Sysex messages to the serial port.


In your original message today, when you tried to send the following

REST: ff
GS_R: f0 41 00 42 12 40 00 7f 00 41 f7
MONO: b0 7e 01
VOL : 37 20 ff
GMVL: 37 22
MSVL: 07 10
VOIC: c0 21

It looks like you wanted to use the "37 20" and "37 22" messages from the NRPN section of the manual and the "07" message from the parallel port device control section of the manual. You'll need to convert these into MIDI messages. Also note:

For the NRPN message 3720 "Spatial Effect volume", notice that the value range is 00 to 7F. (It looks like you wanted to use FF which isn't valid.)
For the NRPN message 3722 "General MIDI volume", notice that the value range is 00 to 7F. (It looks like you forgot the value.)
For the device control message 07 "Master Volume" (range 00 to FF), you should use compatible NRPN message 3707 "Master volume" (range 00 to 7F). (I think you could convert hex 10 in the bigger range to hex 08 in the smaller range.)

After converting them to MIDI messages, I think you'd get the following:

ff (Reset)
f0 41 00 42 12 40 00 7f 00 41 f7 (GS Reset)
b0 7e 01 (Channel 1 Mono On)
b0 63 37 62 20 06 7f (Channel 1 "Spatial Effect volume" max)
b0 63 37 62 22 06 7f (Channel 1 "General MIDI volume" max)
b0 63 37 62 07 06 08 (Channel 1 "Master Volume" value 8)
c0 21 (Program Change Channel 1, Electric bass (finger))

(Note: Even though you are sending the NRPN messages on MIDI Channel 1, I suspect some of these commands might have a device-wide effect on all MIDI channels and the specific channel you sent it on doesn't matter. If you ever need to use multple MIDI channels, you might want to preform some listening tests to confirm if these commands affect the volume level you hear on all MIDI channels.)

However, I think you might be trying to test too many different volume controls at once. I suggest you just try Control Change 7 (channel volume) and see if that works for you.

ff (Reset)
f0 41 00 42 12 40 00 7f 00 41 f7 (GS Reset)
b0 7e 01 (Channel 1 Mono On)
b0 07 7f (Channel 1 Volume max)
c0 21 (Program Change Channel 1, Electric bass (finger))
6 months ago
·
#17925
0
Votes
Undo
More issues

In this message you said you were trying to send the "GS_VOLUME" message:

f0 42 00 42 12 40 00 7f 00

But the Master Volume message for GS looks like this (from page 27 of the manual):

F0 41 00 42 12 40 00 04 vv xx F7


In this message, you mentioned sending

Push button: 90 25 40 Release button: 80 25 ff

Be aware in MIDI messages bytes, hex 80 to FF are Status bytes that indicate the type of message, and hex 00 to 7F are for data bytes. The FF on the end of the "Release button" message above is not a valid data byte. It indicates the Status byte FF for Reset.


More information about Running Status

The Dream SAM2695 almost certainly correctly supports Running Status because it is part of required MIDI standards. In fact, on page 27 of the manual, the various RPN and NRPN message examples are shown using Running Status.

For example, the NRPN 37xx message format is shown using the following bytes:

Bn 63 37 62 xx 06 vv

This uses implied Status bytes (Running Status) and has the following meaning:

Bn 63 37 (Control Change Channel n+1, Controller 99 Non-Registered Parameter Number MSB, Value hex 37)
62 xx (" " " " Controller 98 Non-Registered Parameter Number LSB, Value hex xx)
06 vv (" " " " Controller 6 Data Entry, Value hex vv)

You can also send the Status Bytes explicitly and it would mean the same thing and have the same effect:

Bn 63 37 (Control Change Channel n+1, Controller 99 Non-Registered Parameter Number MSB, Value hex 37)
Bn 62 xx (Control Change Channel n+1, Controller 98 Non-Registered Parameter Number LSB, Value hex xx)
Bn 06 vv (Control Change Channel n+1, Controller 6 Data Entry, Value hex vv)

Running Status can only be used for Status bytes that contain a channel number (hex 80 to EF).

System Common and System Exclusive status bytes (hex F0 to F7) cause the remembered Running Status to be forgotten. The next message after these System messages must begin with a Status byte. If it doesn't, then the device has to ignore incoming bytes until it gets a Status byte (hex 80 to FF).

System Real-Time messages (hex F8 to FF) are 1-byte messages that may occur in between the bytes of other messages. A System Real-Time message makes no changes to the remembered Running Status. Except: If the device obeys the Reset message (Status byte FF), it is supposed to forget the remembered Running Status as part of its reset process.

So when you sent the following bytes:

REST: ff
GS_R: f0 41 00 42 12 40 00 7f 00 41 f7
MONO: b0 7e 01
VOL : 37 20 ff
GMVL: 37 22
MSVL: 07 10
VOIC: c0 21

This would get interpreted as:

FF (Reset)

F0 41 00 42 12 40 00 7F 00 41 F7 (GS Reset)

B0 7E 01 (Control Change Channel 1, Controller 126 Mono On, Value 1 for one channel)
37 20 (" " " " Controller 55 unused, Value 32)
FF (Reset)
37 (ignored as invalid, Status byte required)
22 (ignored as invalid, Status byte required)
07 (ignored as invalid, Status byte required)
10 (ignored as invalid, Status byte required)
C0 21 (Program Change Channel 1, Electric bass (finger))


Geoff:

The FF on line 5 (timing byte) should NOT affect the this.

Status byte FF is the Reset message, which would have an effect. The manual says it causes the device to reset to power-up conditions.

Line 4 [b0 7e 01] should be ok, this is normally Polyphonic OFF, and I assume this is what you mean by 'Mono' (Monophonic as opposed to Polyphonic). But I'm not sure about the 01 following, but this may be a dummy data value?

In the Mono On message, the value part of the Control Change message indicates the number of channels you want to use (one channel for each monophonic note you want). A value of 0 is a special value that means to use as many channels as the number of maximum simultaneous notes the device can sound. A value of 1 means you just want to use 1 channel. However, this "number of channels" value is mainly intended for monotimbral devices -- devices that can only play one instrument sound at once. The main example is a MIDI guitar controller would send a Mono Mode message set for 6 channels, then each string would transmit notes monophonically on unique channels and each channel can have unique pitch bend.

Modern devices are multitimbral -- they can play multiple instrument sounds at once. A multitimbral device effectively acts like it contains 16 single-channel monotimbral sub-devices that are each listening to single MIDI channel and control a single instrument sound. If a multitimbral device supports Mono mode, then when you send a Mono On message to a channel, the "number of channels" value is usually always treated as if it were 1, no matter what value is sent.
6 months ago
·
#18025
0
Votes
Undo
Since I'm presently a bit stuck with my microcontroller interface I'm thinking of a quick solution: buy a used Roland Sound Canvas S55 and plug the midi pedal into it.
The midi note on7 note off sequence is coming reliably out of the PEDSCAN module (90 xx 40 80 xx 40).

The only problem: can I achieve a mode that does the following:

I tap a bass pedal note, say "G". The voice 33 (acoustic bass) sounds plucked. I release the pedal key. "G" The "G" just plucked still sounds and keeps on decaying, although the pedal key is released.I tap another note, say "G#". The previously played "G" disappears and the "G#" decaying sequence is started. Is this possible?

Is that, what is understood by "mono mode"?
6 months ago
·
#18027
0
Votes
Undo
Hello,

You might need to try this, and see what the specific device, the S55, actually does.

Yes, Mono Mode says that the instrument will play one note at a time, ONLY. But, in the situation you describe, the pedal may have stopped the note that was playing, it is now OFF, but the envelope may still be sounding something even though the note is OFF. Will the S55 use the mono mode to cancel/silence the envelope even though the note is actually OFF anyway? Or will it respond by doing nothing as the note is OFF already?

Is there a technical difference here between the note 'sounding' even though it's OFF and therefore not 'playing'?

Geoff
6 months ago
·
#18028
0
Votes
Undo
can I achieve a mode that does the following: I tap a bass pedal note, say "G". The voice 33 (acoustic bass) sounds plucked. I release the pedal key. "G" The "G" just plucked still sounds and keeps on decaying, although the pedal key is released.I tap another note, say "G#". The previously played "G" disappears and the "G#" decaying sequence is started. Is this possible? Is that, what is understood by "mono mode"?

Mono mode means only one pitch can sound at a time on that channel you sent the Mono mode message to. If there's a pitch currently making a sound on that channel and you send a new Note On message, then the old pitch will stop making any sound and the new pitch will start making a sound.

Normally, I think the Acoustic Bass sound will quickly mute (decay very fast) once you send a Note Off message. However, if you send a Sustain pedal on message, then I think the Acoustic Bass sound will continue to sound (decay slowly) even after you send a Note Off message.

So if you are still able to send any MIDI message, try sending both a Mono On message and a Sustain pedal on message:

B0 7E 01 (Channel 1 Mono On)
B0 40 7F (Channel 1 Sustain pedal on)

Alternatively, if you are only able to send Note On and Note Off messages, then you can try setting up the Roland SC-55 using the buttons on its front panel. Using the buttons on the Roland SC-55, you can enable Mono mode and you can set the Release time to the maximum value. I think setting the maximum Release time will help keep the Acoustic Bass sound decaying slowly after a Note Off message.

Roland Sound Canvas SC-55 manual
5 months ago
·
#18211
0
Votes
Undo
I'm at my midi project again. The read errors are gone now.
But I have another strange effect. This is what the SAM2695 is getting right from the start

FF
F0 41 00 42 12 40 00 7F 00 41 F7
B0 7E 00
B0 07 64
90 36 78
80 36 00
90 38 78
80 38 00
90 39 78
C0 21
B0 07 44
B0 63 01
B0 62 63
B0 06 29
B0 63 01
B0 62 64
B0 06 18
90 0D 25
80 25 40
90 27 40
80 27 40
90 25 40
80 25 40
90 27 40
B0 07 45
80 27 40


I have two test switches, button press makes a contact, button release is sensed also and in consequence of this the follwoing is sent:

-

90 25 40
80 25 40
90 25 40
80 25 40
90 27 40
80 27 40
90 25 40
80 25 40
90 27 40
80 27 40
90 25 40
80 25 40
90 27 40
80 27 40
90 25 40
80 25 40
90 27 40
80 27 40

The above cannot controlled by me. It is what the PEDSCAN midi board is sending.
The "make contact" sends the 90h (which is note on) and releasing the contact sends 80h (note off).
with the 90h the SAM2695 correctly plays the wanted note, but releasing plays another sound (or note) which is unwanted.It is a note a tritone higher
BTW, the "mono mode" I send to the SAM2695 works fine.
I have no idea, why the note off code makes another note sounding. Maybe it has got to do with the setting of attack and decay?
5 months ago
·
#18219
0
Votes
Undo
Correction: the interspersed B0 sequences are made by my program, when the pot value of one of the 4 pots (ATTACK,DECAY,VOLUME,VOICE) changes value.
They may appear at random. I also will have to take measures that the messages don't interleave of overlap. I'm checking this right now.

UPDATE:
I definitely could not find any cause for the fact that a B0 nn vv made another note appear sounding. I built a little state machine in the Midi output chain to filter out B0 nn vv sequence. So only note on (90h) messages get through.
And the undesired behaviour has stopped. No more notes are triggered by B0h sequences.
This applies to mono mode. For fun I left off the mono mode initialization and guess what? In polyphonic mode this B0 sounding notes do not appear. A bug in the chip?
5 months ago
·
#18312
0
Votes
Undo
My "fault" was, that I sent three notes in my test program at the beginning of the firmware start, and I omitted the last notes' 80 nn xx "note off" command. This was leading to having the unit play the last played not everytime it was receiving a "note off".

I got information meanwhile from the SAM2695 manufacturers team: they say, what I'm doing with "note off" in mono mode is "exploring the chips implementation of mono mode". What I'm reporting is specified behaviour of the chip's implementation of mono mode.

"The mono mode tries to replicate the behaviour of Mono Synth back in the days (MiniMoog, Arp Axxe, Sequencial Circuits Pro 1, Roland SH2, Roland SH101, Korg MS20, Yamaha CS5 ...)" they say.
So in the end I wasn't all that wrong.

And I was pointed to the following links:

http://www.soundonsound.com

Priorities & Triggers

and

forum.moogmusic.com


https://forum.moogmusic.com/viewtopic.php?f=2&t=12732&__cf_chl_jschl_tk__=pmd_cfb08181e9cc29ff6713dda299fc0ec3ea5b15ed-1628000903-0-gqNtZGzNAeKjcnBszQhO

"The implementation of the 2695 was done to match the one used in the General MIDI module SC55 which was the standard of GM sound module when the GM standard was created"


So now I can live with is explanation the more so I'm using the solution proposed here to use the sustain function. I'm sending always a note on - note off sequence.
  • Page :
  • 1
  • 2
There are no replies made for this post yet.