Jump to content

Velocity converter


andrea

Recommended Posts

Thank you Bill, you are wery kind.

The converter that I am talking about is similar to Velocity Converter from Midi Solutions but a more simple one could be usefull.

The converter is able to transorm a velocity value of an incoming midi message into another value. In this way you are able to change the velocity curve for your MIDI keyboard.

It means that it let's you remap the function which maps the strength you hit the key to the volume the note plays.

The problem is that my keyboard doesn't have a function to customize the velocity curve. When I use it with a external sound module the dynamic response is completely different. For example, you have to hit wery strongly (I mean very!!) if you want to send a velocity level of 127 to the expander.

There is a freeware software that allow you to change velocity curve : Midi velocity curve changer (Trombettworks Software)

http://www.trombettworks.com/velocity.php

but I am looking for something that works without pc.

I am sure that this can accomplished with MIDIBOX, but unfortunately I am just a piano player and I don't have any programming skill.

This can be an additional use of mIDIBOX that can solve a lot of problem in a simple way.

Thanks

Andrea

Link to comment
Share on other sites

What about the curves ?

Should they be linear ? (initial value * boost factor)

Should they be transposed ? (initial value + gain)

or maybe precalculateds ? (then give the values or formulas)

Make the curves editable from a control surface will make this project lot more complicated, so i guess it's not what you want, right ?

bill you are a BIG man!

wtf ? you mean, i'm "fat" ? how do you know that ? ^^

Link to comment
Share on other sites

Hi,

you are right bill, I don't need a unit with curves editable from a control surface but I am interested to have just  a fixed and precalculated conversion between velocity in input and velocity in output.

I mean, using Midi Velocity Changer, I found the suitable conversion curve that I need to adapt my keyboard to the expander.This program is able to display the change between in and out and so I have a table of conversion of vel. in to vel. out

Here I reported a piece of that table for example:

In        OUt

000  -->  000

001  -->  002

002  -->  003

004  -->  007

005          008

.

.

.

103        119

104        119

.

.

125        127

126        127

127        127

I need just a unit that apply this fixed conversion between midi velocity in Input and midi velocity in output.

Eventually it could be interesting the possibility of choosing diffrent conversion table (precalculated with Velocity Changer) from the control surface...but it is not necessary. I will be very happy to have just a single conversion table.

with this unit I will be able to play live my keybord and my expander without a computer with Velocity changer.

Thank you bill!!!!

By

Link to comment
Share on other sites

Ok, it's your turn to work a bit :

fill (replace the "0" with your values) that array thanks to your values.

const char curve1[127] = {
	//out	// in
	0,	// 0
	0,	// 1
	0,	// 2
	0,	// 3
	0,	// 4
	0,	// 5
	0,	// 6
	0,	// 7
	0,	// 8
	0,	// 9
	0,	// 10
	0,	// 11
	0,	// 12
	0,	// 13
	0,	// 14
	0,	// 15
	0,	// 16
	0,	// 17
	0,	// 18
	0,	// 19
	0,	// 20
	0,	// 21
	0,	// 22
	0,	// 23
	0,	// 24
	0,	// 25
	0,	// 26
	0,	// 27
	0,	// 28
	0,	// 29
	0,	// 30
	0,	// 31
	0,	// 32
	0,	// 33
	0,	// 34
	0,	// 35
	0,	// 36
	0,	// 37
	0,	// 38
	0,	// 39
	0,	// 40
	0,	// 41
	0,	// 42
	0,	// 43
	0,	// 44
	0,	// 45
	0,	// 46
	0,	// 47
	0,	// 48
	0,	// 49
	0,	// 50
	0,	// 51
	0,	// 52
	0,	// 53
	0,	// 54
	0,	// 55
	0,	// 56
	0,	// 57
	0,	// 58
	0,	// 59
	0,	// 60
	0,	// 61
	0,	// 62
	0,	// 63
	0,	// 64
	0,	// 65
	0,	// 66
	0,	// 67
	0,	// 68
	0,	// 69
	0,	// 70
	0,	// 71
	0,	// 72
	0,	// 73
	0,	// 74
	0,	// 75
	0,	// 76
	0,	// 77
	0,	// 78
	0,	// 79
	0,	// 80
	0,	// 81
	0,	// 82
	0,	// 83
	0,	// 84
	0,	// 85
	0,	// 86
	0,	// 87
	0,	// 88
	0,	// 89
	0,	// 90
	0,	// 91
	0,	// 92
	0,	// 93
	0,	// 94
	0,	// 95
	0,	// 96
	0,	// 97
	0,	// 98
	0,	// 99
	0,	// 100
	0,	// 101
	0,	// 102
	0,	// 103
	0,	// 104
	0,	// 105
	0,	// 106
	0,	// 107
	0,	// 108
	0,	// 109
	0,	// 110
	0,	// 111
	0,	// 112
	0,	// 113
	0,	// 114
	0,	// 115
	0,	// 116
	0,	// 117
	0,	// 118
	0,	// 119
	0,	// 120
	0,	// 121
	0,	// 122
	0,	// 123
	0,	// 124
	0,	// 125
	0,	// 126
	0,	// 127
};

