Skip to content

Commit 6227e90

Browse files
authored
Merge pull request #706 from JerwuQu/jwq_apu-midi-mode
APU Note Mode (alternative version of #334)
2 parents 71f5a70 + 537cda5 commit 6227e90

File tree

16 files changed

+139
-17
lines changed

16 files changed

+139
-17
lines changed

cli/assets/templates/assemblyscript/src/wasm4.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ export const TONE_MODE3: u32 = 8;
121121
export const TONE_MODE4: u32 = 12;
122122
export const TONE_PAN_LEFT: u32 = 16;
123123
export const TONE_PAN_RIGHT: u32 = 32;
124+
export const TONE_NOTE_MODE: u32 = 64;
124125

125126
// ┌───────────────────────────────────────────────────────────────────────────┐
126127
// │ │

cli/assets/templates/c/src/wasm4.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ void tone (uint32_t frequency, uint32_t duration, uint32_t volume, uint32_t flag
117117
#define TONE_MODE4 12
118118
#define TONE_PAN_LEFT 16
119119
#define TONE_PAN_RIGHT 32
120+
#define TONE_NOTE_MODE 64
120121

121122
// ┌───────────────────────────────────────────────────────────────────────────┐
122123
// │ │

cli/assets/templates/c3/cart/src/wasm4.c3

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ const TONE_MODE3 = 8;
9797
const TONE_MODE4 = 12;
9898
const TONE_PAN_LEFT = 16;
9999
const TONE_PAN_RIGHT = 32;
100+
const TONE_NOTE_MODE = 64;
100101

101102
// ┌───────────────────────────────────────────────────────────────────────────┐
102103
// │ │

cli/assets/templates/d/source/wasm4.d

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ enum toneMode3 = 8;
101101
enum toneMode4 = 12;
102102
enum tonePanLeft = 16;
103103
enum tonePanRight = 32;
104+
enum toneNoteMode = 64;
104105

105106
// ┌───────────────────────────────────────────────────────────────────────────┐
106107
// │ │

cli/assets/templates/go/w4/wasm4.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ const TONE_MODE3 = 8
111111
const TONE_MODE4 = 12
112112
const TONE_PAN_LEFT = 16
113113
const TONE_PAN_RIGHT = 32
114+
const TONE_NOTE_MODE = 64
114115

115116
// ┌───────────────────────────────────────────────────────────────────────────┐
116117
// │ │

cli/assets/templates/nelua/src/wasm4.nelua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ global TONE_MODE3 <comptime> = 8
122122
global TONE_MODE4 <comptime> = 12
123123
global TONE_PAN_LEFT <comptime> = 16
124124
global TONE_PAN_RIGHT <comptime> = 32
125+
global TONE_NOTE_MODE <comptime> = 64
125126

126127
-- ┌───────────────────────────────────────────────────────────────────────────┐
127128
-- │ │

cli/assets/templates/nim/src/cart/wasm4.nim

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ const
4848
TONE_MODE4* = 12
4949
TONE_PAN_LEFT* = 16
5050
TONE_PAN_RIGHT* = 32
51+
TONE_NOTE_MODE* = 64
5152

5253
{.push importc, codegenDecl: "__attribute__((import_name(\"$2\"))) $1 $2$3".}
5354
proc blit*(data: ptr uint8; x: int32; y: int32; width: uint32; height: uint32;

cli/assets/templates/odin/src/w4/wasm4_wasm32.odin

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ Tone_Pan :: enum u32 {
118118
Left = 16,
119119
Right = 32,
120120
}
121+
Tone_Mode :: enum u32 {
122+
Frequency = 0,
123+
Note = 64,
124+
}
121125

122126
Tone_Duration :: struct {
123127
attack: u8, // in frames
@@ -135,13 +139,13 @@ foreign wasm4 {
135139
}
136140

137141
// Plays a sound tone.
138-
tone :: proc "c" (frequency: u32, duration: u32, volume_percent: u32, channel: Tone_Channel, duty_cycle := Tone_Duty_Cycle.Eigth, pan := Tone_Pan.Center) {
139-
flags := u32(channel) | u32(duty_cycle) | u32(pan)
142+
tone :: proc "c" (frequency: u32, duration: u32, volume_percent: u32, channel: Tone_Channel, duty_cycle := Tone_Duty_Cycle.Eigth, pan := Tone_Pan.Center, tone_mode := Tone_Mode.Frequency) {
143+
flags := u32(channel) | u32(duty_cycle) | u32(pan) | u32(tone_mode)
140144
internal_tone(frequency, duration, volume_percent, flags)
141145
}
142146

143-
tone_complex :: proc "c" (start_frequency, end_frequency: u16, duration: Tone_Duration, volume_percent: u32, channel: Tone_Channel, duty_cycle := Tone_Duty_Cycle.Eigth, pan := Tone_Pan.Center) {
144-
flags := u32(channel) | u32(duty_cycle) | u32(pan)
147+
tone_complex :: proc "c" (start_frequency, end_frequency: u16, duration: Tone_Duration, volume_percent: u32, channel: Tone_Channel, duty_cycle := Tone_Duty_Cycle.Eigth, pan := Tone_Pan.Center, tone_mode := Tone_Mode.Frequency) {
148+
flags := u32(channel) | u32(duty_cycle) | u32(pan) | u32(tone_mode)
145149
frequency := u32(start_frequency) | u32(end_frequency)<<16
146150
duration_in_frames := u32(duration.attack)<<24 | u32(duration.delay)<<16 | u32(duration.release)<<8 | u32(duration.sustain)
147151

cli/assets/templates/penne/src/wasm4.pn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ pub const TONE_MODE3: u32 = 8;
103103
pub const TONE_MODE4: u32 = 12;
104104
pub const TONE_PAN_LEFT: u32 = 16;
105105
pub const TONE_PAN_RIGHT: u32 = 32;
106+
pub const TONE_NOTE_MODE: u32 = 64;
106107

107108
// ┌───────────────────────────────────────────────────────────────────────────┐
108109
// │ │

cli/assets/templates/rust/src/wasm4.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ pub const TONE_MODE3: u32 = 8;
193193
pub const TONE_MODE4: u32 = 12;
194194
pub const TONE_PAN_LEFT: u32 = 16;
195195
pub const TONE_PAN_RIGHT: u32 = 32;
196+
pub const TONE_NOTE_MODE: u32 = 64;
196197

197198
// ┌───────────────────────────────────────────────────────────────────────────┐
198199
// │ │

0 commit comments

Comments
 (0)