Royce, did you have that all written out some where and just paste it?
I hope you didn't have to write all that on my account, but it's awesome!
Thank you so much for the explicit information.
I'm still early on (32 pages) in the BC Manager software manual, but I am reading it.
BTW, the MIDI utilities included in the thing are awesome!
Below, I explain exactly what I am trying to program.
I should have specified that the A-Station is a rack-mount sound module, and not a controller.
I have tried to enter the information below verbatim, but in case anyone is curious, here is a link to the actual manual.
http://us.novationmusic.com/support/product-downloads?product=A-
Station
-------------------------------
NOVATION A-Station
The manual for the Novation A-Station synthesizer provides a list of midi continuous-control numbers from 0-127.
Some of these are listed as follows:
------
71 : sound controller 2 (MIDI specified use)
A-Station use
Osc 1,2,3 octave/osc 1>2 Sync (see packed parameter 4)
----
When you see packed parameter 3, this is the information you get:
Packed Controller / NRPN parameter details -
bits 0-1 : 2 bit osc 1 waveform (sine, tri, saw,square)
bits 2-3 : osc 2
bits 4-5 : osc 3
bit 6 : osc 1 > 2 sync on
That is a 7 bit byte, correct?
There are eleven sets of packed parameters.
-----
I am now interpreting the manual differently.
This section is entitled "Packed Controller / NRPN Parameter Details
The page following the packed parameter details a "Midi NRPN list"
I'm now thinking that the packed parameters are not even NRPN's in the first place.
Although the packed parameters are my first concern, I will still need the NRPN's as well, but if I had interpreted that incorrectly, it certainly has not been simplifying the process.
"The A-Station uses a few NRPN's as detailed below.
Since less than 128 of them are used, only one NRPN bank msb is needed. Therefore only the NRPN lsb is transmitted/received and the NRPN msb is ignored and is not transmitted.
For future compatibility, assume that the NRPN msb is 0."
The NRPN's also contain some of the packed parameters (8,9,10).
---In bc2000@yahoogroups.com, <rpcfender@...> wrote:
Computers (this includes phones, washing machines and BC2000 etc) only talk in on/off or 0 and 1 called binary and each switch is called a bit.
We group these bits usually in blocks of 4 called a nibble.
Two of these nibbles are called a byte. So a byte has 8 bits or 8 on / off switches.
So counting in binary (that is only using 0 and 1) is
0 0
1 1
2 10 - this is the same process as when we reach 9 add 1 to it, we add a new column - start again = 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111 and that is all we can count with 4 bits
So 0 to 15 is 16 values. It would be great if we could use a single character for each value.
So we make decimal...
10 = A
11 = B
12 = C
13 = D
14 = E
15 = F
When we need a bigger number we could just get another bit but lets grab an extra nibble and use a byte instead
0 = 00
1 = 01
...
14 = 0E
15 = 0F
16 = 10
17 = 11
...
124 =7C
125 =7D
126 =7E
127 =7F as Midi only uses 7 bits for data 127 is the biggest data number available as a single byte
128 =80
...
254 =FE
255 =FF biggest single byte value
256 =01 00 this is the usual display format for a 2 byte or 16 bit number right up to FF FF or 65535 in decimal.
Which do you find easier to read?
Now in Midi all the non-data stuff like 'I just pressed a note" and "change the patch to number" are all greater than 127 that is hex 80 (you see this also as 0x80 or $80 or 80h all the same thing) and bigger.
So as we need to know what channel it is, lets use the lower nibble for that.
So we can have commands or status bytes, as they are called, on any of 16 channels (0 to F)
B0 is continuous controller on channel 1 (we use the zero so the channel number is 1 more)
B3 is continuous controller on channel 4
80 is Note off channel 1
8n is Note off on some channel
9n is Note On
An is polyphonic pressure (Polyphonic Aftertouch)
Bn is CC continuous controller
Cn is PC patch change
Dn is Channel Pressure (Aftertouch)
En is PB Pitch bend
F0 to FF are system messages eg F0 is the start of system exclusive and F7 is end of system exclusive.
For a good reference to MIDI see
http://www.somascape.org/midi/tech/spec.html
As far as the packed data you will need to spell out exactly what you are trying to do.
All the best
Royce
---In bc2000@yahoogroups.com, <absent@...> wrote:First off, I have been unable to figure out what B0 means.
---In bc2000@yahoogroups.com, <absent@...> wrote:And I meant "met face to face".
---In bc2000@yahoogroups.com, <sghookings@...> wrote:Well you just did encounter someone who not only understands NRPNs but gave a great explanationThe BCR expects the address and range of values. Then u have to say if you are sending just 7 or full 14 bits.Good luck in interpreting NRPNs
-------- Original message --------
From: absent@...
Date: 13/11/2013 15:47 (GMT+00:00)
To: bc2000@yahoogroups.com
Subject: [bc2000] RE: RE: NRPN confusion
Where am confused is that the entry for parameter number is not hex.
The A-Station lists CC numbers as "packed parameters" with what I think are supposed to be 8-bit numbers to assign a specific -packed sub-parameter.
It's been very difficult to find information on this. I am getting the impression that this sort of thing is a small step removed from deep MIDI user-end voodoo.
I have yet to encounter anyone in real life that actually has heard of NRPNs :D . I've been getting a lot of blank stares and referrals to basic MIDI texts.
---In bc2000@yahoogroups.com, <rpcfender@...> wrote:RPN (registered parameter numbers) and NRPN are ways to increase the number of Continuous Controllers Midi can use.
It works the same a Bank selection fo r Patches
NRPN
CC98 LSB
CC99 MSB
in hex on channel 1
B0 62 LSB
B0 63 MSB
As MSB (most significant byte) and LSB can be between 0 and 127 combined it becomes a 14 bit number from 0 to 16,383 controllers
So once you have said what controller you are talking about, you send its value
For 0 to 127 type controllers
B0 06 value
or
B0 26 value
or if your controller has 14 bit values (0 to 16,383)
B0 06 MSB
B0 26 LSB
(There is an increment and decrement as well.)
Once the controller has been selected it doesn't have to be selected again so you can send
B0 62 LSB
B0 63 MSBB0 26 value 1
B0 26 value 2
B0 26 value 3
etc
Just the same as Banks and Patches.
All the best
Royce