If you are motivated, "draw" many curves, and give them different names like curve1 curve2 curve3.

Link to comment
Share on other sites

Ok bill, you are great!!

The most important is curve 1 (that is curve that I usually use).

I can draw more curves, but I need  time to set up my feeling with the dynamics. I think that you can edit random curve 2, curve 3..(just putting random values or leave linear relation:000---000, 001---001... 027---027 etc...) and you can show me how I can modify by my self the conversion table of these curve.( I think 4 or 5 curve will be more than enought). In this way I can edit and correct the values any time I need without disturb you...are you agree??

Do you think that it is possible to see on LCD which curve I am using??and if the unit is working of no?

Thank you again for your time!!!!

This is my curve 1.

const char curve1[127] = {

//out // in

0, // 0

2, // 1

3, // 2

5, // 3

7, // 4

8, // 5

          10,          // 6

          12,          // 7

          14,          // 8

15, // 9

17, // 10

19, // 11

20, // 12

22, // 13

24, // 14

25, // 15

27, // 16

29, // 17

30, // 18

32, // 19

34, // 20

36, // 21

37, // 22

39, // 23

41, // 24

42, // 25

44, // 26

45, // 27

46, // 28

48, // 29

49, // 30

50, // 31

51, // 32

52, // 33

53, // 34

55, // 35

56, // 36

57, // 37

58, // 38

59, // 39

61, // 40

63, // 42

64, // 43

65, // 44

67, // 45

68, // 46

70, // 48

72, // 49

73, // 50

74, // 51

75, // 52

77, // 53

78, // 54

79, // 55

80, // 56

81, // 57

82, // 58

83, // 59

84, // 60

85, // 61

86, // 62

86, // 63

87, // 64

88, // 65

89, // 66

90, // 67

91, // 68

92, // 69

93, // 70

94, // 71

95, // 72

96, // 73

96, // 74

97, // 75

98, // 76

99, // 77

100, // 78

101, // 79

101, // 80

102, // 81

103, // 82

104, // 83

105, // 84

106, // 85

106, // 86

107, // 87

108, // 88

109, // 89

            110,      // 90

110, // 91

111, // 92

112, // 93

113, // 94

114, // 95

114, // 96

115, // 97

116, // 98

117, // 99

117, // 100

118, // 101

118, // 102

119, // 103

120, // 105

121, // 106

121, // 107

122, // 108

122, // 109

123, // 110

123, // 111

124, // 112

124, // 113

124, // 114

125, // 115

125, // 116

125, // 117

125, // 118

125, // 119

126 // 120

126, // 121

126, // 122

126, // 123

126, // 124

127, // 125

127, // 126

127, // 127

};

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...